(57)【要約】【課題】発熱制御対象の複数のモジュールに対して、使用状況を加味して性能を割り当てつつ発熱を抑えることができる半導体装置を提供すること。【解決手段】半導体装置（１００）は、複数のモジュールの稼働率を検出する負荷検出部（１）と、複数のモジュールの稼働率に基づいて複数のモジュールの係数を算出する重み付け計算部（２）と、複数のモジュールの係数に基づいて複数のモジュールの消費電力を制御する発熱制御部（３）と、を備える。【選択図】図１
2019114009.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールの稼働率を検出する負荷検出部と、
前記複数のモジュールの稼働率に基づいて前記複数のモジュールの係数を算出する重み付け計算部と、
前記複数のモジュールの係数に基づいて前記複数のモジュールの消費電力を制御する発熱制御部と、
を備える半導体装置。
【請求項２】
チップ上のジャンクション温度Tcurrent(t)と目標とするジャンクション温度Tcontrol(t)とから利用可能電力P(t)を算出する電力計算部をさらに備え、
前記発熱制御部は、前記複数のモジュールの係数に基づいて利用可能電力P(t)を前記モジュール毎に分配し、分配された各消費電力値に基づいて前記モジュール毎に消費電力を制御するものである、
請求項１に記載の半導体装置。
【請求項３】
前記電力計算部は、PID制御を用いて利用可能電力P(t)を算出するものである、
請求項２に記載の半導体装置。
【請求項４】
前記重み付け計算部は、前記複数のモジュールの稼働率に基づいて前記モジュール毎の消費電力を算出し、算出された前記モジュール毎の消費電力に対し、前記複数のモジュールの消費電力を合計した消費電力との割合を前記複数のモジュールの係数として算出する、
請求項１に記載の半導体装置。
【請求項５】
第１の半導体装置と、第２の半導体装置と、を備え、
前記第１の半導体装置は、
前記第１の半導体装置の第１のモジュールの稼働率及び前記第２の半導体装置の第２のモジュールの稼働率を検出する負荷検出部と、
前記第１のモジュール及び前記第２のモジュールの稼働率に基づいて前記第１のモジュール及び前記第２のモジュールの係数を算出する重み付け計算部と、
前記第１のモジュール及び前記第２のモジュールの係数に基づいて前記第１のモジュール及び前記第２のモジュールの消費電力を制御する発熱制御部と、
を備える半導体システム。
【請求項６】
前記第１の半導体装置は、前記第１の半導体装置のチップ上のジャンクション温度Tcurrent(t)と目標とするジャンクション温度Tcontrol(t)とから利用可能電力P(t)を算出する電力計算部をさらに備え、
前記発熱制御部は、前記第１のモジュール及び前記第２のモジュールの係数に基づいて利用可能電力P(t)を前記第１のモジュール及び前記第２のモジュールに分配し、分配された各消費電力値に基づいて前記第１のモジュール及び前記第２のモジュールの消費電力を制御する、
請求項５に記載の半導体システム。
【請求項７】
前記電力計算部は、PID制御を用いて利用可能電力P(t)を算出するものである、
請求項６に記載の半導体システム。
【請求項８】
前記重み付け計算部は、前記第１のモジュール及び前記第２のモジュールの稼働率に基づいて前記第１のモジュール及び前記第２のモジュールの消費電力を算出し、算出された前記第１のモジュール及び前記第２のモジュールの消費電力に対し、前記第１のモジュール及び前記第２のモジュールの消費電力を合計した消費電力との割合を前記第１のモジュール及び前記第２のモジュールの係数として算出する、
請求項５に記載の半導体システム。
【請求項９】
前記第１の半導体装置は、
前記第１の半導体装置のチップ上のジャンクション温度である第１のTcurrent(t)と前記第２の半導体装置のチップ上のジャンクション温度である第２のTcurrent(t)とを検出する温度検出部をさらに備え、
前記重み付け計算部は、目標とするジャンクション温度Tcontrol(t)から前記第１のTcurrent(t)を減算した第１のTdiff(t)と、前記目標とするジャンクション温度Tcontrol(t)から前記第２のTcurrent(t) を減算した第２のTdiff(t)とに基づいて前記第１の半導体装置及び前記第２の半導体装置の温度係数を算出し、
前記発熱制御部は、前記第１のモジュール及び前記第２のモジュールの係数及び前記第１の半導体装置及び前記第２の半導体装置の温度係数に基づいて前記第１のモジュール及び前記第２のモジュールの消費電力を制御する、
請求項５に記載の半導体システム。
【請求項１０】
半導体装置における方法であって、
複数のモジュールの稼働率を検出し、
前記複数のモジュールの稼働率に基づいて前記複数のモジュールの係数を算出し、
前記複数のモジュールの係数に基づいて前記複数のモジュールの消費電力を制御する、
ことを含む方法。
【請求項１１】
チップ上のジャンクション温度Tcurrent(t)と目標とするジャンクション温度Tcontrol(t)とから利用可能電力P(t)を算出することをさらに含み、
前記複数のモジュールの消費電力を制御することは、前記複数のモジュールの係数に基づいて利用可能電力P(t)を前記モジュール毎に分配し、分配された各消費電力値に基づいて前記モジュール毎に消費電力を制御することである、
請求項１０に記載の方法。
【請求項１２】
前記利用可能電力P(t)を算出することは、PID制御を用いて利用可能電力P(t)を算出することである、
請求項１１に記載の方法。
【請求項１３】
前記複数のモジュールの係数を算出することは、前記複数のモジュールの稼働率に基づいて前記モジュール毎の消費電力を算出し、算出された前記モジュール毎の消費電力に対し、前記複数のモジュールの消費電力を合計した消費電力との割合を前記複数のモジュールの係数として算出することである、
請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、半導体システム、及びその方法に関し、例えば発熱制御を行う半導体装置、半導体システム、及びその方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路装置において、大容量化、高性能化、低コスト化、及びユーザーエクスペリエンスの充実等の市場ニーズに応えるため、半導体プロセスの急速な加速や、高性能・大電力ハードウェアモジュールを複数備えた大規模ＳｏＣ（System on Chip）化が行われている。このような大規模ＳｏＣ化に伴い発熱対策への重要性は増している。
【０００３】
特許文献１には、異なる種類の複数の管理対象装置と、複数の管理対象装置へ供給する電力を管理する管理装置とを備え、管理装置が、すべての管理対象装置へ供給する所定の総電力量をそれぞれの管理対象装置の性能の合計値が最大になるようにそれぞれの管理対象装置へ供給する技術が開示されている。特許文献１に開示の技術を用いることにより、全体での性能の低下を最小限に抑えながら、消費電力を削減することが可能となる
【０００４】
また、非特許文献１には、IPA（Intelligent Power Allocation）が、任意に設定したTHS（Thermal Sensor）から温度情報を取得し、IPAの制御対象である複数モジュール(モジュールA/B)に対し、利用可能な消費電力を求めてクロックを調整することにより発熱制御を行う技術が開示されている。具体的には、非特許文献１に開示の技術では、THSから取得した温度情報を基に、予め設定したターゲット温度で飽和させるためにPID制御により利用可能な消費電力を算出し、IPAの制御対象の複数モジュールに対して利用可能な消費電力を任意の固定係数を基に分配する。そして、分配された消費電力により利用可能な周波数を予め登録してある対応表と比較し、設定する。これにより、非特許文献１に開示の技術では、周波数を下げることによりダイナミック電力を削減し、発熱制御を行うことができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１８６４１８号公報
【非特許文献】
【０００６】
【非特許文献１】Xin Wang, “Intelligent Power Allocation, Maximize performance in the thermal envelope”, WHITE PAPER, ARM
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、非特許文献１に開示の技術では、利用可能な消費電力を固定比率でしか分配することができない。このため、発熱制御の際、その時の負荷状況、ユースケースによっては、性能低下を抑えたいモジュールが存在し得るが、非特許文献１に開示の技術では、モジュールの使用状況を加味せず、予め設定した固定係数に従って対象モジュールの発熱制御（性能低下）を行なわざるを得ないという問題があった。
【０００８】
また、特許文献１に開示の技術においても、それぞれの管理対象装置への電力供給を固定比率で行うものであるため、非特許文献１に開示の技術と同様の問題があった。
【０００９】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態によれば、半導体装置は、複数のモジュールの稼働率に基づいて複数のモジュールの係数を算出し、算出された複数のモジュールの係数に基づいて複数のモジュールの消費電力を制御するものである。
【発明の効果】
【００１１】
前記一実施の形態によれば、発熱制御対象の複数のモジュールに対して、使用状況を加味して性能を割り当てつつ発熱を抑えることができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態にかかる半導体装置の構成例を示すブロック図である。
【図２】実施の形態にかかる半導体装置の動作例を示すフローチャートである。
【図３】実施の形態１にかかる半導体装置の構成例を示すブロック図である。
【図４】実施の形態１にかかる半導体装置における利用可能な消費電力の分配例を示す図である。
【図５】実施の形態１にかかる半導体装置の動作例を示すフローチャートである。
【図６】実施の形態２にかかる半導体システムの構成例を示すブロック図である。
【図７】実施の形態２にかかる第１の半導体装置の構成例を示すブロック図である。
【図８】実施の形態３にかかる第１の半導体装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１４】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。
【００１５】
実施の形態の概要
実施の形態の説明に先立って、実施の形態の概要について説明する。図１は、実施の形態にかかる半導体装置１００の構成例を示すブロック図である。半導体装置１００は、単一の半導体チップに形成される。半導体装置１００は、負荷検出部１と、重み付け計算部２と、発熱制御部３と、を備えている。
【００１６】
負荷検出部１は、複数のモジュールの稼働率を検出する。なお、複数のモジュールとは、発熱制御対象のモジュールである。負荷検出部１は、検出された複数のモジュールの稼働率を重み付け計算部２へ出力する。
【００１７】
重み付け計算部２は、複数のモジュールの稼働率を負荷検出部１から受け取る。また、重み付け計算部２は、複数のモジュールの稼働率に基づいて、複数のモジュールの係数を算出する。そして、重み付け計算部２は、算出された複数のモジュールの係数を発熱制御部３へ出力する。
【００１８】
発熱制御部３は、複数のモジュールの係数を重み付け計算部２から受け取る。そして、発熱制御部３は、複数のモジュールの係数に基づいて、複数のモジュールの消費電力を制御する。
【００１９】
続いて、図２のフローチャートを用いて、実施の形態にかかる半導体装置１００の動作例について説明する。
【００２０】
まず、半導体装置１００は、負荷検出部１により、複数のモジュールの稼働率を検出する（ステップＳ１０１）。
【００２１】
次に、半導体装置１００は、重み付け計算部２により、複数のモジュールの稼働率に基づいて、複数のモジュールの係数を算出する（ステップＳ１０２）。
【００２２】
次に、半導体装置１００は、発熱制御部３により、複数のモジュールの係数に基づいて、複数のモジュールの消費電力を制御する（ステップＳ１０３）。
【００２３】
以上、説明したように、実施の形態にかかる半導体装置１００は、複数のモジュールの稼働率に基づいて複数のモジュールの係数を算出する構成としている。また、半導体装置１００は、算出された複数のモジュールの係数に基づいて複数のモジュールの消費電力を制御する構成としている。これにより、半導体装置１００では、複数のモジュールの使用状況を加味してそれぞれのモジュールの消費電力制御を行うことができる。すなわち、半導体装置１００では、発熱制御対象の複数のモジュールに対して、使用状況を加味して性能を割り当てつつ発熱を抑えることができる。
【００２４】
実施の形態１
続いて、実施の形態１について説明する。図３は、実施の形態１にかかる半導体装置１００Ａの構成例を示すブロック図である。半導体装置１００Ａは、ハードウェア構成として、THS ８と、CPU（Central Processing Unit）９と、GPU（Graphics Processing Unit）１０と、メモリ１１と、バス１２と、を備えている。CPU ９、GPU １０、及びメモリ１１は、バス１２を介して接続されている。なお、図３では、発熱制御対象のモジュールとして、CPU ９及びGPU １０の２つのモジュールを用いる例を示しているが、発熱制御対象のモジュールの数は、２つに限らない。発熱制御対象のモジュールの数は、２つ以上であれば如何なる数でもよい。また、発熱制御対象のモジュールは、CPU及びGPU以外のモジュールであってもよい。
【００２５】
また、半導体装置１００Ａは、ソフトウェア構成として、負荷検出部１Ａと、重み付け計算部２Ａと、発熱制御部３Ａと、温度検出部４と、温度判定部５と、電力計算部６と、基礎データ７と、を備えている。なお、負荷検出部１Ａ、重み付け計算部２Ａ、発熱制御部３Ａ、温度検出部４、温度判定部５、及び電力計算部６における処理は、少なくとも１つのプロセッサによって、メモリ１１に格納されているプログラムを実行することにより行われる。また、基礎データ７は、Tstart、Tcontrol、Psustainable、Wcpu、及びWgpuを含んでいる。なお、基礎データ７は、例えば、予めメモリ１１に格納される。
【００２６】
THS ８は、半導体装置１００Ａが搭載されるチップ（半導体チップ）上のジャンクション温度Tcurrent(t)を計測するためのサーマルセンサーである。温度検出部４は、THS ８からジャンクション温度Tcurrent(t)を取得する。また、温度検出部４は、取得されたジャンクション温度Tcurrent(t)を温度判定部５へ出力する。
【００２７】
温度判定部５は、ジャンクション温度Tcurrent(t)と基礎データ７におけるTstartとを比較することにより、発熱制御の開始判定を行う。具体的には、温度判定部５は、ジャンクション温度Tcurrent(t)がTstart以上である場合に、発熱制御を開始すると判定する。なお、Tstartは、例えば９０℃である。温度判定部５は、発熱制御を開始すると判定した場合に、ジャンクション温度Tcurrent(t)を電力計算部６へ出力する。
【００２８】
電力計算部６は、チップ上の現在のジャンクション温度Tcurrent(t)と基礎データ７における目標とするジャンクション温度Tcontrol(t)とから利用可能電力P(t)を算出する。なお、電力計算部６は、PID制御を用いて利用可能電力P(t)を算出する。すなわち、電力計算部６は、PID制御を用いて、Tcurrent(t)をTcontrol(t)にするために、その時にCPU ９とGPU １０とで実際に利用可能な合計の利用可能電力P(t)を算出する。
【００２９】
ここで、利用可能電力P(t)の算出方法の具体例について説明する。まず、電力計算部６は、予め設定された目標ジャンクション温度であるTcontrol(t)から、計測されたジャンクション温度Tcurrent(t)を減算することにより、差分Tdiff(t)を算出する。次に、電力計算部６は、Tdiff(t)を基にPID制御（Proportional-Integral-Differential Controller）にて、利用可能な電力の総量であるP(t)を算出する。なお、PID制御とは、入力値の制御を出力値と目標値との偏差に加え、その積分、微分の要素を用いて行うフィードバック制御である。
【００３０】
PID制御のPに相当する比例制御は、操作量を現在の値と目標値との差が比例した大きさになるように制御する。Tdiff(t)＜０のとき、比例パラメータPIDproportionalは、次式１で表すことができる。
PIDproportional ＝ k_po × Tdiff(t)  ・・・（式１）
【００３１】
また、Tdiff(t)≧０のとき、比例パラメータPIDproportionalは、次式２で表すことができる。
PIDproportional ＝ k_pu × Tdiff(t)  ・・・（式２）
【００３２】
なお、式１及び式２において、k_po及びk_puは、比例ゲインであり、それぞれ下記の式３及び式４により表すことができる。
k_po ＝ Psustainable / (Tcontrol − Tstart)  ・・・（式３）
k_pu ＝ 2 × Psustainable / (Tcontrol − Tstart)  ・・・（式４）
【００３３】
なお、Psustainableは、ジャンクション温度がTcontrolに到達したときにCPU ９とGPU １０が消費出来る各消費電力の合計である使用可能な最大電力である。Psustainableは、チップのスペックにより決定される値であり、スペック上のDynamic電力の最大値である。
【００３４】
比例制御だけでは目標値に近づくと操作量が微小なため、制御が難しくなり残留誤差が生じる。この誤差を排除するために、PID制御のIに相当する積分制御は、残留偏差を累積し、ある大きさになったら操作量を増して偏差をなくすように制御する。積分パラメータPIDintegralは、次式５で表すことができる。
PIDintegral ＝ k_j × Tdiff(sum)  ・・・（式５）
【００３５】
なお、式５において、k_jは、積分ゲインである。積分ゲインは、例えば数値シミュレーション等により求めることができる。また、Tdiff(sum)は、Tcurrent(t)がTcontrol(t)を上回った際のデータの累計である。Tdiff(t)＜０のとき、Tdiff(sum)は、次式６で表すことができる。
Tdiff(sum) ＝ Tdiff(sum) ＋ Tdiff(t)  ・・・（式６）
【００３６】
PID制御のDに相当する微分制御は、外乱の変化に対してすばやく反応するために、前回との偏差から相当する操作量を制御する。微分パラメータPIDdifferentialは、次式７で表すことができる。
PIDdifferential ＝ k_d × {Tdiff(t) − Tdiff(t−1)}  ・・・（式７）
【００３７】
なお、式７において、k_dは、微分ゲインである。微分ゲインは、例えば数値シミュレーション等により求めることができる。
【００３８】
上述した比例パラメータPIDproportional、積分パラメータPIDintegral、微分パラメータPIDdifferential、及びPsustainableにより、下記の式８に示すように利用可能電力P(t)を求めることができる。
P(t) ＝ PIDproportional ＋ PIDintegral ＋ PIDdifferential ＋ Psustainable  ・・・（式８）
（参考文献）
https://github.com/torvalds/linux/tree/master/Documentation/thermal/power_allocator.txt
Xin Wang, “Intelligent Power Allocation, Maximize performance in the thermal envelope”, WHITE PAPER, ARM
【００３９】
実施の形態１では、電力計算部６による算出の結果、利用可能電力P(t)が2000mWであったものとして説明する。電力計算部６は、利用可能電力P(t)を発熱制御部３Ａへ出力する。
【００４０】
負荷検出部１Ａは、CPU ９の稼働率及びGPU １０の稼働率を検出する。なお、CPU ９の稼働率及びGPU １０の稼働率は、オペレーティングシステムのスケジューラ機能を用いてリアルタイムに取得することができる。また、負荷検出部１Ａは、検出されたCPU ９の稼働率及びGPU １０の稼働率を重み付け計算部２Ａへ出力する。
【００４１】
重み付け計算部２Ａは、リアルタイムで取得されたCPU ９の稼働率を用いてCPU ９の消費電力Ccpu(t)を求める。また、重み付け計算部２Ａは、リアルタイムで取得されたGPU １０の稼働率を用いてGPU １０の消費電力Cgpu(t)を求める。
【００４２】
ここで、消費電力の算出方法の具体例について説明する。消費電力は、次式９に示すように、ダイナミック電力とリーク電力の和で表される。
消費電力［ｍＷ］＝ダイナミック電力［ｍＷ］＋リーク電力［ｍＷ］  ・・・（式９）
【００４３】
ダイナミック電力は、下記の式１０に示すように、ダイナミック要素電力と実効周波数の積で表される。また、実効周波数は、下記の式１１に示すように、動作周波数と稼働率の積で表される。
ダイナミック電力［ｍＷ］＝ダイナミック要素電力［ｍＷ／ＭＨｚ］×実効周波数［ＭＨｚ］  ・・・（式１０）
実効周波数［ＭＨｚ］＝動作周波数［ＭＨｚ］×稼働率［％］  ・・・（式１１）
【００４４】
ダイナミック要素電力は、負荷容量と電源電圧の二乗の積で表される。ダイナミック要素電力をＷＥ、負荷容量をＣ、電源電圧をＶとすると、ダイナミック要素電力は、下記の式１２で表される。なお、負荷容量は半導体装置の設計値から予め基礎データとして取得しておく。
ＷＥ ＝ Ｃ × Ｖ２  ・・・（式１２）
【００４５】
リーク電力は、電源がＯＮすることで消費する電力である。リーク電力は、リーク電流と電圧との積で表される。リーク電力ＩＬは、トランジスタ１個あたりのリーク電流をｉＬ、トランジスタの総数をＮ、シャットダウン率をｒとして、次式１３で与えられる。なお、シャットダウン率とは、電源がＯＦＦされている割合のことである。
ＩＬ ＝ ｉＬ × Ｎ ×（１−ｒ）  ・・・（式１３）
【００４６】
トランジスタ１個あたりのリーク電流ｉＬは、係数α［Ａ／ｎｍ］、ゲート幅Ｗ［ｎｍ］、しきい値電圧ＶＴ［Ｖ］、サブスレッショルド係数ｎ、ボルツマン定数ｋ＝１．３８×１０−２３［Ｊ／Ｋ］、絶対温度Ｔ［Ｋ］、電気素量ｑ＝１．６×１０−１９［Ｃ］を用いて、次式１４で表すことができる。ここで、係数α及びサブスレッショルド係数ｎは、例えば実験等から求めることができる。
ｉＬ ＝ α × Ｗ × ｅｘｐ｛−ＶＴ × ｑ / （ｎ×ｋＴ）｝  ・・・（式１４）
【００４７】
上記計算に基づき、実施の形態１における前提条件データを例として以下に示す。なお、前提条件データは、例えばメモリ１１に記録しておく。なお、Tjはジャンクション温度を示す。
【００４８】
CPU ９：
・動作周波数：500MHz〜1700MHz
・ダイナミック要素電力：0.46mW/MHz
・リーク電力：150mW@Tj90℃
【００４９】
GPU １０：
・動作周波数：200MHz〜600MHz
・ダイナミック要素電力：0.50mW/MHz
・リーク電力：1090mW@Tj90℃
【００５０】
実施の形態１では、重み付け計算部２Ａは、上記の各種計算と前提条件により、CPU ９の消費電力Ccpu(t)及びGPU １０の消費電力Cgpu(t)を以下のように算出するものとする。なお、消費電力Ccpu(t)は、CPU ９を電力制御開始する時のCPU稼働率に応じたリアルタイムな消費電力であり、消費電力Cgpu(t)は、GPU １０を電力制御開始する時のGPU稼働率に応じたリアルタイムな消費電力である。
・CPU ９の消費電力Ccpu(t) ＝ 853.8mW (Tj90℃, 90%@1700MHz)
・GPU １０の消費電力Cgpu(t) ＝ 1300mW (Tj90℃, 70%@600MHz)
【００５１】
また、重み付け計算部２Ａは、CPU ９の消費電力Ccpu(t)及びGPU １０の消費電力Cgpu(t)及び利用可能な消費電力から、CPU ９及びGPU １０へ分配する各々で利用可能な消費電力を算出するための係数を算出する。なお、図３には、基礎データ７として、CPU ９の係数の変数Wcpu及びGPU １０の係数の変数Wgpuを用意しておく例を示している。この場合、重み付け計算部２Ａは、変数Wcpu及び変数Wgpuに、それぞれ算出した係数を代入してCPU ９の係数及びGPU １０の係数として用いる。なお、基礎データ７として変数Wcpu及び変数Wgpuを用意しない構成としてもよい。この場合、重み付け計算部２Ａは、変数Wcpu及び変数Wgpuへの代入を行わずに、算出した係数をそのままCPU ９の係数及びGPU １０の係数として用いる。
【００５２】
CPU ９の係数は、下記の式１５のように算出される。また、GPU １０の係数は、下記の式１６のように算出される。
CPU ９の係数 ＝ Ccpu(t) / {Ccpu(t) ＋ Cgpu(t)}  ・・・（式１５）
GPU １０の係数 ＝ Cgpu(t) / {Ccpu(t) ＋ Cgpu(t)}  ・・・（式１６）
【００５３】
すなわち、CPU ９の係数は、853.8 / (853.8 ＋ 1300)により計算され、39.6%となる。また、GPU １０の係数は、1300 / (853.8 ＋ 1300)により計算され、60.4%となる。
【００５４】
重み付け計算部２Ａは、CPU ９の係数及びGPU １０の係数を発熱制御部３Ａへ出力する。
【００５５】
発熱制御部３Ａは、利用可能電力P(t)を電力計算部６から受け取る。また、発熱制御部３Ａは、CPU ９の係数及びGPU １０の係数を重み付け計算部２Ａから受け取る。また、発熱制御部３Ａは、利用可能電力P(t)と、CPU ９の係数及びGPU １０の係数とを用いて、CPU ９に分配される利用可能な消費電力Pcpu(t)及びGPU １０に分配される利用可能な消費電力Pgpu(t)を算出する。実施の形態１の前提条件及び上記の各種計算によれば、利用可能電力P(t)は2000mWであり、CPU ９の係数は39.6%であり、GPU １０の係数は60.4%である。このため、発熱制御部３Ａは、CPU ９の利用可能な消費電力Pcpu(t)を、2000 × 39.6/100の計算により、793mWとする。また、発熱制御部３Ａは、GPU １０の利用可能な消費電力Pgpu(t)を、2000 × 60.4/100の計算により、1207mWとする。すなわち、発熱制御部３Ａは、図４に示すように、利用可能電力P(t)： 2000mW を、CPU ９の利用可能な消費電力Pcpu(t)：793mW、GPU １０の利用可能な消費電力Pgpu(t)：1207mWに分配する。
【００５６】
そして、発熱制御部３Ａは、分配されたそれぞれの利用可能な消費電力Pcpu(t)及びPgpu(t)を満たすように、CPU ９及びGPU １０の消費電力をそれぞれ制御する。なお、発熱制御部３Ａは、例えば、クロック制御、電圧制御、電源遮断のうちの少なくとも１つを用いて、CPU ９及びGPU １０の消費電力の制御を行う。以上のように、本発明は、電力制御開始時点でのCPU ９とGPU １０の両稼働率に応じた電力制御を行うことができる。
【００５７】
続いて、図５のフローチャートを用いて、実施の形態１にかかる半導体装置１００Ａの動作例について説明する。
【００５８】
まず、半導体装置１００Ａは、温度検出部４により、チップのジャンクション温度Tcurrent(t)を監視する（ステップＳ２０１）。
【００５９】
次に、半導体装置１００Ａは、温度判定部５により、チップのジャンクション温度Tcurrent(t)がTstart以上か否かを判定する（ステップＳ２０２）
【００６０】
Tcurrent(t)がTstartより小さい場合（ステップＳ２０２にてＮＯ）、半導体装置１００Ａは、ステップＳ２０１の温度監視を続ける。他方、Tcurrent(t)がTstart以上である場合（ステップＳ２０２にてＹＥＳ）、半導体装置１００Ａは、電力計算部６により、利用可能電力P(t)を計算する（ステップＳ２０３）。
【００６１】
次に、半導体装置１００Ａは、負荷検出部１Ａにより、CPU ９及びGPU １０の稼働率を検出する（ステップＳ２０４）。上述してきた電力制御開始時点の稼働率とは、ステップＳ２０４時点での稼働率のことである。
【００６２】
次に、半導体装置１００Ａは、重み付け計算部２Ａにより、CPU ９及びGPU １０の稼働率に基づいて、CPU ９及びGPU １０の係数を算出する（ステップＳ２０５）。
【００６３】
次に、半導体装置１００Ａは、発熱制御部３Ａにより、CPU ９及びGPU １０の係数に基づいて、利用可能電力P(t)をCPU ９及びGPU １０に分配する（ステップＳ２０６）。
【００６４】
次に、半導体装置１００Ａは、分配された利用可能な消費電力に基づいて、CPU ９及びGPU １０の消費電力制御を行い（ステップＳ２０７）、ステップＳ２０１の温度監視に戻る。
【００６５】
以上、説明したように、実施の形態１にかかる半導体装置１００Ａは、チップ上のジャンクション温度Tcurrent(t)と目標とするジャンクション温度Tcontrol(t)とから利用可能電力P(t)を算出する電力計算部６を備える構成としている。また、半導体装置１００Ａは、電力計算部６により、PID制御を用いて利用可能電力P(t)を算出する構成としている。これにより、半導体装置１００Ａでは、チップ上のジャンクション温度Tcurrent(t)を目標とするジャンクション温度Tcontrol(t)にするための利用可能電力P(t)を、適切に求めることができる。
【００６６】
また、半導体装置１００Ａは、重み付け計算部２Ａにより、CPU ９及びGPU １０のそれぞれの稼働率に基づいて、CPU ９の消費電力Ccpu(t)及びGPU １０の消費電力Cgpu(t)を算出する構成としている。また、半導体装置１００Ａは、重み付け計算部２Ａにより、CPU ９の消費電力Ccpu(t)及びGPU １０の消費電力Cgpu(t)に対し、Ccpu(t)及びCgpu(t)を合計した消費電力との割合を、それぞれの係数として算出する構成としている。これにより、半導体装置１００Ａでは、それぞれのモジュールの稼働率に基づく係数を動的に算出することができる。
【００６７】
さらに、半導体装置１００Ａは、発熱制御部３Ａにより、CPU ９及びGPU １０の係数に基づいて、利用可能電力P(t)をCPU ９及びGPU １０に分配する構成としている。さらに、半導体装置１００Ａは、発熱制御部３Ａにより、分配された利用可能な消費電力値に基づいて、CPU ９及びGPU １０の消費電力制御を行う構成としている。これにより、半導体装置１００Ａでは、CPU ９及びGPU １０のそれぞれの稼働率に基づく係数を用いて、利用可能電力P(t)をCPU ９及びGPU １０に分配することができる。このため、半導体装置１００Ａでは、ユースケース・負荷状況を考慮した発熱制御を行うことができ、製品のユーザーエクスペリエンスを向上させることができる。
【００６８】
実施の形態２
続いて、実施の形態２について説明する。図６は、実施の形態２にかかる半導体システム１０００の構成例を示すブロック図である。半導体システム１０００は、第１の半導体装置１００Ｂと、第２の半導体装置２００と、を備えている。なお、第１の半導体装置１００Ｂと第２の半導体装置２００とは、それぞれ異なる半導体チップに形成されている。
【００６９】
なお、実施の形態２では、半導体システム１０００が第１の半導体装置１００Ｂ及び第２の半導体装置２００の２つの半導体装置を備える例について説明するが、半導体システム１０００が備える半導体装置の数は、２つに限らない。半導体システム１０００が備える半導体装置の数は、２つ以上であれば如何なる数でもよい。なお、半導体システム１０００が備える半導体装置の数が３つ以上である場合、第１の半導体装置１００Ｂ以外の半導体装置は、第２の半導体装置２００と同様の構成であるものとする。
【００７０】
第２の半導体装置２００は、第１の半導体装置１００Ｂと温度特性が同じ半導体装置である。なお、第２の半導体装置２００は、第１の半導体装置１００Ｂと温度特性が同じであればどのような構成でもよい。以下、第２の半導体装置２００が、ハードウェア構成として、CPU ２１と、GPU ２２と、を備えているものとして説明する。
【００７１】
続いて、図７のブロック図を用いて、実施の形態２にかかる第１の半導体装置１００Ｂについて説明する。第１の半導体装置１００Ｂは、ハードウェア構成として、THS ８と、CPU ９と、GPU １０と、メモリ１１と、バス１２と、を備えている。また、半導体装置１００Ｂは、ソフトウェア構成として、負荷検出部１Ｂと、重み付け計算部２Ｂと、発熱制御部３Ｂと、温度検出部４と、温度判定部５と、電力計算部６と、基礎データ７と、を備えている。すなわち、第１の半導体装置１００Ｂにおいて、負荷検出部１Ｂ、重み付け計算部２Ｂ、及び発熱制御部３Ｂ以外の構成については、実施の形態１の半導体装置１００Ａと同じであるため説明を省略する。
【００７２】
負荷検出部１Ｂは、CPU ９の稼働率、GPU １０の稼働率、CPU ２１の稼働率、及びGPU ２２の稼働率を検出する。なお、負荷検出部１Ｂは、CPU ２１の稼働率及びGPU ２２の稼働率を、第１の半導体装置１００Ｂと第２の半導体装置２００との間の配線を介して、第２の半導体装置２００から取得する。負荷検出部１Ｂは、CPU ９の稼働率、GPU １０の稼働率、CPU ２１の稼働率、及びGPU ２２の稼働率を重み付け計算部２Ｂへ出力する。
【００７３】
重み付け計算部２Ｂは、CPU ９の稼働率、GPU １０の稼働率、CPU ２１の稼働率、及びGPU ２２の稼働率に基づいて、それぞれCPU ９の消費電力Ccpu9(t)、GPU １０の消費電力Cgpu10(t)、CPU ２１の消費電力Ccpu21(t)、及びGPU ２２の消費電力Cgpu22(t)を求める。また、重み付け計算部２Ｂは、CPU ９の消費電力Ccpu9(t)、GPU １０の消費電力Cgpu10(t)、CPU ２１の消費電力Ccpu21(t)、及びGPU ２２の消費電力Cgpu22(t)に基づいて、CPU ９、GPU １０、CPU ２１、及びGPU ２２の利用可能な消費電力を算出するための係数を算出する。
【００７４】
具体的には、重み付け計算部２Ｂは、CPU ９の消費電力Ccpu9(t)、GPU １０の消費電力Cgpu10(t)、CPU ２１の消費電力Ccpu21(t)、及びGPU ２２の消費電力Cgpu22(t)に対し、Ccpu9(t)、Cgpu10(t)、Ccpu21(t)、及びCgpu22(t)を合計した消費電力との割合を、それぞれCPU ９、GPU １０、CPU ２１、及びGPU ２２の係数として算出する。そして、重み付け計算部２Ｂは、CPU ９、GPU １０、CPU ２１、及びGPU ２２の係数を発熱制御部３Ｂへ出力する。
【００７５】
発熱制御部３Ｂは、CPU ９、GPU １０、CPU ２１、及びGPU ２２の係数を重み付け計算部２Ｂから受け取る。また、発熱制御部３Ｂは、利用可能電力P(t)を電力計算部６から受け取る。なお、実施の形態２における利用可能電力P(t)は、第１の半導体装置１００Ｂ及び第２の半導体装置２００により利用可能である合計の電力を示す。また、第１の半導体装置１００Ｂのチップ上のサーマルセンサーTHS ８により得たジャンクション温度Tcurrent(t)を用いて、利用可能な消費電力を算出する。
【００７６】
発熱制御部３Ｂは、利用可能電力P(t)と、CPU ９、GPU １０、CPU ２１、及びGPU ２２の係数とを用いて、CPU ９の利用可能な消費電力Pcpu9(t)、GPU １０の利用可能な消費電力Pgpu10(t)、CPU ２１の利用可能な消費電力Pcpu21(t)、及びGPU ２２の利用可能な消費電力Pgpu22(t)を算出する。すなわち、発熱制御部３Ｂは、利用可能電力P(t)を、Pcpu9(t)、Pgpu10(t)、Pcpu21(t)、及びPgpu22(t)に分配する。
【００７７】
そして、発熱制御部３Ｂは、分配されたPcpu9(t)、Pgpu10(t)、Pcpu21(t)、及びPgpu22(t)を満たすように、CPU ９、GPU １０、CPU ２１、及びGPU ２２の消費電力をそれぞれ制御する。なお、発熱制御部３Ｂは、例えば、クロック制御、電圧制御、電源遮断のうちの少なくとも１つを用いて、CPU ９、GPU １０、CPU ２１、及びGPU ２２の消費電力の制御を行う。なお、発熱制御部３Ｂは、CPU ２１及びGPU ２２の消費電力を、第１の半導体装置１００Ｂと第２の半導体装置２００との間の配線を介して制御する。
【００７８】
なお、実施の形態２では、発熱制御対象のモジュールとして、第１の半導体装置１００ＢがCPU ９及びGPU １０を備え、第２の半導体装置２００がCPU ２１及びGPU ２２を備える構成について説明したが、これに限らない。例えば、発熱制御対象のモジュールとして、第１の半導体装置１００Ｂが第１のモジュールを備え、第２の半導体装置２００が第２のモジュールを備える構成であってもよい。
【００７９】
以上、説明したように、実施の形態２にかかる半導体システム１０００は、第１の半導体装置１００Ｂ及び第２の半導体装置２００を備える構成としている。また、第１の半導体装置１００Ｂは、負荷検出部１Ｂと、重み付け計算部２Ｂと、発熱制御部３Ｂと、を備える構成としている。また、負荷検出部１Ｂは、第１の半導体装置１００Ｂの第１のモジュールの稼働率及び第２の半導体装置２００の第２のモジュールの稼働率を検出する構成としている。また、重み付け計算部２Ｂは、第１のモジュール及び第２のモジュールの稼働率に基づいて第１のモジュール及び第２のモジュールの係数を算出する構成としている。さらに、発熱制御部３Ｂは、第１のモジュール及び第２のモジュールの係数に基づいて第１のモジュール及び第２のモジュールの消費電力を制御する構成としている。これにより、半導体システム１０００では、複数の半導体装置におけるそれぞれのモジュールの使用状況を加味してそれぞれのモジュールの消費電力制御を行うことができる。すなわち、半導体システム１０００では、発熱制御対象の複数の半導体装置におけるそれぞれのモジュールに対して、使用状況を加味して性能を割り当てつつ発熱を抑えることができる。
【００８０】
実施の形態３
続いて、実施の形態３について説明する。実施の形態３にかかる半導体システム１０００Ｃは、実施の形態２の半導体システム１０００の変形例である。半導体システム１０００Ｃは、第１の半導体装置１００Ｃ及び第２の半導体装置２００Ｃを備えている。なお、第１の半導体装置１００Ｃと第２の半導体装置２００Ｃとは、それぞれ異なる半導体チップに形成されている。半導体システム１０００Ｃの構成は、実施の形態２の半導体システム１０００の構成と同様であり、図示を省略する。
【００８１】
第２の半導体装置２００Ｃは、第１の半導体装置１００Ｃと温度特性が異なる半導体装置である。第２の半導体装置２００Ｃは、ハードウェア構成として、CPU ２１及びGPU ２２に加えてTHS ２３を備えている。
【００８２】
続いて、図８のブロック図を用いて、実施の形態３にかかる第１の半導体装置１００Ｃの構成例について説明する。第１の半導体装置１００Ｃは、ハードウェア構成として、THS ８と、CPU ９と、GPU １０と、メモリ１１と、バス１２と、を備えている。また、半導体装置１００Ｃは、ソフトウェア構成として、負荷検出部１Ｂと、重み付け計算部２Ｃと、発熱制御部３Ｃと、温度検出部４Ｃと、温度判定部５Ｃと、電力計算部６と、基礎データ７と、を備えている。
【００８３】
温度検出部４Ｃは、第１の半導体装置１００Ｃのチップ上のジャンクション温度である第１のTcurrent(t)をTHS ８から取得する。また、温度検出部４Ｃは、第２の半導体装置２００Ｃのチップ上のジャンクション温度である第２のTcurrent(t)を第２の半導体装置２００ＣのTHS ２３から取得する。そして、温度検出部４Ｃは、取得された第１のTcurrent(t)及び第２のTcurrent(t)を温度判定部５Ｃへ出力する。また、温度検出部４Ｃは、取得された第１のTcurrent(t)及び第２のTcurrent(t)を重み付け計算部２Ｃへ出力する。
【００８４】
温度判定部５Ｃは、第１のTcurrent(t)及び第２のTcurrent(t)とTstartとを比較することにより、発熱制御の開始判定を行う。温度判定部５Ｃは、例えば、第１のTcurrent(t)及び第２のTcurrent(t)のうちの少なくとも一方がTstart以上である場合に、発熱制御を開始すると判定する。
【００８５】
重み付け計算部２Ｃは、CPU ９の稼働率、GPU １０の稼働率、CPU ２１の稼働率、及びGPU ２２の稼働率に基づいて、それぞれCPU ９の消費電力Ccpu9(t)、GPU １０の消費電力Cgpu10(t)、CPU ２１の消費電力Ccpu21(t)、及びGPU ２２の消費電力Cgpu22(t)を求める。また、重み付け計算部２Ｃは、CPU ９の消費電力Ccpu9(t)、GPU １０の消費電力Cgpu10(t)、CPU ２１の消費電力Ccpu21(t)、及びGPU ２２の消費電力Cgpu22(t)に基づいて、CPU ９、GPU １０、CPU ２１、及びGPU ２２の利用可能な消費電力を算出するための係数を算出する。
【００８６】
具体的には、重み付け計算部２Ｃは、CPU ９の消費電力Ccpu9(t)及びGPU １０の消費電力Cgpu10(t)に対し、Ccpu9(t)及びCgpu10(t) を合計した消費電力との割合を、それぞれCPU ９及びGPU １０の係数として算出する。また、重み付け計算部２Ｃは、CPU ２１の消費電力Ccpu21(t)及びGPU ２２の消費電力Cgpu22(t)に対し、Ccpu21(t)及びCgpu22(t)を合計した消費電力との割合を、それぞれCPU ２１及びGPU ２２の係数として算出する。
【００８７】
また、重み付け計算部２Ｃは、目標とするジャンクション温度Tcontrol(t)から第１のTcurrent(t)を減算した第１のTdiff(t)と、目標とするジャンクション温度Tcontrol(t)から第２のTcurrent(t) を減算した第２のTdiff(t)とに基づいて、第１の半導体装置１００Ｃ及び第２の半導体装置２００Ｃの温度係数を算出する。
【００８８】
具体的には、重み付け計算部２Ｃは、第１のTdiff(t)、第２のTdiff(t)に対し、第１のTdiff(t)及び第２のTdiff(t)を合計した値との割合を、それぞれ第１の半導体装置１００Ｃ及び第２の半導体装置２００Ｃの温度係数として算出する。すなわち、第１の半導体装置１００Ｃの温度係数は、下記の式１７のように算出される。また、第２の半導体装置２００Ｃの温度係数は、下記の式１８のように算出される。
第１の半導体装置１００Ｃの温度係数 ＝ 第１のTdiff(t) / {第１のTdiff(t) ＋第２のTdiff(t)}  ・・・（式１７）
第２の半導体装置２００Ｃの温度係数 ＝ 第２のTdiff(t) / {第１のTdiff(t) ＋第２のTdiff(t)}  ・・・（式１８）
【００８９】
一例として、目標とするジャンクション温度Tcontrol(t)が100℃、第１のTcurrent(t)が90℃、第２のTcurrent(t)が50℃の場合について説明する。この場合、第１のTdiff(t)は10℃であり、第２のTdiff(t)は50℃である。また、第１の半導体装置１００Ｃの温度係数は、10 / (10 ＋ 50)により計算され、16.7%となる。また、第２の半導体装置２００Ｃの温度係数は、50 / (10 ＋ 50)により計算され、83.3%となる。
【００９０】
そして、重み付け計算部２Ｃは、CPU ９、GPU １０、CPU ２１、及びGPU ２２の係数、第１の半導体装置１００Ｃの温度係数、及び第２の半導体装置２００Ｃの温度係数を発熱制御部３Ｃへ出力する。
【００９１】
発熱制御部３Ｃは、利用可能電力P(t)と、CPU ９、GPU １０、CPU ２１、及びGPU ２２の係数と、第１の半導体装置１００Ｃの温度係数及び第２の半導体装置２００Ｃの温度係数とを用いて、CPU ９の利用可能な消費電力Pcpu9(t)、GPU １０の利用可能な消費電力Pgpu10(t)、CPU ２１の利用可能な消費電力Pcpu21(t)、及びGPU ２２の利用可能な消費電力Pgpu22(t)を算出する。なお、実施の形態３における利用可能電力P(t)は、第１の半導体装置１００Ｃ及び第２の半導体装置２００Ｃにより利用可能である合計の電力を示す。
【００９２】
具体的には、発熱制御部３Ｃは、CPU ９の利用可能な消費電力Pcpu9(t) 、GPU １０の利用可能な消費電力Pgpu10(t)、CPU ２１の利用可能な消費電力Pcpu21(t)、及びGPU ２２の利用可能な消費電力Pgpu22(t)を、それぞれ下記の式１９から式２２のように算出する。
Pcpu9(t) ＝ P(t) × CPU ９の係数 ×第１の半導体装置１００Ｃの温度係数  ・・・（式１９）
Pgpu10(t) ＝ P(t) × GPU １０の係数 ×第１の半導体装置１００Ｃの温度係数  ・・・（式２０）
Pcpu21(t) ＝ P(t) × CPU ２１の係数 ×第２の半導体装置２００Ｃの温度係数  ・・・（式２１）
Pgpu22(t) ＝ P(t) × GPU ２２の係数 ×第２の半導体装置２００Ｃの温度係数  ・・・（式２２）
【００９３】
ここで、下記前提条件に基づく発熱制御部３Ｃによる算出の一例について説明する。
・利用可能電力P(t)：2000mW
・CPU ９の係数：39.6%
・GPU １０の係数：60.4%
・CPU ２１の係数：50.8%
・GPU ２２の係数：49.2%
・第１の半導体装置１００Ｃの温度係数：16.7%
・第２の半導体装置２００Ｃの温度係数：83.3%
【００９４】
この場合、CPU ９の利用可能な消費電力Pcpu9(t)は、2000 × 39.6/100 × 16.7/100により計算され、132.3mWとなる。また、GPU １０の利用可能な消費電力Pgpu10(t)は、2000 × 60.4/100 × 16.7/100により計算され、201.7mWとなる。また、CPU ２１の利用可能な消費電力Pcpu21(t)は、2000 × 50.8/100 × 83.3/100により計算され、846.3mWとなる。また、GPU ２２の利用可能な消費電力Pgpu22(t)は、2000 × 49.2/100 × 83.3/100により計算され、819.7mWとなる。
【００９５】
そして、発熱制御部３Ｃは、算出されたPcpu9(t)、Pgpu10(t)、Pcpu21(t)、及びPgpu22(t)を満たすように、CPU ９、GPU １０、CPU ２１、及びGPU ２２の消費電力をそれぞれ制御する。
【００９６】
以上、説明したように、実施の形態３にかかる半導体システム１０００Ｃは、第１の半導体装置１００Ｃ及び第２の半導体装置２００Ｃを備える構成としている。また、第１の半導体装置１００Ｃは、負荷検出部１Ｂと、重み付け計算部２Ｃと、発熱制御部３Ｃと、温度検出部４Ｃと、を備える構成としている。また、温度検出部４Ｃは、第１の半導体装置１００Ｃのチップ上のジャンクション温度である第１のTcurrent(t)と第２の半導体装置２００Ｃのチップ上のジャンクション温度である第２のTcurrent(t)とを検出する構成としている。また、重み付け計算部２Ｃは、目標とするジャンクション温度Tcontrol(t)から第１のTcurrent(t)を減算した第１のTdiff(t)と、Tcontrol(t)から第２のTcurrent(t) を減算した第２のTdiff(t)とに基づいて第１の半導体装置１００Ｃ及び第２の半導体装置２００Ｃの温度係数を算出する構成としている。さらに、発熱制御部３Ｃは、第１の半導体装置１００Ｃのモジュールの係数、第２の半導体装置２００Ｃのモジュールの係数、第１の半導体装置１００Ｃの温度係数、及び第２の半導体装置２００Ｃの温度係数に基づいて第１の半導体装置１００Ｃのモジュール及び第２の半導体装置２００Ｃのモジュールの消費電力を制御する構成としている。これにより、半導体システム１０００Ｃでは、それぞれのモジュールの使用状況に加えて、第１の半導体装置１００Ｃ及び第２の半導体装置２００Ｃの温度状況を考慮して、それぞれのモジュールの消費電力制御を行うことができる。すなわち、半導体システム１０００Ｃでは、発熱制御対象の複数の半導体装置におけるそれぞれのモジュールに対して、使用状況及び温度状況を加味して性能を割り当てつつ発熱を抑えることができる。
【００９７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００９８】
１、１Ａ、１Ｂ    負荷検出部
２、２Ａ、２Ｂ、２Ｃ    重み付け計算部
３、３Ａ、３Ｂ、３Ｃ    発熱制御部
４、４Ｃ    温度検出部
５、５Ｃ    温度判定部
６    電力計算部
７    基礎データ
８    THS
９    CPU
１０    GPU
１１    メモリ
１２    バス
１００、１００Ａ、１００Ｂ、１００Ｃ    半導体装置（第１の半導体装置）
２００、２００Ｃ    第２の半導体装置
１０００、１０００Ｃ    半導体システム
【図１】
2019114009.tif 000003
【図２】
2019114009.tif 000004
【図３】
2019114009.tif 000005
【図４】
2019114009.tif 000006
【図５】
2019114009.tif 000007
【図６】
2019114009.tif 000008
【図７】
2019114009.tif 000009
【図８】
2019114009.tif 000010