(57)【要約】【課題】複数のＣＰＵを有する半導体集積回路において、従来よりも細かい精度で、それぞれのＣＰＵへのダメージを分散化させる。【解決手段】ダメージ制御手段１００は、全ＣＰＵあるいは部分的なＣＰＵのダメージ率に基づいて、ダメージ率の平準化を行うＣＰＵ構成を判断する機能を有する切替判断手段１１０と、全ＣＰＵの入出力信号の切替を行う機能を有する切替手段１２０とを備え、切替判断手段１１０は、常時又はある程度の時間間隔で、温度や、電圧、消費電流量、動作率、ＣＰＵ内部資源のアクセス回数といった尺度から計算された指標であるダメージ率を観測し、各ＣＰＵのダメージ率を平準化するための計算手法を用いて、変更すべきＣＰＵの構成を切替手段１２０へ通知し、切替手段１２０は、全ＣＰＵの入出力信号及びシステムバス６０に接続し、切替判断手段１２０からの通知に基づいて、切替えるべきＣＰＵの入出力信号の切替を行う。【選択図】図４
2010066785.tif 000002
【特許請求の範囲】
【請求項１】
プログラムで動作可能な演算装置を複数有する半導体集積回路において、
前記演算装置の実行環境の切替を制御するダメージ制御手段を備え、
前記ダメージ制御手段は、
前記演算装置にかかる負荷状況を計算する切替判断手段と、
前記切替判断手段による計算結果に基づいて、前記演算装置で動作中の実行環境の切替を行う切替手段と
を備えることを特徴とする半導体集積回路。
【請求項２】
前記切替判断手段は、前記演算装置のダメージ率に基づいて前記負荷状況を計算し、前記実行環境の切替の必要性を判断することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記ダメージ率は、前記演算装置の経年劣化をもたらす現象に基づいて導かれることを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記切替手段は、
前記演算装置の実行環境のコンテキストを設定又は抽出するコンテキスト設定抽出手段と、
前記コンテキストの切替の開始及び停止の指示に従って信号接続の切替を行う信号切替手段と、
を有することを特徴とする請求項１から請求項３の何れか１項に記載の半導体集積回路。
【請求項５】
前記コンテキスト設定抽出手段は、前記設定又は抽出によって前記実行環境の前記コンテキストの切替を行い、
前記信号切替手段は、切替が行われた前記コンテキストに対応させて前記信号接続の切替を行うことを特徴とする請求項４に記載の半導体集積回路。
【請求項６】
前記切替判断手段は、計算された前記負荷状況に基づいて、各前記演算装置の負荷状況が均等化されるように前記実行環境の切替を判断することを特徴とする請求項１から請求項５の何れか１項に記載の半導体集積回路。
【請求項７】
前記切替判断手段は、計算された前記負荷状況に基づいて、各前記演算装置の負荷状況が、各前記演算装置毎に設定された各閾値に近付くように前記実行環境の切替を判断することを特徴とする請求項１から請求項５の何れか１項に記載の半導体集積回路。
【請求項８】
プログラムで動作可能な演算装置を複数有する半導体集積回路上で前記演算装置の制御を行う半導体集積回路制御装置において、
前記演算装置の実行環境の切替を制御するダメージ制御手段を備え、
前記ダメージ制御手段は、
前記演算装置にかかる負荷状況を計算する切替判断手段と、
前記切替判断手段による計算結果に基づいて、前記演算装置で動作中の実行環境の切替を行う切替手段と
を備えることを特徴とする半導体集積回路制御装置。
【請求項９】
前記切替判断手段は、前記演算装置のダメージ率に基づいて前記負荷状況を計算し、前記実行環境の切替の必要性を判断することを特徴とする請求項８に記載の半導体集積回路制御装置。
【請求項１０】
前記ダメージ率は、前記演算装置の経年劣化をもたらす現象に基づいて導かれることを特徴とする請求項９に記載の半導体集積回路制御装置。
【請求項１１】
前記切替手段は、
前記演算装置の実行環境のコンテキストを設定又は抽出するコンテキスト設定抽出手段と、
前記コンテキストの切替の開始及び停止の指示に従って信号接続の切替を行う信号切替手段と、
を有することを特徴とする請求項８から請求項１０の何れか１項に記載の半導体集積回路制御装置。
【請求項１２】
前記コンテキスト設定抽出手段は、前記設定又は抽出によって前記実行環境の前記コンテキストの切替を行い、
前記信号切替手段は、切替が行われた前記コンテキストに対応させて前記信号接続の切替を行うことを特徴とする請求項１１に記載の半導体集積回路制御装置。
【請求項１３】
前記切替判断手段は、計算された前記負荷状況に基づいて、各前記演算装置の負荷状況が均等化されるように前記実行環境の切替を判断することを特徴とする請求項８から請求項１２の何れか１項に記載の半導体集積回路制御装置。
【請求項１４】
前記切替判断手段は、計算された前記負荷状況に基づいて、各前記演算装置の負荷状況が、各前記演算装置毎に設定された各閾値に近付くように前記実行環境の切替を判断することを特徴とする請求項８から請求項１２の何れか１項に記載の半導体集積回路制御装置。
【請求項１５】
前記半導体集積回路を含むことを特徴とする請求項８から請求項１４の何れか１項に記載の半導体集積回路制御装置。
【請求項１６】
プログラムで動作可能な複数の演算装置の負荷分散方法であって、
１又は２以上の前記演算装置における負荷状況を計算し、
前記負荷状況に従って前記演算装置の実行環境を他の何れの演算装置に切り替えるかを判断し、
前記判断結果に基づいて、前記演算装置の実行環境を他の演算装置へ切り替えることを特徴とする演算装置の負荷分散方法。
【請求項１７】
前記演算装置のダメージ率を計算し、当該ダメージ率に基づいて前記負荷状況を計算することを特徴とする請求項１６に記載の演算装置の負荷分散方法。
【請求項１８】
前記ダメージ率を、前記演算装置の経年劣化をもたらす現象に基づいて算出することを特徴とする請求項１７に記載の演算装置の負荷分散方法。
【請求項１９】
前記演算装置の実行環境のコンテキストを設定又は抽出し、
前記コンテキストの切替の開始及び停止の指示に従って信号接続の切替を行うことを特徴とする請求項１６から請求項１８の何れか１項に記載の演算装置の負荷分散方法。
【請求項２０】
前記設定又は抽出によって前記実行環境の前記コンテキストの切替を行い、
切替が行われた前記コンテキストに対応させて前記信号接続の切替を行うことを特徴とする請求項１９に記載の演算装置の負荷分散方法。
【請求項２１】
計算された前記負荷状況に基づいて、各前記演算装置の負荷状況が均等化されるように前記実行環境の切替を判断することを特徴とする請求項１６から請求項２０の何れか１項に記載の演算装置の負荷分散方法。
【請求項２２】
計算された前記負荷状況に基づいて、各前記演算装置の負荷状況が、各前記演算装置毎に設定された各閾値に近付くように前記実行環境の切替を判断することを特徴とする請求項１６から請求項２０の何れか１項に記載の演算装置の負荷分散方法。
【請求項２３】
プログラムによってコンピュータ装置上で動作可能な複数の演算装置の負荷分散プログラムであって、
ダメージ制御手段に、
１又は２以上の前記演算装置における負荷状況を計算する処理と、
前記負荷状況に従って前記演算装置の実行環境を他の何れの演算装置に切り替えるかを判断する処理とを実行させ、
切替手段に、
前記判断結果に基づいて、前記演算装置の実行環境を他の演算装置へ切り替える処理を実行させることを特徴とする演算装置の負荷分散プログラム。
【請求項２４】
請求項１から請求項７の何れか１項に記載の半導体集積回路を備えることを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵを有する半導体集積回路に関し、特に、磨耗故障において、ダメージ制御によって半導体集積回路の信頼性を向上することが可能な、半導体集積回路、半導体集積回路制御装置、負荷分散方法、負荷分散プログラムおよび電子装置に関する。
【背景技術】
【０００２】
半導体の微細化の進展により、半導体集積回路は高性能化の恩恵を享受してきた。しかしながら、その高性能化に伴う、電流密度または回路のスイッチング回数といった半導体集積回路への負荷の増加が、半導体デバイスに非常に大きな負担をかけているため、その結果、半導体デバイスの疲労が避けられず、その耐用寿命が短くなるという課題があった。
【０００３】
図１２は、アプリケーションレベルでの負荷分散によるダメージ制御装置の構成例の一例を模式的に示す従来図である。図１２に示すダメージ制御装置の構成例では、ＣＰＵ１０Ｐ１−Ｐｎと、ＯＳ２０Ｐ１−Ｐｎからなる実行環境４０Ｐ１−Ｐｎ上で、アプリケーション（ＡＰ）３０Ｐ１−Ｐｍが動作する構成とされている。
【０００４】
かかる構成において、ＯＳ２０Ｐ１−Ｐｎは、アプリケーション３０Ｐ１−Ｐｎの負荷に応じて、アプリケーションを異なるＣＰＵ上へ移動させるといった、各ＣＰＵの負荷状況を一定化するように制御する。この制御により、ＣＰＵ１０Ｐ１−Ｐｎへの疲労（負荷）が平準化されるため、半導体デバイスの耐用寿命を伸ばすことが可能となる。
【０００５】
しかしながら、図１２に示した従来の方式は、以下の問題点を有していた。
【０００６】
第１に、アプリケーションレベルでの負荷分散のため、ＣＰＵに固定して割り付けられたアプリケーション等がある場合には、各ＣＰＵの負荷の平準化が容易でないという問題点があった。
【０００７】
第２に、アプリケーションレベルの負荷の測定では、ＣＰＵへの疲労度（ダメージ率）と直接結びつかないという問題点があった。
【０００８】
これに対応する技術として、特許文献１（特開昭６２−０７５７３９号公報）に記載のようなタスク割当て方法がある。しかし、特許文献１には、図１２に示した構成と同様に、タスクの固定割当も可能な、タスクの負荷分散方法が開示されている（後記特許文献１参照）。したがって、特許文献１には、図１２と同じ問題があった。
【０００９】
次に、図１３は、電源制御機構によるダメージ制御装置の構成の一典型例を示す従来図である。図１３に示すダメージ制御装置の構成例では、図１２の構成に加えて、電源制御機構１０００を備える構成とされている。
【００１０】
かかる構成において、ＣＰＵ１０Ｐ１は、電源制御機構１０００を介して、負荷の無いＣＰＵ（図１３ではＣＰＵ１０Ｐ２）の電源を遮断する。これにより、その負荷の無いＣＰＵへのダメージを低減することが可能となる。
【００１１】
しかしながら、図１３に示した方式は、図１２に示した問題点に加えて、以下の問題点を有している。
【００１２】
第１に、電源制御を行うＣＰＵが固定化されるので、そのＣＰＵのダメージの低減が難しいという問題点があった。
【００１３】
第２に、負荷が無い状況でないと、この方式による利点は享受できないという問題点があった。
【００１４】
これに対応する技術として、特許文献２（特開２００４−３５５１５３号公報）には、シングルプロセッサ向けＯＳを用いた電源管理システムが開示されている（後記特許文献２参照）。しかし、特許文献２には、図１３に示したのと同様の構成が開示されている。したがって、特許文献２には、図１３と同じ問題があった。
【特許文献１】特開昭６２−０７５７３９号公報
【特許文献２】特開２００４−３５５１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記で述べたように、従来、複数のＣＰＵを有する半導体集積回路において、それぞれのＣＰＵに均等にダメージを分散化させることで、半導体集積回路の耐用寿命を延ばすことは実現不可能であった。
【００１６】
さらに、動作を行っている最中の実行環境同士をＣＰＵ間で移動させることは困難であった。
【００１７】
ここで、実行環境とは、アプリケーションだけでなくＯＳやミドルウエアを含めたアプリケーション実行環境のことをいう。
【００１８】
（発明の目的）
したがって、本発明の目的は、複数の演算装置を有する半導体集積回路において、従来よりも細かい精度で、それぞれの演算装置へのダメージを分散化させる半導体集積回路、半導体集積回路制御装置、負荷分散方法、負荷分散プログラムおよび電子装置を提供することにある。
【課題を解決するための手段】
【００１９】
前記目的を達成する本発明は、プログラムで動作可能な演算装置を複数有する半導体集積回路において、前記演算装置の実行環境の切替を制御するダメージ制御手段を備え、前記ダメージ制御手段は、前記演算装置にかかる負荷状況を計算する切替判断手段と、前記切替判断手段による計算結果に基づいて、前記演算装置で動作中の実行環境の切替を行う切替手段とを備えることを特徴とする。
【００２０】
（作用）
上記構成により、プログラムで動作可能な複数の演算装置を有する半導体集積回路に対し、アプリケーションレベルのみで負荷分散を行うのではなく、ＯＳも含めた実行環境そのものの移動が可能となる。
【発明の効果】
【００２１】
本発明によれば、ＯＳも含めた実行環境そのものの移動が可能となって演算装置のより高精度な負荷分散を行え、演算装置にかかる累積ダメージを演算装置毎に制御できることから、半導体集積回路のダメージをより平準化することができ、半導体集積回路の耐用寿命を延ばすことができる。
【００２２】
その理由は、プログラムで動作可能な複数の演算装置間の実行環境の切替を制御するダメージ制御手段が、演算装置にかかる負荷状況を計算し、当該計算結果に基づいて、演算装置で動作中の実行環境の切替を行うからである。
【発明を実施するための最良の形態】
【００２３】
本発明を実施するための最良の形態について説明する。
【００２４】
本発明は、その好ましい一実施の形態によれば、図１を参照すると、システムバス６０を介して接続された、複数のＣＰＵ１０Ｐ１−Ｐｎ、アクセラレータ５０、ＲＯＭ５１、ＲＡＭ５２、Ｉ／Ｏ５３、割り込み・クロック・電源制御５４、タイマ５５を有する半導体集積回路に加えて、ＣＰＵ１０Ｐ１−Ｐｎのダメージ制御を行うダメージ制御手段１００を備える。
【００２５】
これにより、ダメージ情報に基づいて、ダメージ制御手段１００がダメージの分散化を行うための実行環境の切替を判断し、そして、その判断に基づき、実行環境のコンテキストをあるＣＰＵから別のＣＰＵに移動させることが可能となる。
【００２６】
より具体的には、例えば、各ＣＰＵ間でダメージを均等にするように実行環境の切替を行うことができ、また、例えば、ＣＰＵ毎にダメージの閾値を設定し、各ＣＰＵのダメージが各閾値に近付くように実行環境の切替を行うこともでき、また、例えば、特定のＣＰＵのダメージの閾値を他のＣＰＵよりも低く設定し、特定のＣＰＵのダメージが当該閾値を超えないように実行環境の切替を行うこともできる。
【００２７】
その結果、より高精度なＣＰＵの負荷分散が行えると同時に、ソフトウェアの改造にかかるコストを少なく抑えることができる。
【００２８】
以下、実施の形態に即して図面を用いて詳細に説明する。
【００２９】
（第１の実施の形態）
本発明の第１の実施の形態を図面を用いて詳細に説明する。本実施の形態は、各ＣＰＵ間でダメージを均等にするように実行環境の切替を行うものである。
【００３０】
（第１の実施の形態の構成）
図１は、本発明の第１の実施の形態による半導体集積回路のダメージ制御装置の構成を示すブロック図である。
【００３１】
図１を参照すると、本実施の形態の半導体集積回路のダメージ制御装置は、システムバス６０を介して接続された、複数のＣＰＵ１０Ｐ１−Ｐｎ、アクセラレータ５０、ＲＯＭ５１、ＲＡＭ５２、入出力部（Ｉ／Ｏ）５３、割り込み・クロック・電源制御部５４、タイマ５５を有する半導体集積回路に加えて、前記ＣＰＵのダメージ制御を行うダメージ制御手段１００を備える。
【００３２】
なお、本実施の形態におけるＣＰＵ１０Ｐ１−Ｐｎ、アクセラレータ５０、ＲＯＭ５１、ＲＡＭ５２、Ｉ／Ｏ５３、割り込み・クロック・電源制御部５４、タイマ５５、ダメージ制御手段１００は、それぞれ、別パッケージ構成だけでなく、ＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐ）内部の回路構成あるいは別チップによるＳｉＰ（Ｓｙｓｔｅｍ−ｉｎ−Ｐａｃｋａｇｅ）構成、さらにその組み合わせからなる構成をとってもよい。
【００３３】
本実施の形態によるＣＰＵ１０Ｐ−１−Ｐｎは、信号処理プロセッサ、または、ＶＬＩＷプロセッサ、構成可能プロセッサ等の、プログラム動作が可能な演算装置であれば何でもよい。
【００３４】
また、本実施の形態によるダメージ制御手段１００は、ハードウェア構成だけでなく、ソフトウェア的な構成で実現されてもよい。
【００３５】
なお、ＣＰＵへのダメージとは、半導体デバイスにおける、下記のような経年劣化を起こす現象群から計算される。例えば、そのような現象には、配線のエレクトロマイグレーション・ストレスマイグレーション、トランジスタの酸化膜経時破壊、ＮＢＴＩ（Ｎｅｇａｔｉｖｅ  Ｂｉａｓ  Ｔｅｍｐｅｒａｔｕｒｅ  Ｉｎｓｔａｂｉｌｉｔｙ）、ホットキャリア注入等がある。これらの現象は、温度や、ゲート・ソース電圧等によって、その平均故障率が変化するという特徴を持っている。したがって、ある時点において、温度や、電圧、消費電流量、動作率、ＣＰＵ内部資源のアクセス回数といった尺度から計算された指標を、以下ではダメージ率と呼ぶ。
【００３６】
ここで、ダメージ率は、上記のような現象の情報に基づき、ダメージ制御手段によって、上記の尺度が計算ないし観測される。温度や電圧、消費電力の測定は、自身に設けられた測定装置や、半導体集積回路の測定装置、内部の負荷情報から換算してもよい。いずれにせよ、従来の測定装置からの情報に基づいて、取得することが可能である。
【００３７】
図２は、本実施の形態における半導体集積回路のダメージ制御装置の動作環境の一例を示す図であり、動作環境図２０１は、時刻Ｔにおける半導体集積回路の動作環境を示し、実行環境−ダメージ率情報２０２は、各ＣＰＵについて、時刻Ｔにおいて動作する実行環境と、時刻Ｔにおけるダメージ率とを示す。
【００３８】
動作環境図２０１を参照すると、時刻Ｔにおいて、ＣＰＵ１０Ｐ１上にはＯＳ２０Ｐ１と複数のアプリケーション３０Ｐ１・３０Ｐ２からなる実行環境４０Ｐ１が、ＣＰＵ１０Ｐ２上にはＯＳ２０Ｐ２とアプリケーション３０Ｐ３からなる実行環境４０Ｐ２が、ＣＰＵ１０Ｐｎ上にはＯＳ２０Ｐｎとアプリケーション３０Ｐｍからなる実行環境４０Ｐｎが動作していることが示されている。
【００３９】
また、実行環境−ダメージ率情報２０２を参照すると、当該動作時（時刻Ｔ）において、実行環境４０Ｐ１が動作しているＣＰＵ１０Ｐ１のダメージ率が６０％、実行環境４０Ｐ２が動作しているＣＰＵ１０Ｐ２のダメージ率が３０％、実行環境４０Ｐ３が動作しているＣＰＵ１０Ｐ３のダメージ率が５％、実行環境４０Ｐｎが動作しているＣＰＵ１０Ｐｎのダメージ率が２５％となっていることがわかる。
【００４０】
ここで、このダメージ率が当面同じであると仮定する。このとき、本実施の形態におけるダメージ制御装置は、そのダメージ率に基づいて、実行環境４０Ｐ１−Ｐｎの構成を変化させる。
【００４１】
図３は本実施の形態における半導体集積回路のダメージ制御装置の動作環境の一例を示す図であり、動作環境図３０１は、時刻Ｔ＋δＴにおける半導体集積回路の動作環境を示し、実行環境−ダメージ率情報３０２は、各ＣＰＵについて、時刻Ｔ及び時刻Ｔ＋δＴにおいて動作する実行環境と、時刻Ｔ及び時刻Ｔ＋δＴにおけるダメージ率と、時刻Ｔ及び時刻Ｔ＋δＴにおけるダメージ率の累積とを示している。
【００４２】
動作環境図３０１を参照すると、ダメージ制御装置によって、動作環境図２０１の時刻Ｔにおける実行環境群が、時刻Ｔ＋δＴにおいて、実行環境４０Ｐ１はＣＰＵ１０Ｐ３へ、実行環境４０Ｐ２はＣＰＵ１０Ｐｎへ、実行環境４０Ｐ３はＣＰＵ１０Ｐ１へ、実行環境４０ＰｎはＣＰＵ１０Ｐ２へと、移動していることがわかる。
【００４３】
実行環境−ダメージ率情報３０２を参照すると、各ＣＰＵにおけるダメージ率の累積は、ＣＰＵ１０Ｐ１において６５％、ＣＰＵ１０Ｐ２において５５％、ＣＰＵ１０Ｐ３において６５％、ＣＰＵ１０Ｐｎにおいて５５％となっていることがわかる。
【００４４】
これにより、各ＣＰＵにおけるダメージ率の累積の平準化が可能となっている。
【００４５】
なお、ここでの例では、ある時点でのダメージ率に基づいて判断を行ったものの、当然ながら、累積ダメージ率に基づいて判断してもよい。すなわち、現累積ダメージ率と、ある時刻でのダメージ率とを組み合わせて判断してもよい。他にも、動的変化する数値の平準化に役立つような計算手法であれば、何でも応用可能である。
【００４６】
図４は、本実施の形態における半導体集積回路のダメージ制御手段の構成例を示すブロック図である。
【００４７】
図４を参照すると、このダメージ制御手段１００は、全ＣＰＵあるいは部分的なＣＰＵのダメージ率に基づいて、ダメージ率の平準化を行うＣＰＵ構成を判断する機能を有する切替判断手段１１０と、全ＣＰＵの入出力信号の切替を行う機能を有する切替手段１２０とを備える。
【００４８】
切替判断手段１１０は、常時又はある程度の時間間隔で、温度や、電圧、消費電流量、動作率、ＣＰＵ内部資源のアクセス回数といった尺度から計算された指標であるダメージ率を観測する。そして、切替判断手段１１０は、各ＣＰＵのダメージ率を平準化するための計算手法を用いて、変更すべきＣＰＵの構成を切替手段１２０へ通知する。ただし、切替手段１２０が任意の時点で実行環境４０を切替えることができるとは限らないため、切替判断手段１１０は、実行環境４０と協調することによって、例えば、内部キャッシュがフラッシュされた状態や、外部Ｉ／Ｏとの割込み処理が完了した状態といった、実行環境４０が切替可能な安定状態になってから、切替手段１２０へ当該通知をしてもよい。
【００４９】
切替手段１２０は、全ＣＰＵの入出力信号及びシステムバス６０に接続し、切替判断手段１２０からの通知に基づいて、切替えるべきＣＰＵの入出力信号の切替を行う。切替手段１２０は、命令・データバスだけでなく、クロック・リセット信号、割込み信号等の一般的な信号を含む入出力信号を切替の対象としてもよい。
【００５０】
また、切替手段１２０は、各ＣＰＵの現在実行中の実行環境のコンテキストの設定及び抽出に関する機能を有する。
【００５１】
これらの機能により、切替手段１２０は、あるＣＰＵ上で動作中の実行環境を別のＣＰＵへ切替ることが可能となる。
【００５２】
ここで、コンテキストとは、動作中のＣＰＵのある指定された瞬間の記憶状態を示す情報である。
【００５３】
図５は、本実施の形態における半導体集積回路の切替手段の構成例を示す図である。
【００５４】
図５を参照すると、切替手段１２０は、ＣＰＵの実行環境のコンテキストを設定・抽出する機能を有するコンテキスト設定抽出手段１２１と、コンテキスト設定抽出手段１２１と連携して、ＣＰＵへの入出力信号の接続を切替える機能を有する信号接続手段１２２とを備える。
【００５５】
コンテキスト設定抽出手段１２１は、切替判断手段１１０と接続され、切替判断手段１１０からの切替要求を受理すると、ＣＰＵ１０Ｐ１−Ｐｎと接続されたシステムバス６０を介して、コンテキストの設定・抽出を行い、抽出したコンテキストを保持する。さらに、コンテキスト設定抽出手段１２１は、切替の開始および停止の指示を信号接続手段１２２に通知する。
【００５６】
信号接続手段１２２は、ＣＰＵ１０Ｐ１−Ｐｎおよびシステムバス６０に接続され、コンテキスト設定抽出手段１２１からの指示によって、信号接続の切替を行う。
【００５７】
本実施の形態において、このコンテキスト設定抽出手段１２１は、ハードウェア的な構成でもソフトウェア的な構成でもどちらでも実現可能である。コンテキスト設定抽出手段１２１は、ハードウェア構成の場合における、スキャンチェインを利用してＣＰＵ内の全データを取得するといった従来技術や、あるいは、ソフトウェア的な構成の場合における、ＣＰＵに備えられたハイパーバイザモード上での動作によってデータを設定・退避するといった従来技術等、コンテキストを設定・抽出する従来の技術によって実現されるのであれば、どのような構成でも構わない。
【００５８】
また、信号接続手段１２２は、ハードウェア的な全信号の切替だけでなく、割込み通知先の変更や、プロセッサ番号の変更といった、ソフトウェア的に実行環境を動作させるために必要な情報群を再設定することで実現されてもよい。
【００５９】
なお、本発明による半導体集積回路のダメージ制御装置は、その動作を、ダメージ制御装置内部にそのような機能を実現するプログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品からなる回路部品を実装してハードウェア的に実現することは勿論として、上記した各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のＣＰＵ１０で実行することにより、ソフトウェア的に実現することができる。
【００６０】
すなわち、ＣＰＵ１０（ＣＰＵ１０、ＣＰＵ１０Ｐ１〜１０Ｐｎ）は、ＲＯＭ５１に格納されているプログラムを、メインメモリにロードして実行し、ダメージ制御装置の動作を制御することにより、上述した各機能をソフトウェア的に実現することができる。
【００６１】
（第１の実施の形態の動作）
次いで、本実施の形態における半導体集積回路のダメージ制御装置の動作を説明する。
【００６２】
図６は、本実施の形態における半導体集積回路のダメージ制御装置の動作を示すフローチャートである。
【００６３】
図６を参照すると、本実施の形態におけるダメージ制御装置は、切替判断手段１１０が、常時又はある程度の時間間隔でダメージ率を観測し（ステップＳ１０１）、各ＣＰＵのダメージ率を平準化するための計算手法を用いて変更すべきＣＰＵの構成を判断し（ステップＳ１０２）、変更すべきＣＰＵの構成を切替手段１２０へ通知する（ステップＳ１０３）。
【００６４】
次いで、切替手段１２０が、切替判断手段１１０からの通知に基づいて、該当するＣＰＵの現在実行中の実行環境のコンテキストの抽出及び設定を行い（ステップＳ１０４）、切替えるべきＣＰＵの入出力信号の切替を行う（ステップＳ１０５）。
【００６５】
図７は、図５の切替手段１２０の動作の一例を説明するための図である。図７において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、コンテキストの設定・抽出による実行環境の移動方法について説明する。
【００６６】
はじめに、何の切替えも起きていないことを前提とする。
【００６７】
ステップＳ２０１：コンテキスト設定抽出手段１２１は、切替判断手段１１０からＣＰＵ１０Ｐ２とＣＰｕ１０Ｐｎの切替の指示を受理する。
【００６８】
ステップＳ２０２：コンテキスト設定抽出手段１２１は、リセットや割込み等の信号の配送の停止を信号接続手段１２２に対して要求する。この際、コンテキスト設定抽出手段１２１は、コンテキスト設定・抽出に関わる信号の入出力は信号接続手段１２２に対して許可してもよい。
【００６９】
ステップＳ２０３：コンテキスト設定抽出手段１２１は、ＣＰＵ１０Ｐ２からコンテキストを抽出して（読み出して）コンテキスト保存手段に１２３に一時的に保存する。
【００７０】
ステップＳ２０４：コンテキスト設定抽出手段１２１は、ＣＰＵ１０Ｐｎからコンテキストを読み出してコンテキスト保存手段１２３に一時的に保存し、そして、ステップＳ２０３で保存したＣＰＵ１０Ｐ２のコンテキストをＣＰＵ１０Ｐｎに対して設定する。
【００７１】
ステップＳ２０５：コンテキスト設定抽出手段１２１は、ステップＳ２０４で保存したＣＰＵ１０ＰｎのコンテキストをＣＰＵ１０Ｐ２に対して設定する。
【００７２】
ステップＳ２０６：コンテキスト設定抽出手段１２１は、コンテキストの設定が終了すると、信号接続手段１２２に対して信号の切替を指示する。
【００７３】
ステップＳ２０７：信号接続手段１２２は、コンテキスト設定抽出手段１２１から切替指示を受けると、システムバス６０からはあたかもＣＰＵ１０Ｐ２の信号がＣＰＵ１０Ｐｎとして接続されているかのように信号の接続を切替え、かつ、システムバス６０からはあたかもＣＰＵ１０Ｐｎの信号がＣＰＵ１０Ｐ２として接続されているかのように信号の接続を切替える。
【００７４】
図８は、図５の切替手段１２０の動作の一例を説明するための図である。図８において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、コンテキストの設定・抽出後の信号線の接続状況について説明する。
【００７５】
はじめに、何の切替えも起きていないことを前提とする。
【００７６】
ステップＳ３０１：コンテキスト設定抽出手段１２１は、信号接続手段１２２に対してＣＰＵ１０Ｐ２とＣＰＵ１０Ｐ４の接続切替の指示を行い、そして、信号接続手段１２２は、その指示によって、信号線の切替を行う。
【００７７】
ステップＳ３０２：信号接続手段１２２は、システムバス６０からＣＰＵ１０Ｐ２向けの入力信号を受理する。
【００７８】
ステップＳ３０３：信号接続手段１２２は、ＣＰＵ１０Ｐｎに対してその信号を転送する。
【００７９】
ステップＳ３０４：信号接続手段１２２は、システムバス６０からＣＰＵ１０Ｐｎ向けの入力信号を受理する。
【００８０】
ステップＳ３０５：信号接続手段１２２は、ＣＰＵ１０Ｐ２に対してその信号を転送する。
【００８１】
図９は、図４のダメージ制御手段１００の動作の一例を説明するための図である。図９において、矢印脇のＳと数字からなる符合は、ステップ番号を表している。この例では、図７及び図８で説明した動作の全体を示している。
【００８２】
はじめに、何の切替えも起きていないことを前提とする。
【００８３】
ステップＳ４０１：切替手段１２０は、システムバス６０からＣＰＵ１０Ｐ２への信号を受理する。
【００８４】
ステップＳ４０２：切替手段１２０は、その信号をＣＰＵ１０Ｐ２へ渡す。
【００８５】
ステップＳ４０３：切替判断手段１１０は、ダメージ率の計算に基づき、ＣＰＵ１０Ｐ２上の実行環境をＣＰＵ１０Ｐｎへ移動させることを切替手段１２０に対して通知し、切替手段１２０は、当該通知に基づいて、ＣＰＵ１０Ｐ２とＣＰＵ１０Ｐｎとのコンテキストを交換し、そして、システムバス６０からはあたかも接続が切替えられているように信号接続を切替える。
【００８６】
ステップＳ４０４：切替手段１２０は、システムバス６０からＣＰＵ１０Ｐ２への信号を受理する。
【００８７】
ステップＳ４０５：切替手段１２０は、その信号をＣＰＵ１０Ｐｎへ渡す。
【００８８】
（第１の実施の形態の効果）
本発明によれば、アプリケーションレベルのみで負荷分散を行うのではなく、複数のＣＰＵを有する半導体集積回路に対して、ＯＳも含めた実行環境そのものの移動が可能となるので、各ＣＰＵにかかる累積ダメージをより平準化することができる。
【００８９】
その理由は、本実施の形態によるダメージ制御手段が、常時又はある程度の時間間隔で、温度や、電圧、消費電流量、動作率、ＣＰＵ内部資源のアクセス回数といった尺度から計算された指標であるダメージ率を観測し、各ＣＰＵのダメージ率を平準化するための計算手法を用いて、変更すべきＣＰＵの構成を切替手段１２０へ通知する切替判断手段１１０と、切替判断手段１１０からの切替要求に基づいて、ＣＰＵの実行環境のコンテキストを設定・抽出し、ＣＰＵへの入出力信号の接続を切替える信号接続手段１２２とを備えるからである。
【００９０】
また、本発明によれば、ハードウェアで実装する形態においては、既存ソフトウェアの改造を最小限に抑えて、ダメージの平準化を実現することができる。
【００９１】
（第２の実施の形態）
次いで、本発明の第２の実施の形態による半導体集積回路のダメージ制御装置を図面を参照して説明する。本実施の形態は、ダメージ制御手段１２０において第１の実施の形態と相違するため、相違する点を中心に以下説明する。
【００９２】
（第２の実施の形態の構成）
図１０は、本実施の形態における半導体集積回路のダメージ制御手段の構成例を示す図である。
【００９３】
本実施の形態におけるダメージ制御手段１００は、第１の実施の形態におけるダメージ制御手段１００と同様に、全ＣＰＵあるいは部分的なＣＰＵのダメージ率に基づいて、ダメージ率の平準化を行うＣＰＵ構成を考える機能を有する切替判断手段１１０と、全ＣＰＵの入出力信号の切替を行う機能を有する切替手段１２０とを備える。
【００９４】
このため、本実施の形態における切替判断手段１１０は、図４や図９で述べた第１の実施の形態における切替判断手段１１０と同じ特徴を持つ。
【００９５】
ただし、本実施の形態における切替判断手段１１０は、ＣＰＵ１０Ｐ１−Ｐｎ上のソフトウェアとして実現されている点で、第１の実施の形態における切替判断手段１１０と異なる。ここで、本実施の形態における切替判断手段１１０は、いわゆるアプリケーションやライブラリ、タスク、スレッド、プロセスとして実装されていてもよいし、ＯＳモジュールやデバイスドライバとして実装されていてもよいし、ユーザスーパバイザモードより優先度の高いハイパーバイザモードのような、ＣＰＵの新しいモード内部に実装されていてもよい。
【００９６】
本実施の形態における切替手段１２０は、図４や図９で述べた第１の実施の形態における切替手段１２０と同じ特徴を持つが、前記ソフトウェアとして実現された本実施の形態における切替判断手段１１０と連携する点で第１の実施の形態における切替手段１２０と相違する。
【００９７】
（第２の実施の形態の効果）
本発明によれば、第１の実施の形態の効果に加え、ＣＰＵ１０Ｐ１−Ｐｎ上のソフトウェアとして実現されている切替判断手段１１０も含めた実行環境の移動が可能となるので、第１の実施の形態と比べ、各ＣＰＵにかかる累積ダメージをより平準化することができる。
【００９８】
（第３の実施の形態）
次いで、本発明の第３の実施の形態による半導体集積回路のダメージ制御装置を図面を参照して説明する。本実施の形態は、切替手段１２０において第１の実施の形態と相違するため、相違する点を中心に以下説明する。
【００９９】
（第３の実施の形態の構成）
図１１は、本実施の形態における半導体集積回路のダメージ制御手段の構成例を示す図である。
【０１００】
本実施の形態におけるダメージ制御手段１００は、第１及び第２の実施の形態における切替判断手段１１０と同様に、全ＣＰＵあるいは部分的なＣＰＵのダメージ率に基づいて、ダメージ率の平準化を行うＣＰＵ構成を考える機能を有する切替判断手段１１０と、全ＣＰＵの入出力信号の切替を行う機能を有する切替手段１２０とを備える。
【０１０１】
また、本実施の形態における切替判断手段１１０は、図１０で述べた第２の実施の形態における切替判断手段１１０と同様に、ソフトウェアとして実現されている。
【０１０２】
このため、本実施の形態における切替判断手段１１０は、図１０で述べた第２の実施の形態における切替判断手段１１０と同じ特徴を持つ。
【０１０３】
本実施の形態における切替手段１２０は、ＣＰＵ１０Ｐ１−Ｐｎ上のソフトウェアとして実現されている点で、第１の実施の形態における切替手段１２０と異なる。ここで、本実施の形態における切替手段１２０は、いわゆるアプリケーションやライブラリ、タスク、スレッド、プロセスとして実装されていてもよいし、ＯＳモジュールやデバイスドライバとして実装されていてもよいし、ハイパーバイザモードのような、ＣＰＵの新しいモード内部に実装されていてもよい。
【０１０４】
本実施の形態における切替手段１２０は、ソフトウェアとして実現されているため、全ての入出力信号を切替えることができない。よって、本実施の形態における切替手段１２０は、割込み通知先の変更や、プロセッサ番号の変更といった、実行環境をソフトウェア的に動作させるために必要な情報群を再設定することで対処する。
【０１０５】
（第３の実施の形態の効果）
本発明によれば、第１の実施の形態の効果に加え、ＣＰＵ１０Ｐ１−Ｐｎ上のソフトウェアとして実現されている切替手段１２０も含めた実行環境の移動が可能となるので、第１の実施の形態と比べ、各ＣＰＵにかかる累積ダメージをより平準化することができる。
【０１０６】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、本発明の範囲内で当業者であればなしうるであろう各種変形、修正を含むことはもちろんであり、その技術的思想の範囲内において様々に変形して実施することができる。
【０１０７】
なお、上記各実施の形態では、複数のＣＰＵを有する半導体集積回路のダメージを制御するダメージ制御装置及び方法を例に説明したが、本発明は、かかるダメージ制御装置及び方法に限定されるものではなく、任意のダメージ制御装置及び方法に適用可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の第１の実施の形態による半導体集積回路のダメージ制御装置の構成を示すブロック図である。
【図２】第１の実施の形態による半導体集積回路のダメージ制御装置の動作環境例を示す図である。
【図３】第１の実施の形態による半導体集積回路のダメージ制御装置の動作環境例を示す図である。
【図４】第１の実施の形態による半導体集積回路のダメージ制御手段の構成例を示すブロック図である。
【図５】第１の実施の形態による半導体集積回路の切替手段の構成例を示す図である。
【図６】第１の実施の形態による半導体集積回路のダメージ制御装置の動作を示すフローチャートである。
【図７】第１の実施の形態による切替手段の動作を説明する図である。
【図８】第１の実施の形態による切替手段の動作を説明する図である。
【図９】第１の実施の形態によるダメージ制御手段の動作を説明する図である。
【図１０】本発明の第２の実施の形態による半導体集積回路のダメージ制御装置の構成を示すブロック図である。
【図１１】本発明の第３の実施の形態による半導体集積回路のダメージ制御装置の構成を示すブロック図である。
【図１２】従来のダメージ制御装置の構成例を示す図である。
【図１３】従来のダメージ制御装置の構成例を示す図である。
【符号の説明】
【０１０９】
１０、１０Ｐ１、１０Ｐ２、１０Ｐ３〜１０Ｐｎ：ＣＰＵ
２０、２０Ｐ１、２０Ｐ２、２０Ｐ３〜２０Ｐｎ：ＯＳ
３０、３０Ｐ１、３０Ｐ２、３０Ｐ３〜３０Ｐｍ：アプリケーション（ＡＰ）
４０、４０Ｐ１、４０Ｐ２、４０Ｐ３、４０Ｐｎ：実行環境
５０：アクセラレータ
５１：ＲＯＭ
５２：ＲＡＭ
５３：Ｉ／Ｏ
５４：割込み・クロック・電源制御
５５：タイマ
６０：システムバス
１００：ダメージ制御手段
１１０：切替判断手段
１２０：切替手段
１２１：コンテキスト設定抽出手段
１２２：信号接続手段
１０００：電源制御機構
【図１】
2010066785.tif 000003
【図２】
2010066785.tif 000004
【図３】
2010066785.tif 000005
【図４】
2010066785.tif 000006
【図５】
2010066785.tif 000007
【図６】
2010066785.tif 000008
【図７】
2010066785.tif 000009
【図８】
2010066785.tif 000010
【図９】
2010066785.tif 000011
【図１０】
2010066785.tif 000012
【図１１】
2010066785.tif 000013
【図１２】
2010066785.tif 000014
【図１３】
2010066785.tif 000015