[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4465598B2 - 集積回路およびその処理制御方法、並びに、プログラム - Google Patents

集積回路およびその処理制御方法、並びに、プログラム Download PDF

Info

Publication number
JP4465598B2
JP4465598B2 JP2004198300A JP2004198300A JP4465598B2 JP 4465598 B2 JP4465598 B2 JP 4465598B2 JP 2004198300 A JP2004198300 A JP 2004198300A JP 2004198300 A JP2004198300 A JP 2004198300A JP 4465598 B2 JP4465598 B2 JP 4465598B2
Authority
JP
Japan
Prior art keywords
sub
processor
temperature
information processing
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004198300A
Other languages
English (en)
Other versions
JP2006018758A5 (ja
JP2006018758A (ja
Inventor
典仁 市川
浩二 高嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004198300A priority Critical patent/JP4465598B2/ja
Priority to US11/154,873 priority patent/US7536229B2/en
Priority to EP05253839A priority patent/EP1615134A3/en
Priority to TW094122575A priority patent/TWI289764B/zh
Priority to CNB2005101249366A priority patent/CN100383707C/zh
Priority to KR1020050060010A priority patent/KR20060049835A/ko
Publication of JP2006018758A publication Critical patent/JP2006018758A/ja
Publication of JP2006018758A5 publication Critical patent/JP2006018758A5/ja
Priority to US12/292,408 priority patent/US8086880B2/en
Application granted granted Critical
Publication of JP4465598B2 publication Critical patent/JP4465598B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Description

本発明は、集積回路およびその処理制御方法、並びに、プログラムに関し、特に、複数のプロセッサによる分散処理が実行される場合に用いて好適な、集積回路およびその処理制御方法、並びに、プログラムに関する。
近年、複数のプロセッサまたはコンピュータを用いて、処理を分散して実行させる、分散処理が注目されている。分散処理を行う方法としては、通信網を介して接続されている複数のコンピュータに処理を実行させる方法、1つのコンピュータに設けられた、複数のプロセッサに処理を実行させる方法、および上述した2つの方法を組み合わせて処理を実行させる方法がある。
分散処理の実行を要求(指示)する装置、または、プロセッサは、分散処理を実行するために必要なデータおよびプログラムを、分散処理を実行させる他の装置、または、他のプロセッサあてに送信する。分散処理を実行するために必要なデータおよびプログラムを受信した装置、または、プロセッサは、要求された処理を実行し、要求された処理を施したデータを、分散処理の要求元である装置、または、プロセッサあてに送信する。
分散処理の要求元である装置、または、プロセッサは、分散処理を実行させる他の装置、または、他のプロセッサから送信されてきたデータを受信し、受信したデータを基に、所定の処理を行うか、受信したデータを記録する。
従来、上述したように、均一なモジュラー構造、共通のコンピューティング・モジュール、および均一なソフトウェアセルを用いて分散処理を実行させることによって、高速処理用コンピュータ・アーキテクチャを実現する技術がある(例えば、特許文献1乃至特許文献5)
また、近年、情報処理装置のクロック速度の向上と集積度の向上により、非常に高速なプロセッサを同じチップ上に複数集積することが可能になったため、複数のプロセッサによる分散処理は、大型の装置を用いることなく、実現可能なようになっている。
特開2002−342165号公報 特開2002−351850号公報 特開2002−358289号公報 特開2002−366533号公報 特開2002−366534号公報
上述した特許文献において、基本となる処理用モジュールはプロセッサ・エレメント(PE)である。PEは、処理ユニット(PU)、ダイレクト・メモリ・アクセス・コントローラ(DMAC)および複数の付加処理ユニット(APU)、すなわち、メインプロセッサに対する複数のサブプロセッサを具備するようになされている。
また、従来のプロセッサシステムにおける電力制御方式には、ネットワークおよびシステムコントローラを常時稼働させ、各プロセッサの動作を停止・再開させて電力制御を行うことができるもの(例えば、特許文献6)、負荷に応じて、動作周波数と電源電圧を制御するもの(例えば、特許文献7)、フォルト・トレラントシステムを利用して、故障したCPUの電力を遮断することによりシステム電力制御を行うもの(例えば、特許文献8)、マルチプロセッサシステムにおいて負荷のない状態を自動的に検知し、クロック周波数を制御することで電力制御を行うもの(例えば、特許文献9)、環境や状況の変化に適応させて、適切に機器の連携動作を制御することで電力制御を行うもの(例えば、特許文献10)などがある。
特開平9−34601号公報 特開2002−304232号公報 特表2001−526809号公報 特開2000−112559号公報 特開2001−145174号公報
近年、情報処理装置のクロック速度の向上と集積度の向上により、非常に高速なプロセッサを同じチップ上に複数集積することができるようになった。このため、1つのチップに集積された複数のプロセッサを用いて、それぞれのプロセッサに独立したプログラムを実行させ、論理的に1つの機能(論理スレッド)として結果を求める処理を実行させた場合、このチップ内で機能しているプロセッサに対応する位置において発生する熱量は、従来と比較して格段に高くなってきている(プロセッサの熱密度が高くなっている)。
したがって、従来においては考慮する必要がなかったチップ上のそれぞれのプロセッサの配置に対応する部分の温度上昇を考慮しなければ、熱暴走や故障などが発生する懸念がある。しかしながら、従来の分散処理システムにおいては、チップ上のそれぞれのプロセッサの配置に対応する部分が、正常動作できる温度範囲内で動作していることを保証し、素子の劣化を防ぎながら、信頼性の高い情報処理を、それぞれのプロセッサに行わせることができなかった。
また、従来の分散処理システムにおいては、チップの温度上昇が考慮されていなかったため、いずれかのプロセッサに対応する部分の温度上昇の状態に対応させて、複数のプロセッサ間における処理(スレッド)を移動させたり、交換させる技術はなかった。換言すれば、分散処理システムにおける論理スレッドの配分や、処理(スレッド)の移動先または交換先となるプロセッサの選択において、プロセッサの動作状況、チップ上の温度、チップ上のサブプロセッサの配置は考慮されていなかった。
また、情報処理装置のクロック速度の向上と集積度の向上により、処理に必要な消費電力も、従来と比較して格段に高くなってきているが、従来のプロセッサシステムにおける電力制御方式は、その装置が行うべき処理に必用な電力以外を如何に小さくするか、という目的で行われていた。そのため、従来、分散処理システムを実行することが可能な情報処理装置においては、クロック速度の向上と集積度の向上にともなって、プロセッサ(またはプロセッサ群)に供給される電力が不足してしまう場合や、プロセッサ(またはプロセッサ群)の消費電力を一定値以下に抑えつつ、動作を継続させたい場合に対して、考慮されることはなかった。
本発明はこのような状況に鑑みてなされたものであり、分散処理実行中のいずれかのプロセッサの温度上昇、または、電力供給量が異常な状態に陥っても、論理スレッドとして動作している機能を正常な状態に保ち、素子の劣化を防ぎながら、信頼性の高い情報処理を実行させるようにすることができるようにするものである。
本発明の集積回路は、
メインプロセッサと、
複数のサブプロセッサと、
前記メインプロセッサおよび前記サブプロセッサの近傍の温度をそれぞれ検出する複数の温度検出手段と
を備え、
前記メインプロセッサは、
アプリケーションプログラムの実行を制御するアプリケーションプログラム実行制御手段と、
前記アプリケーションプログラム実行制御手段の処理により実行が制御される前記アプリケーションプログラムによって、複数の前記サブプロセッサに割り当てられる複数の処理をまとめて一つの機能を提供する処理単位とし、前記処理単位に対応する前記機能を提供するための分散処理を制御する分散処理制御手段と、
前記メインプロセッサおよび前記サブプロセッサの上限温度、並びに、前記サブプロセッサの動作状態および配置情報を管理テーブルとして記録する記録手段と、
複数の前記温度検出手段により検出された温度が、対応する前記上限温度を超えたか否かにより、前記メインプロセッサおよび複数の前記サブプロセッサの温度の異常を検出する異常検出手段と、
前記異常検出手段により前記温度の異常が検出された場合、前記分散処理制御手段による前記分散処理を制御する異常時制御手段と
を備え、
前記異常時制御手段は、前記異常検出手段により前記サブプロセッサの温度の異常が検出された場合、温度の異常が検出されていない他の前記サブプロセッサのうち、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサを優先的に選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理を、選択された他の前記サブプロセッサが実行するように、前記分散処理制御手段に処理の割り当てを変更させる
ことを特徴とする。
前記異常時制御手段には、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサが複数ある場合、前記温度検出手段により検出された前記近傍の温度が低い前記サブプロセッサを優先的に処理の割り当て先として選択させるようにすることができる。
前記異常時制御手段には、前記動作状態が停止状態である前記サブプロセッサが存在しない場合、前記温度検出手段により検出された温度が最も低い前記サブプロセッサを選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理と、選択された他の前記サブプロセッサにより実行されている処理とを交換するように、前記分散処理制御手段に処理の割り当てを変更させるようにすることができる。
前記異常時制御手段には、前記メインプロセッサの温度の異常が検出されたとき、前記メインプロセッサの温度の異常が検出されなくなるまで、前記メインプロセッサの一部の処理を中断させるように、前記分散処理制御手段に制御させるようにすることができる。
前記メインプロセッサおよび前記サブプロセッサの消費電力を測定する電力測定手段を更に備え、前記記録手段には、どの電源に接続されているかを示す電源接続情報と、接続される可能性のある電源ごとの消費電力上限も前記管理テーブルに記録させ、前記異常検出手段には、前記電力測定手段により測定された前記消費電力の異常を更に検出させ、前記異常時制御手段には、前記異常検出手段により前記温度の異常、または、前記消費電力の異常が検出された場合、前記分散処理制御手段による前記分散処理を制御させるようにすることができる。
本発明の集積回路の処理制御方法は、
メインプロセッサおよび複数のサブプロセッサと、それらの近傍の温度をそれぞれ検出する複数の温度検出手段とを備える集積回路の、
前記メインプロセッサが、
複数の前記サブプロセッサに割り当てられる複数の処理をまとめて一つの機能を提供する処理単位とし、前記処理単位に対応する前記機能を提供するための分散処理を制御し、
前記メインプロセッサおよび前記サブプロセッサの上限温度、並びに、前記サブプロセッサの動作状態および配置情報を記録した管理テーブルに基づいて、複数の前記温度検出手段により検出された温度が、対応する前記上限温度を超えたか否かにより、前記メインプロセッサおよび複数の前記サブプロセッサの温度の異常を検出し、
前記サブプロセッサの温度の異常が検出された場合、温度の異常が検出されていない他の前記サブプロセッサのうち、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサを優先的に選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理を、選択された他の前記サブプロセッサが実行するように、処理の割り当てを変更する
ステップを含むことを特徴とする。
本発明のプログラムは、コンピュータに、
複数のサブプロセッサに割り当てられる複数の処理をまとめて一つの機能を提供する処理単位とし、前記処理単位に対応する前記機能を提供するための分散処理を制御し、
メインプロセッサおよび複数の前記サブプロセッサの上限温度、並びに、前記サブプロセッサの動作状態および配置情報を記録した管理テーブルに基づいて、前記メインプロセッサおよび複数の前記サブプロセッサそれぞれの近傍の温度を検出する複数の温度検出手段により検出された温度が、対応する前記上限温度を超えたか否かにより、前記メインプロセッサおよび複数の前記サブプロセッサの温度の異常を検出し、
前記サブプロセッサの温度の異常が検出された場合、温度の異常が検出されていない他の前記サブプロセッサのうち、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサを優先的に選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理を、選択された他の前記サブプロセッサが実行するように、処理の割り当てを変更する
機能を実現させるためのものである。
本発明においては、複数のサブプロセッサに割り当てられる複数の処理をまとめて一つの機能を提供する処理単位とし、処理単位に対応する機能を提供するための分散処理が制御され、メインプロセッサおよび複数のサブプロセッサの上限温度、並びに、前記サブプロセッサの動作状態および配置情報を記録した管理テーブルに基づいて、メインプロセッサおよび複数のサブプロセッサそれぞれの近傍の温度を検出する複数の温度検出手段により検出された温度が対応する上限温度を超えたか否かにより、メインプロセッサおよび複数のサブプロセッサの温度の異常が検出される。サブプロセッサの温度の異常が検出された場合、温度の異常が検出されていない他の前記サブプロセッサのうち、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサを優先的に選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理を、選択された他の前記サブプロセッサが実行するように、処理の割り当てが変更される。
本発明によると、集積回路内の複数のサブプロセッサに、素子の破壊や処理速度の低下を防ぐように分散処理を実行させることができる。特に、サブプロセッサ温度に異常が発生した場合、処理の割り当てが変更されるように、分散処理が制御されるので、論理スレッドとして動作している機能を正常な状態に保ち、素子の劣化を防ぎながら、信頼性の高い情報処理を実行させるようにすることができる。
また、他の本発明によると、集積回路内の複数のサブプロセッサに、素子の破壊や処理速度の低下を防ぐように分散処理を実行させることができる。特に、プロセッサが消費する電力に関する情報が取得されて、消費電力量に異常が発生した場合、処理の割り当てが変更されるように、分散処理が制御されるので、論理スレッドとして動作している機能を正常な状態に保ち、素子の劣化を防ぎながら、信頼性の高い情報処理を実行させるようにすることができる。
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
請求項1に記載の情報処理装置は、メインプロセッサ(例えば、メインプロセッサ42)と、複数のサブプロセッサ(例えば、サブンプロセッサ43)と、メインプロセッサおよびサブプロセッサの近傍の温度をそれぞれ検出する複数の温度検出手段(例えば、温度検出部121)とを備え、メインプロセッサは、アプリケーションプログラムの実行を制御するアプリケーションプログラム実行制御手段(例えば、演算処理部161)と、アプリケーションプログラム実行制御手段の処理により実行が制御されるアプリケーションプログラムによって、複数のサブプロセッサに割り当てられる複数の処理をまとめて一つの機能を提供する処理単位とし、処理単位に対応する機能を提供するための分散処理を制御する分散処理制御手段(例えば、論理スレッド管理処理部163)と、前記メインプロセッサおよび前記サブプロセッサの上限温度、並びに、前記サブプロセッサの動作状態および配置情報を管理テーブルとして記録する記録手段(例えば、温度管理テーブル167)と、複数の温度検出手段により検出された温度が、対応する上限温度を超えたか否かにより、メインプロセッサおよび複数のサブプロセッサの温度の異常を検出する異常検出手段(例えば、温度上昇検出部168)と、異常検出手段によりサブプロセッサの温度の異常が検出された場合、分散処理制御手段による分散処理を制御する異常時制御手段(例えば、温度異常対応処理制御部169)とを備え、異常時制御手段は、異常検出手段によりサブプロセッサの温度の異常が検出された場合、温度の異常が検出されていない他の前記サブプロセッサのうち、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサを優先的に選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理を、選択された他の前記サブプロセッサが実行するように、前記分散処理制御手段に処理の割り当てを変更させることを特徴とする。
以下、図を参照して、本発明の実施の形態について説明する。
図1は、分散処理を実行することが可能な、通信システムの一実施の形態を示す図である。この通信システムにおいては、例えば、ホームネットワーク、LAN(Local Area Network),WAN(Wide Area Network),または、インターネットなどの広域ネットワークなどに対応するネットワーク2を介して、情報処理装置1−1乃至情報処理装置1−nとが相互に接続されている。
情報処理装置1−1は、複数の情報処理装置による分散処理の実行を指示されると、要求された処理を実行するために必要なデータおよびプログラムを含むソフトウェアセルを生成し、生成したソフトウェアセルを、ネットワーク2を介して、情報処理装置1−2乃至情報処理装置1−nのうちのいずれかの装置あてに送信する。
情報処理装置1−2乃至情報処理装置1−nは、それぞれ、情報処理装置1−1から送信されてきたソフトウェアセルを受信し、受信したソフトウェアセルを基に、要求された処理を実行する。情報処理装置1−2乃至情報処理装置1−nは、それぞれ、要求された処理を実行してから、要求された処理の結果得られたデータを、ネットワーク2を介して情報処理装置1−1あてに送信する。以下、情報処理装置1−1乃至情報処理装置1−nを個々に区別する必要のないとき、単に情報処理装置1と称する。
情報処理装置1−1は、情報処理装置1−2乃至情報処理装置1−nのうちのいずれかから送信されてきたデータを受信し、受信したデータを基に、所定の処理を実行するか、受信したデータを記録する。
情報処理装置1−1は、少なくとも1つの情報処理コントローラ11、メインメモリ12、記録部13−1、記録部13−2、バス14、操作入力部15、通信部16、表示部17、およびドライブ18を含むように構成される。
情報処理コントローラ11は、メインメモリ12に記録されている各種のプログラムを実行し、情報処理装置1−1全体を制御する。情報処理コントローラ11は、ソフトウェアセルを生成し、生成したソフトウェアセルを、バス14を介して、通信部16に供給する。情報処理コントローラ11は、通信部16から供給されたデータを記録部13−1または記録部13−2に供給する。情報処理コントローラ11は、操作入力部15から入力されるユーザの指令に基づいて、指定されたデータを、メインメモリ12、記録部13−1または記録部13−2から取得し、取得したデータを、バス14を介して通信部16に供給する。
また、情報処理コントローラ11には、情報処理装置1−1を、ネットワーク2全体を通して一意的に特定できる情報処理装置IDが割り当てられている。
情報処理コントローラ11は、バス41、メインプロセッサ42、サブプロセッサ43−1乃至サブプロセッサ43−m、DMAC(Direct Memory Access Controller)44、キー管理テーブル記録部45、およびDC(Disk Controller)46を備えている。
メインプロセッサ42、サブプロセッサ43−1乃至サブプロセッサ43−m、DMAC44、キー管理テーブル記録部45、およびDC46は、バス41を介して、相互に接続されている。また、メインプロセッサ42には、メインプロセッサ42を特定するためのメインプロセッサIDが識別子として割り当てられる。同様に、サブプロセッサ43−1乃至サブプロセッサ43−mのそれぞれには、サブプロセッサ43−1乃至サブプロセッサ43−mのそれぞれを特定するためのサブプロセッサIDのそれぞれが識別子として割り当てられる。
メインプロセッサ42は、ネットワーク2を介して接続されている、情報処理装置1−2乃至情報処理装置1−nに分散処理を実行させる場合、ソフトウェアセルを生成し、生成したソフトウェアセルをバス41およびバス14を介して、通信部16に供給する。また、メインプロセッサ42は、管理のためのプログラム以外のプログラムを実行するように構成することもできる。この場合、メインプロセッサ42は、サブプロセッサとして機能する。
メインプロセッサ42は、サブプロセッサ43−1乃至サブプロセッサ43−mに対して、それぞれのサブプロセッサに独立したプログラムを実行させ、論理的に1つの機能(論理スレッド)として結果を求めるようにすることができる。すなわち、メインプロセッサ42は、サブプロセッサ43−1乃至サブプロセッサ43−mによるプログラムの実行のスケジュール管理および情報処理コントローラ11(情報処理装置1−1)の全体の管理を行う。
メインプロセッサ42は、ローカルストレージ51−1を備え、メインメモリ12からロードしたデータおよびプログラムを、ローカルストレージ51−1に一時的に記憶させる。メインプロセッサ42は、ローカルストレージ51−1からデータおよびプログラムを読み込み、読み込んだデータおよびプログラムを基に、各種の処理を実行する。
サブプロセッサ43−1乃至サブプロセッサ43−mは、メインプロセッサ42の制御に基づいて、並列的かつ独立に、プログラムを実行し、データを処理する。更に、必要に応じて、メインプロセッサ42が実行するプログラムが、サブプロセッサ43−1乃至サブプロセッサ43−mのそれぞれが実行するプログラムのそれぞれと連携して動作するように構成することも可能である。
サブプロセッサ43−1乃至サブプロセッサ43−mのそれぞれは、ローカルストレージ51−2乃至ローカルストレージ51−(m+1)のそれぞれを備える。サブプロセッサ43−1乃至サブプロセッサ43−mのそれぞれは、ローカルストレージ51−2乃至ローカルストレージ51−(m+1)のそれぞれに、必要に応じて、データおよびプログラムを一時的に記憶させる。サブプロセッサ43−1乃至サブプロセッサ43−mのそれぞれは、ローカルストレージ51−2乃至ローカルストレージ51−(m+1)のそれぞれからデータおよびプログラムを読み込み、読み込んだデータおよびプログラムを基に、各種の処理を実行する。
以下、サブプロセッサ43−1乃至サブプロセッサ43−mのそれぞれを個々に区別する必要のないとき、単にサブプロセッサ43と称する。同様に、以下、ローカルストレージ51−1乃至ローカルストレージ51−(m+1)のそれぞれを個々に区別する必要のないとき、単にローカルストレージ51と称する。
DMAC44は、キー管理テーブル記録部45に記録されている、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを基に、メインプロセッサ42およびサブプロセッサ43からのメインメモリ12に記憶されているプログラムおよびデータへのアクセスを管理する。
キー管理テーブル記録部45は、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを記録している。なお、メインプロセッサキー、サブプロセッサキー、およびアクセスキーの詳細は後述する。
DC46は、メインプロセッサ42およびサブプロセッサ43からの記録部13−1および記録部13−2へのアクセスを管理する。
なお、ここでは、情報処理装置1-1に、情報処理コントローラ11が1つだけ備えられているものとして説明したが、情報処理コントローラ11は、情報処理装置1-1に複数個備えられているようにしてもよい。
メインメモリ12は、例えば、RAMから構成される。メインメモリ12は、メインプロセッサ42およびサブプロセッサ43が実行する各種のプログラムおよびデータを一時的に記憶している。
記録部13−1および記録部13−2は、それぞれ、例えば、ハードディスクなどにより構成される。記録部13−1および記録部13−2は、メインプロセッサ42およびサブプロセッサ43が実行する各種のプログラムおよびデータを記録している。また、記録部13−1および記録部13−2は、情報処理コントローラ11から供給されたデータを記録する。以下、記録部13−1および記録部13−2を個々に区別する必要のないとき、単に記録部13と称する。
また、情報処理コントローラ11には、バス14を介して、操作入力部15、通信部16、表示部17、およびドライブ18が接続されている。操作入力部15は、例えば、キー、ボタン、タッチパッド、マウスなどよりなり、ユーザによる操作入力を受け、操作入力に対応する情報を、バス14を介して、情報処理コントローラ11に供給する。
通信部16は、情報処理コントローラ11から供給されたソフトウェアセルを、ネットワーク2を介して情報処理装置1−2乃至情報処理装置1−nあてに送信する。また、通信部16は、情報処理装置1−2乃至情報処理装置1−nから送信されてきたデータを、バス14を介して、情報処理コントローラ11に供給する。
表示部17は、例えば、CRT(cathode ray tube)やLCD(Liquid Crystal Display)などで構成されており、バス14を介して供給された情報処理コントローラ11の処理により生成された情報(例えば、アプリケーションプログラムの実行により生成されたデータや、アプリケーションプログラムの実行に必要なユーザへの通知などの情報を含む)を表示させる。
ドライブ18は、磁気ディスク61、光ディスク62、光磁気ディスク63、あるいは半導体メモリ64などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて、バス14を介して、情報処理コントローラ11に転送され、情報処理コントローラ11によって、記録部13に記録される。
なお、情報処理装置1−2乃至情報処理装置1−nは、情報処理装置1−1と同様に構成されるので、その説明は省略する。情報処理装置1−2乃至情報処理装置1−nは上述した構成に限らず、必要に応じて、機能を追加したり削除したりすることは可能であり、その機能に対応した構成をもつことが可能である。
また、情報処理装置1には、情報処理装置1の全体に電源供給を行うために、電源部19が設けられている。図2に電源部19の構成を示す。
電源部19は、商用電源(AC入力)を取得して、AC(交流)を、DC(直流)に変換するAC/DCコンバータ71、AC入力により電源回路76に電源が供給されていることを検出するAC入力検出部72、所定の位置に装着され、電力を予め蓄えておく(充電する)ことにより、情報処理装置1に電力を供給するバッテリ73、バッテリ73により電源が供給されていることを検出するバッテリ検出部74、バッテリ73にAC/DCコンバータ71により直流に変換された電力を充電するための充電回路75、および、情報処理装置1の各部に電源を供給するための電源回路76により構成されている。電源供給部76への電力供給源としては、交流電源などのAC電源やバッテリ73以外に、例えば、電池などを用いるようにしてもよく、情報処理装置1の電源部19は、必要に応じて、これらのうちのいずれか1つ、または、これらの全ての入力に対応するようになされている。なお、情報処理装置1内の各ユニットは、それぞれ、動作電圧が異なっていてもよく、電源回路76が複数の出力電圧に対応することができるようにしても、出力電圧ごとに電源回路76を設けるようにしてもよい。
次に、図3乃至図5を参照して、サブプロセッサ43がメインメモリ12にアクセスする場合の処理について説明する。
図3で示されるように、メインメモリ12には、複数のアドレスを指定できるメモリロケーションが配置される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含む。また、各メモリロケーションには、後述するアクセスキーが割り振られる。
“0”であるF/Eビットは、サブプロセッサ43によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、そのメモリロケーションから読み出し不可であることを示す。また、“0”であるF/Eビットは、そのメモリロケーションにデータ書き込み可能であることを示し、データが書き込まれると、F/Eビットは“1”に設定される。
“1”であるF/Eビットは、そのメモリロケーションのデータがサブプロセッサ43によって読み出されておらず、未処理の最新データであることを示す。F/Eビットが“1”であるメモリロケーションのデータは読み出し可能であり、サブプロセッサ43によって読み出されてから、F/Eビットは“0”に設定される。また、“1”であるF/Eビットは、メモリロケーションがデータ書き込み不可であることを示す。
更に、F/Eビットが“0”(読み出し不可/書き込み可)である状態において、メモリロケーションについて読み出し予約を設定することが可能である。F/Eビットが“0”であるメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ43は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報としてサブプロセッサ43のサブプロセッサIDおよびLSアドレスを書き込む。そして、データを書き込むサブプロセッサ43によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビットが“1”(読み出し可/書き込み不可)に設定されたとき、予め読み出し予約情報として追加セグメントに書き込まれているサブプロセッサIDおよびLSアドレスによって特定されるローカルストレージ51に読み出される。
複数のサブプロセッサ43によってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出しおよび書き込みを制御することによって、前段階の処理を行うサブプロセッサ43が、処理済みのデータをメインメモリ12における所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ43が前処理後のデータを読み出すことが可能となる。
また、図4で示されるように、サブプロセッサ43のローカルストレージ51は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含む。
サブプロセッサ43がメインメモリ12に記憶されているデータをサブプロセッサ43のローカルストレージ51のメモリロケーションに読み出すときには、対応するビジービットを“1”に設定して予約する。ビジービットが“1”であるメモリロケーションには、他のデータを格納することができない。ローカルストレージ51のメモリロケーションにデータが読み出されると、ビジービットは“0”に設定され、他のデータを格納することができるようになる。
更に、図3で示すように、情報処理コントローラ11に接続されているメインメモリ12には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ12内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ43に割り当てられ、割り当てられたサブプロセッサ43が排他的に使用することができる。すなわち、サブプロセッサ43は、割り当てられたサンドボックスを使用できるが、この領域を超えてデータにアクセスすることはできない。
メインメモリ12は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
更に、メインメモリ12の排他的な制御を実現するために、図5で示されるキー管理テーブルが用いられる。キー管理テーブルは、キー管理テーブル記録部45に記録され、DMAC44と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサID、サブプロセッサキーおよびキーマスクが含まれる。
サブプロセッサ43がメインメモリ12にアクセスする場合、サブプロセッサ43はDMAC44に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、サブプロセッサ43を特定するサブプロセッサIDおよびアクセス要求先であるメインメモリ12のアドレスが含まれる。
DMAC44は、サブプロセッサ43から供給されたコマンドを実行する場合、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ43のサブプロセッサキーを調べる。そして、DMAC44は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ12のメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、サブプロセッサ43から供給されたコマンドを実行する。
図5に示されるキー管理テーブルに記録されているキーマスクは、その任意のビットが“1”になることによって、そのキーマスクと関連付けられたサブプロセッサキーの対応するビットを“0”または“1”にすることができる。
例えば、サブプロセッサキーが“1010”であるとする。通常、このサブプロセッサキーによって“1010”のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが“0001”に設定されている場合には、キーマスクのビットが“1”に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ(キーマスクのビットが“1”に設定された桁について、判定されず)、このサブプロセッサキー“1010”によってアクセスキーが“1010”または“1011”のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ12のサンドボックスの排他性が実現される。すなわち、複数のサブプロセッサ43によってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサ43と、後段階の処理を行うサブプロセッサ43のみが、メインメモリ12の所定のアドレスにアクセスできるようになり、データを保護することができる。
例えば、キーマスクの値は、以下のように変更されることが考えられる。まず、情報処理装置1−1の起動直後においては、キーマスクの値は全て“0”である。メインプロセッサ42にロードされたプログラムが実行され、サブプロセッサ43にロードされたプログラムと連携動作するものとする。サブプロセッサ43−1により出力された処理結果データを、メインメモリ12に記憶させ、メインメモリ12に記憶させた処理結果データを、サブプロセッサ43−2に入力したいときには、サブプロセッサ43−1により出力された処理結果データを記憶しているメインメモリ12の領域は、サブプロセッサ43−1およびサブプロセッサ43−2からアクセス可能である必要がある。そのような場合に、メインプロセッサ42は、キーマスクの値を適切に変更し、複数のサブプロセッサ43からアクセスできるメインメモリの領域を設けることにより、サブプロセッサ43による多段階的の処理を可能にする。
より具体的には、例えば、情報処理装置1−2乃至情報処理装置1−nから送信されてきたデータを基に、サブプロセッサ43−1が所定の処理実行し、処理が施されたデータをメインメモリ12の第1の領域に記憶させる。そして、サブプロセッサ43−2は、メインメモリ12の第1の領域から、記憶されているデータを読み出し、読み出したデータを基に、所定の処理を実行し、処理が施されたデータをメインメモリ12の第1の領域とは、異なる第2の領域に記憶させる。
ここで、サブプロセッサ43−1のサブプロセッサキーが“0100”であり、メインメモリ12の第1の領域のアクセスキーが“0100”であり、サブプロセッサ43−2のサブプロセッサキーが“0101”であり、メインメモリ12の第2の領域のアクセスキーが“0101”である場合、サブプロセッサ43−2は、メインメモリ12の第1の領域にアクセスすることができない。そこで、サブプロセッサ43−2のキーマスクを“0001”にすることによって、サブプロセッサ43−2は、メインメモリ12の第1の領域にアクセスすることができるようになる。
次に、図6および図7を参照して、情報処理装置1−1がソフトウェアセルを生成し、生成したソフトウェアセルを基に、情報処理装置1−2乃至情報処理装置1−nに分散処理を実行させる場合の処理について説明する。
情報処理装置1−1のメインプロセッサ42は、処理を実行するために必要なコマンド、プログラム、およびデータを含むソフトウェアセルを生成し、ネットワーク2を介して情報処理装置1−2乃至情報処理装置1−nあてに送信する。
図6は、ソフトウェアセルの構成の例を示す図である。
ソフトウェアセルは、送信元ID、送信先ID、応答先ID、セルインターフェース、DMAコマンド、プログラム、およびデータを含むように構成される。
送信元IDには、ソフトウェアセルの送信元である情報処理装置1−1のネットワークアドレスおよび情報処理装置1−1の情報処理コントローラ11の情報処理装置ID、更に、情報処理装置1−1の情報処理コントローラ11が備えるメインプロセッサ42およびサブプロセッサ43の識別子(メインプロセッサIDおよびサブプロセッサID)が含まれる。
送信先IDには、ソフトウェアセルの送信先である情報処理装置1−2乃至情報処理装置1−nのネットワークアドレス、情報処理装置1−2乃至情報処理装置1−nの情報処理コントローラの情報処理装置ID、および情報処理装置1−2乃至情報処理装置1−nの情報処理コントローラが備えるメインプロセッサおよびサブプロセッサの識別子が含まれる。
また、応答先IDには、ソフトウェアセルの実行結果の応答先である情報処理装置1−1のネットワークアドレス、情報処理装置1−1の情報処理コントローラ11の情報処理装置ID、および情報処理コントローラ11が備えるメインプロセッサ42およびサブプロセッサ43の識別子が含まれる。
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルID、必要なサブプロセッサの情報、サンドボックスサイズ、および前回のソフトウェアセルIDから構成される。
グローバルIDは、ネットワーク2全体を通してソフトウェアセルを一意的に識別できるものであり、送信元ID、およびソフトウェアセルの生成または送信の日時(日付および時刻)を基に、生成される。
必要なサブプロセッサの情報には、ソフトウェアセルの実行に必要なサブプロセッサの数などが設定される。サンドボックスサイズには、ソフトウェアセルの実行に必要なメインメモリおよびサブプロセッサのローカルストレージのメモリ量が設定される。
前回のソフトウェアセルIDは、ストリーミングデータなどのシーケンシャルな実行を要求する1つのグループを構成するソフトウェアセル内の、前回のソフトウェアセルの識別子である。
ソフトウェアセルの実行セクションは、DMAコマンド、プログラムおよびデータから構成される。DMAコマンドには、プログラムの起動に必要な一連のDMAコマンドが含まれ、プログラムには、サブプロセッサによって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
更に、DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、およびステータス返信コマンドが含まれる。
ロードコマンドは、メインメモリ12に記憶されている情報をサブプロセッサのローカルストレージにロードさせるコマンドであり、ロードコマンドのほかに、メインメモリアドレス、サブプロセッサIDおよびLSアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリの所定の領域のアドレスを示す。サブプロセッサIDおよびLSアドレスは、情報のロード先であるサブプロセッサの識別子およびローカルストレージのアドレスを示す。
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンドのほかに、サブプロセッサIDおよびプログラムカウンタを含む。サブプロセッサIDは、キック対象のサブプロセッサを識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
機能プログラム実行コマンドは、ある装置(例えば、情報処理装置1−1)が他の装置(例えば、情報処理装置1−2乃至情報処理装置1−nのうちのいずれか)に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した装置(例えば、情報処理装置1−2乃至情報処理装置1−nのうちのいずれか)の情報処理コントローラは、機能プログラムIDによって、起動すべき機能プログラムを識別する。
ステータス要求コマンドは、送信先IDで示される情報処理装置1−2乃至情報処理装置1−nの現在の動作状態(状況)に関する装置情報を、応答先IDで示される情報処理装置1−1あてに送信要求するコマンドである。
ステータス返信コマンドは、ステータス要求コマンドを受信した情報処理装置1−2乃至情報処理装置1−nが、装置情報をステータス要求コマンドに含まれる応答先IDで示される情報処理装置1−1に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
図7は、DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す図である。
情報処理装置IDは、情報処理コントローラを備える情報処理装置1を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置1−2乃至情報処理装置1−nのIDを示す。情報処理装置IDは、例えば、情報処理装置1−2乃至情報処理装置1−nのそれぞれの電源がオンされたとき、情報処理装置1−2乃至情報処理装置1−nの情報処理コントローラ11に含まれるメインプロセッサ42によって、電源がオンされたときの日時、情報処理装置1−2乃至情報処理装置1−nのネットワークアドレス、および、情報処理装置1−2乃至情報処理装置1−nの情報処理コントローラ11に含まれるサブプロセッサ43の数などに基づいて生成される。
情報処理装置種別IDには、情報処理装置1−2乃至情報処理装置1−nの特徴を表す値が含まれる。情報処理装置1−2乃至情報処理装置1−nの特徴とは、情報処理装置1−2乃至情報処理装置1−nがどのような装置であるかを示す情報であり、例えば、情報処理装置1−2乃至情報処理装置1−nが、ハードディスクレコーダ、PDA(Personal Digital Assistants)、ポータブルCD(Compact Disc)プレーヤなどであることを示す情報である。また、情報処理装置種別IDは、映像音声記録、映像音声再生など、情報処理装置1−2乃至情報処理装置1−nが有する機能を表すものであってもよい。情報処理装置1−2乃至情報処理装置1−nの特徴や機能を表す値は予め決定されているものとし、ステータス返信コマンドを受信した情報処理装置1−1は、情報処理装置種別IDを読み出すことにより、情報処理装置1−2乃至情報処理装置1−nの特徴や機能を把握することが可能である。
MS(マスタ/スレーブ)ステータスは、情報処理装置1−2乃至情報処理装置1−nがマスタ装置またはスレーブ装置のいずれで動作しているかを表すもので、これが0に設定されている場合にはマスタ装置として動作していることを示し、1に設定されている場合にはスレーブ装置として動作していることを示す。
メインプロセッサ動作周波数は、情報処理コントローラ11のメインプロセッサ42の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ42で現在動作している全てのプログラムについての、メインプロセッサ42での使用率を表す。メインプロセッサ使用率は、メインプロセッサ42の全処理能力に対する使用中の処理能力の比率を表した値で、例えば、プロセッサ処理能力評価のための単位であるMIPSを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。
サブプロセッサ数は、情報処理コントローラ11が備えるサブプロセッサ43の数を表す。サブプロセッサIDは、情報処理コントローラ11のサブプロセッサ43を識別するための識別子である。
サブプロセッサステータスは、サブプロセッサ43の状態を表すものであり、“unused”、“reserved”、および“busy”などの状態がある。“unused”は、サブプロセッサ43が現在使用されてなく、使用の予約もされていないことを示す。“reserved”は、現在は使用されていないが、予約されている状態を示す。“busy”は、現在使用中であることを示す。
サブプロセッサ使用率は、サブプロセッサ43で現在実行している、またはサブプロセッサ43に実行が予約されているプログラムについての、サブプロセッサ43での使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスが“busy”である場合には、現在の使用率を示し、サブプロセッサステータスが“reserved”である場合には、後に使用される予定の推定使用率を示す。
サブプロセッサID、サブプロセッサステータスおよびサブプロセッサ使用率は、1つのサブプロセッサ43に対して一組設定され、1つの情報処理コントローラ11のサブプロセッサ43に対応する組数が設定される。
メインメモリ総容量およびメインメモリ使用量は、それぞれ、情報処理コントローラ11に接続されているメインメモリ12の総容量および現在使用中の容量を表す。
記録部数は、情報処理コントローラ11に接続されている記録部13の数を表す。記録部IDは、情報処理コントローラ11に接続されている記録部13を一意的に識別する情報である。記録部種別IDは、記録部13の種類(例えば、ハードディスク、CD±RW、DVD±RW、メモリディスク、SRAM、ROMなど)を表す情報である。
記録部総容量および記録部使用量は、それぞれ、記録部IDによって識別される記録部13の総容量および現在使用中の容量を表す。
記録部ID、記録部種別ID、記録部総容量および記録部使用量は、1つの記録部13に対して一組設定されるものであり、情報処理コントローラ11に接続されている記録部13の数の組数だけ設定される。すなわち、1つの情報処理コントローラ11に複数の記録部13が接続されている場合、それぞれの記録部13には異なる記録部IDが割り当てられ、記録部種別ID、記録部総容量および記録部使用量も個別に管理される。
このようにして、情報処理装置1−1は、情報処理装置1−2乃至情報処理装置1−nに分散処理を実行させる場合、ソフトウェアセルを生成し、生成したソフトウェアセルを、ネットワーク2を介して情報処理装置1−2乃至情報処理装置1−nあてに送信する。
なお、以下、情報処理装置1−1から情報処理装置1−2乃至情報処理装置1−nあてに送信される各種データは、ソフトウェアセルに格納されて送信されるものとし、繰り返しになるので、その説明は省略する。
情報処理装置1−2乃至情報処理装置1−nのうちのいずれかの情報処理コントローラ11に含まれるメインプロセッサ42は、以上のような構成のソフトウェアセルを生成し、ネットワーク2を介して他の情報処理装置1の情報処理コントローラ11に、生成されたソフトウェエアセルを送信する。送信元の情報処理装置1、送信先の情報処理装置1、応答先の情報処理装置1、および、それぞれに設けられている情報処理コントローラ11は、それぞれ、上述した送信元ID、送信先IDおよび応答先IDによって識別される。
ソフトウェアセルを受信した情報処理装置1の情報処理コントローラ11に含まれるメインプロセッサ42は、そのソフトウェアセルをメインメモリ12に格納する。更に、送信先のメインプロセッサ42は、ソフトウェアセルを読み出し、それに含まれるDMAコマンドを処理する。
具体的に、送信先のメインプロセッサ42は、まず、ロードコマンドを実行する。これによって、メインメモリ12の、ロードコマンドで指示されたアドレスから、ロードコマンドに含まれるサブプロセッサIDおよびLSアドレスで特定されるサブプロセッサ43のローカルストレージ51の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムやプログラムの実行に必要なデータ、または、その他の指示されたデータである。
次に、メインプロセッサ42は、キックコマンドを、これに含まれるサブプロセッサIDで指示されたサブプロセッサ43に、同様にキックコマンドに含まれるプログラムカウンタとともに出力する。
指示されたサブプロセッサは、そのキックコマンドおよびプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ12に格納した後、実行を完了したことをメインプロセッサ42に通知する。
なお、送信先の情報処理装置1の情報処理コントローラ11において、ソフトウェアセルを実行するプロセッサは、サブプロセッサ43に限定されなくてもよく、メインプロセッサ42を、ソフトウェアセルに含まれる機能プログラムなどを実行するプロセッサとして指定することも可能である。
この場合には、送信元の情報処理装置1は、送信先の情報処理装置1宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラムおよびそのメインメモリ用プログラムによって処理されるデータを含み、かつ、DMAコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ12にメインメモリ用プログラムおよびそれによって処理されるデータを記憶させる。次に、送信元の情報処理装置1は、送信先の情報処理装置1宛に、送信先の情報処理装置1の情報処理コントローラ11についてのメインプロセッサID、メインメモリアドレス、メインメモリ用プログラムを識別するための機能プログラムIDなどの識別子、およびプログラムカウンタを含み、かつ、DMAコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ42にメインメモリ用プログラムを実行させるようにすることができる。
以上のように、本発明を適用したネットワークシステムでは、ソフトウェアセルの送信元の情報処理装置1は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置1に送信するとともに、サブプロセッサプログラムを、送信先の情報処理装置1の情報処理コントローラ11に設けられているサブプロセッサ43にロードさせることにより、サブプロセッサプログラムまたはメインメモリ用プログラムを、送信先の情報処理装置1に実行させることができる。
ソフトウェアセルの送信先の情報処理装置1の情報処理コントローラ11では、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合、このサブプロセッサプログラムを指定されたサブプロセッサ43にロードさせる。そして、指定されたサブプロセッサ43に、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。
したがって、ユーザは、ソフトウェアセルの送信先の情報処理装置1を操作することなく、自動的に、サブプロセッサプログラムまたはメインメモリ用プログラムが、ソフトウェアセルの送信元の情報処理装置1から、送信先の情報処理装置1に割り当てられ、ソフトウェアセルの送信先の情報処理装置1の情報処理コントローラ11により、実行させることができる。また、それぞれのサブプロセッサ43間では、DMA方式によりデータ転送が行われ、上述したサンドボックスを使用することによって、1つの情報処理コントローラ11において、データを多段階に処理する必要がある場合においても、高速かつ高セキュリティに処理を実行することができる。
図8に、個々の情報処理コントローラ11のメインメモリ12が記憶するソフトウェアの構成を示す。これらのソフトウェア(プログラム)は、情報処理装置1に電源が投入される前においては、情報処理コントローラ11に接続される記録部13に記録されているものである。
各プログラムは、機能または特徴によって、制御プログラム、機能プログラム、および、デバイスドライバにカテゴライズされる。
制御プログラムは、それぞれの情報処理コントローラ11が同じものを備え、それぞれの情報処理コントローラ11のメインプロセッサ42が実行するものである。例えば、複数の情報処理装置1において分散処理を実行することが可能なようになされている場合、制御プログラムには、後述するMS(マスタ/スレーブ)マネージャおよび能力交換プログラムが含まれる。
機能プログラムは、メインプロセッサ42が実行する、いわゆるアプリケーションプログラムに対応するものであり、例えば、記録用、再生用、素材検索用など、情報処理コントローラ11ごとに、情報処理装置1が有する機能に応じたものが備えられるようになされている。
デバイスドライバは、情報処理コントローラ11または情報処理装置1へのデータの入出力(送受信)機能を実行するためのドライバであり、例えば、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ11ごとに、情報処理装置1が有する機能に応じたものが備えられるようになされている。
図8に示される各プログラムのメインメモリ12へのロードについて説明する。
図示しない接続ケーブルなどによって情報処理装置1が物理的にネットワーク2に接続された状態で、情報処理装置1に主電源が投入され、情報処理装置1が電気的および機能的にネットワーク2に接続されると、その情報処理装置1の情報処理コントローラ11のメインプロセッサ42は、制御プログラムに属する各プログラム、およびデバイスドライバに属する各プログラムを、メインメモリ12にロードする。
具体的には、メインプロセッサ42は、まず、DC46に読み出し命令を実行させることによって、記録部13からロードするプログラムを読み出し、次に、DMAC44に書き込み命令を実行させることによって、そのプログラムをメインメモリ12に書き込ませることにより、制御プログラムに属する各プログラム、およびデバイスドライバに属する各プログラムを、メインメモリ12にロードすることができる。
また、機能プログラムに属する各プログラムについては、メインプロセッサ42の制御に基づいて、必要なときに必要なプログラムだけがロードされるようにしてもよいし、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムがロードされるようにしてもよい。
また、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムIDとして割り当てられる。機能プログラムIDは、機能プログラムの作成の段階で、作成日時や情報処理装置IDなどから決定される。
ここで、機能プログラムに属する各プログラムは、ネットワーク2に接続された全ての情報処理装置1の記録部13に記録されている必要はなく、いずれか1つの情報処理装置1の記録部13に記録されていれば、上述した方法によって、必要に応じて、それぞれの情報処理装置1の間で、機能プログラムを授受することができる。したがって、ネットワーク2に接続されている複数の情報処理装置1を仮想的な1台の情報処理装置として動作させ、機能プログラムを実行させることができる。
次に、MSマネージャ、および、能力交換プログラムについて説明する。
MSマネージャは、情報処理装置1がネットワーク2に接続されていることを検知すると、同じネットワーク2に接続されている他の情報処理装置1の存在を確認する。ここでの「接続」または「存在」は、情報処理装置1が物理的にネットワーク2に接続されているだけでなく、電気的および機能的にネットワーク2に接続されていることに対応する。
具体的には、MSマネージャは、同じネットワーク2に接続されている他の情報処理装置1の存在を確認するために、DMAコマンドがステータス要求コマンドであり、送信元IDおよび応答先IDが自分自身で、送信先IDを特定しないソフトウェアセルを生成して、生成したソフトウェアセルをネットワーク2に送信し、ネットワーク接続確認用のタイマを設定する。タイマのタイムアウト時間は、例えば10分とする。
それぞれの情報処理装置1のメインプロセッサ42は、装置情報(動作状態に関する情報)を格納するための領域を、メインメモリ12に確保し、例えば、情報処理装置ID、情報処理装置種別ID、サブプロセッサID、記録部ID、記録部数、記録部総容量などの情報を、装置情報テーブルとして記録している。
したがって、ネットワーク2に他の情報処理装置1が接続されている場合、接続されている他の情報処理装置1からは、DMAコマンドがステータス返信コマンドであり、かつ、他の情報処理装置1のメインメモリ12に記録されている装置情報をデータとして含む、ソフトウェアセルが返信される。MSマネージャは、タイマがタイムアウトするまで、ステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、MSステータス=0(マスタ装置)を示すステータス返信コマンドが受信された場合、MSマネージャは、自分自身の装置情報テーブルにおけるMSステータスを1に設定する。これによって、MSマネージャは、自分自身をスレーブ装置であると認識する。一方、タイマがタイムアウトするまでの間に、ステータス返信コマンドが全く受信されなかった場合、またはMSステータス=0(マスタ装置)を示すステータス返信コマンドが受信されなかった場合、MSマネージャは、自分自身の装置情報テーブルにおけるMSステータスを0に設定する。これによって、MSマネージャは、自分自身がマスタ装置であると認識する。
また、MSマネージャは、自分自身が、マスタ装置またはスレーブ装置のいずれであっても、定期的にステータス要求コマンドをネットワーク2に送信してステータス情報を照会することにより、他の装置の状況を監視する。その結果、ネットワーク2の接続状態に変化があった場合には、その情報を、後述する能力交換プログラムに通知する。
そして、能力交換プログラムは、自分自身がマスタ装置である場合、ネットワーク2に接続されている全ての他の情報処理装置1の装置情報、すなわち各スレーブ装置の装置情報を取得する。
スレーブ装置の装置情報の取得は、上述したように、DMAコマンドがステータス要求コマンドであるソフトウェアセルを生成してネットワーク2に送信し、その後、DMAコマンドがステータス返信コマンドで、かつ、データとしてスレーブ装置の装置情報を含むソフトウェアセルを受信することによって行われる。
能力交換プログラムは、マスタ装置である自分自身の装置情報テーブルと同様に、ネットワーク2に接続されている全てスレーブ装置の装置情報を格納するための領域を自装置のメインメモリ12に確保し、これら情報を、スレーブ装置の装置情報テーブルとして記録する。
すなわち、マスタ装置のメインメモリ12には、ネットワーク2に接続されている全ての情報処理装置1の装置情報が、装置情報テーブルとして記録される。
一方、能力交換プログラムは、自分自身がスレーブ装置である場合、同様にして、ネットワーク2に接続されている全ての他の情報処理装置の装置情報を取得し、これら装置情報に含まれる情報処理装置IDおよびMSステータスを、メインメモリ12に記録する。すなわち、スレーブ装置のメインメモリ12には、自分自身の装置情報が、装置情報テーブルとして記録されるとともに、ネットワーク2に接続されている他の情報処理装置1(マスタ装置およびスレーブ装置)についての情報処理装置IDおよびMSステータスが記録される。
また、能力交換プログラムは、自分自身がマスタ装置またはスレーブ装置のいずれであっても、新たにネットワーク2に情報処理装置1が接続されたり、接続されている情報処理装置1のうちのいずれかがネットワーク2から切断されたことが通知された場合、上述したように、MSマネージャから、ネットワーク2の接続状態に変化があったことを示す情報を取得して、メインメモリ12に記録されている情報を更新する。
なお、MSマネージャおよび能力交換プログラムは、メインプロセッサ42で実行されることに限らず、いずれかのサブプロセッサ43で実行されてもよい。また、MSマネージャおよび能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
なお、分散処理におけるマスタ装置は、ユーザの操作およびスレーブ装置の動作状態を把握する必要がある。ユーザがネットワーク2に接続されているいずれかの情報処理装置1を操作した場合、操作対象がマスタ装置であれば、その操作情報は、マスタ装置において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスタ装置に送信される。すなわち、ユーザの操作対象がマスタ装置とスレーブ装置のいずれであるかにかかわらず、その操作情報は、常に、マスタ装置において把握されるようになされる。操作情報の送信は、例えば、DMAコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
そして、マスタ装置の情報処理コントローラ11に含まれるメインプロセッサ42は、その操作情報に従って、実行する機能プログラムを選択する。マスタ装置の情報処理コントローラ11に含まれるメインプロセッサ42は、上述したように、自分自身の記録部13から、または、他の情報処理装置1(すなわち、スレーブ装置)から、メインメモリ12に機能プログラムをロードする。
機能プログラムには、その実行単位ごとに必要となる、情報処理装置種別ID、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの、装置に関する要求スペックが規定されている。マスタ装置の情報処理コントローラ11に含まれるメインプロセッサ42は、各機能プログラムについて必要となる要求スペックを読み出とともに、能力交換プログラムによってメインメモリ12に予め記録されている装置情報テーブルを参照し、ネットワーク2に接続されているそれぞれの情報処理装置1の装置情報を読み出す。
そして、マスタ装置の情報処理コントローラ11に含まれるメインプロセッサ42は、ネットワーク2上に接続された各情報処理装置1の装置情報と、機能プログラム実行に必要となる要求スペックとを順次比較し、例えば、機能プログラムが録画機能を必要とする場合、情報処理装置種別IDに基づいて、録画機能を有する情報処理装置1のみを特定して抽出するなど、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合、これらの候補装置から1つの実行要求候補装置が選択される。
マスタ装置内の情報処理コントローラ11に含まれるメインプロセッサ42は、実行要求候補装置として特定されたスレーブ装置について、自分自身のメインメモリ12に記録されている装置情報テーブルを更新する。更に、メインプロセッサ42は、DMAコマンドがロードコマンドおよびキックコマンドであるソフトウェアセルを生成し、機能プログラムに関する必要なサブプロセッサの情報およびサンドボックスサイズを設定して、実行要求候補装置として特定されたスレーブ装置に送信する。
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自分自身に記録されている装置情報テーブルを更新する。スレーブ装置の情報処理コントローラ11に含まれるメインプロセッサ42は、その際、必要であれば、上述したように、自分自身の記録部13から、または、他の情報処理装置1から、メインメモリ12に機能プログラムをロードする。
更に、メインメモリ用プログラムと同様に、サブプロセッサプログラムも、必要であれば、ソフトウェアセルによって他の情報処理装置1に送信させ、他の情報処理装置1のサブプロセッサ43にロードさせ、他の情報処理装置1に実行させることができる。
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置の情報処理コントローラ11のメインプロセッサ42は、終了通知をマスタ装置の情報処理コントローラ11のメインプロセッサ42に送信するとともに、自分自身が記憶している装置情報テーブルを更新する。マスタ装置の情報処理コントローラ11のメインプロセッサ42−1は、スレーブ装置により送信された機能プログラムの実行の終了通知を受信して、自分自身が記憶している装置情報テーブルのうち、機能プログラムを実行したスレーブ装置に対応する部分を更新する。
なお、仮想的な1台の情報処理装置として機能プログラムが実行される場合、マスタ装置が、ユーザの操作およびスレーブ装置の動作状態を把握しておく必要があるため、ネットワーク2から切断された情報処理装置1がマスタ装置である場合、例えば、ネットワーク2から切断されていない情報処理装置1のうち、最も小さい値の情報処理装置IDを有する情報処理装置1をマスタ装置とするようにすればよい。
また、本発明を適用した情報処理コントローラは、複数のサブプロセッサを含む全体の構成をワンチップIC(集積回路)として構成するようにしてもよい。複数のサブプロセッサを含む情報処理コントローラをワンチップICとして構成した場合、同じ処理を行う他のプロセッサと比較して、熱密度が高くなることが避けられない。そこで、メインプロセッサ42、および、それぞれのサブプロセッサ43に温度センサなどによる温度検出部を設け、正常動作可能な温度範囲内で動作するよう管理することにより、素子の劣化を防ぐとともに信頼性の高い情報処理コントローラおよび情報処理装置を実現することができる。更に、本発明を適用した情報処理コントローラは、1つまたは複数の情報処理装置内のサブプロセッサ間で、温度上昇に応じた処理の移動、または、交換を行うことにより、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
図9乃至図17を用いて、本発明を適用した情報処理装置の情報処理コントローラにおいて、プロセッサの温度上昇に応じた分散処理を実現する場合における、第1の実施の形態について説明する。
図9は、メインプロセッサ42、および、それぞれのサブプロセッサ43に温度検出部が設けられている情報処理装置101の構成を示すブロック図である。
なお、図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図9に示される情報処理装置101は、情報処理コントローラ11に代わって、情報処理コントローラ111が備えられ、1チップで構成されている情報処理コントローラ111の温度を検出するための温度検出部121-(m+2)(mは、情報処理コントローラ111に設けられているサブプロセッサ43の数と等しい値である)が新たに設けられている以外は、基本的に、図1を用いて説明した情報処理装置1と同様の構成を有している。
また、情報処理コントローラ111は、新たに、サブプロセッサ43-1乃至サブプロセッサ43−mの温度を計測するための温度検出部121-1乃至温度検出部121−m、および、メインプロセッサ42の温度を計測するための温度検出部121−(m+1)、並びに、温度検出部121-1乃至温度検出部121−(m+2)により計測された温度の測定結果をモニタリングし、その結果を、バス41を介して、メインプロセッサ42に供給するする温度モニタ処理部122が設けられている以外は、基本的に、図1を用いて説明した情報処理コントローラ11と同様の構成を有するものである。
情報処理装置101は、第1の実施の形態においては、ネットワーク2に接続されておらず、スタンドアロンで処理を実行するようになされている。すなわち、第1の実施の形態の情報処理装置101による分散処理は、情報処理コントローラ111のサブプロセッサ43-1乃至サブプロセッサ43−mのみで実行されるものである。
次に、図10を参照して、情報処理コントローラ111のチップ構成(チップ上における素子などの配置)について説明する。なお、図10においては、DMAC44、キー管理テーブル45、DC46、および、温度モニタ処理部122の配置については省略する。
情報処理コントローラ111のチップには、サブプロセッサ43-1乃至サブプロセッサ43-8の8つのサブプロセッサと、それらに対応するローカルストレージ51−2乃至ローカルストレージ51-9とが、バス41を真ん中に4つずつ(4×2の配列で)設けられ、メインプロセッサ42と、バス41を介して、相互に高速のデータ転送を行うために、隣接して配置されるようになされている。図10においては、メインプロセッサ42に接続されているバス41の一方に、サブプロセッサ43-1乃至サブプロセッサ43-4が、サブプロセッサ43-1が最もメインプロセッサ42に近くなり、それ以降、番号順に、メインプロセッサ42から遠くなるように設けられており、バス41の他方に、サブプロセッサ43-5乃至サブプロセッサ43-8が、サブプロセッサ43-5が最もメインプロセッサ42に近くなり、それ以降、番号順に、メインプロセッサ42から遠くなるように設けられている。また、情報処理コントローラ111のチップには、放熱のためのヒートシンク141が設けられている。
そして、サブプロセッサ43-1乃至サブプロセッサ43-8のそれぞれの近傍に、温度センサなどの温度検出部121-1乃至温度検出部121-8が設けられ、メインプロセッサ42の近傍に、温度検出部121-9が設けられ、ヒートシンク141の近傍に、温度検出部121−10が設けられている。
図11に、温度上昇を用いて制御を行うことができる、第1の実施の形態の情報処理コントローラ111によって実行されるソフトウェアの構成を示す。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前においては、情報処理コントローラ111に接続される記録部13に記録されているものである。
なお、図8における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、第1の実施の形態における情報処理コントローラ111のメインメモリ12が記憶するソフトウェアの構成は、新たに、制御プログラムに、温度管理プログラムが追加され、制御プログラムからMSマネージャおよび能力交換プログラムが省略されている以外は、基本的に、図8を用いて説明した場合と同様である。また、温度管理プログラムは、情報処理装置101の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
温度管理プログラムは、情報処理装置101の温度検出部121-1乃至温度検出部121−10により測定され、温度モニタ処理部122によりモニタリングされる温度情報を収集し、管理するとともに、これらの温度情報に基づいて、メインプロセッサ42により実行される処理の制御、および、サブプロセッサ43-1乃至サブプロセッサ43-8において必要に応じて実行される、処理の移動または交換を制御する。
図12は、情報処理装置101が実行可能な機能、換言すれば、図11を用いて説明したソフトウェアが実行されることにより実現される機能について説明するための機能ブロック図である。
図12において、演算処理部161、記憶部162、論理スレッド管理処理部163、および、温度異常対応処理制御部169の機能は、基本的に、情報処理装置101のメインプロセッサ42により実現される機能である。また、図12において、温度情報取得部164、割り込み制御部165、タイマ166、温度管理テーブル167、温度上昇検出部168の機能は、基本的に、情報処理装置101の温度モニタ処理部122により実現される機能である。
また、図12において、演算処理部181、レジスタ182、浮動小数点レジスタ183、プログラムカウンタ184、割り込み制御部185、および、スレッド移動・交換処理部186は、基本的に、情報処理部101のサブプロセッサ43により実現される機能であり、コード領域187、データ領域188、データ領域189、および、スタック領域190は、ローカルストレージ51の保存領域のうちの少なくとも一部に対応するものである。また、図12においては、1組のサブプロセッサ43および温度検出部121のみが図示されているが、情報処理コントローラ111内の全てのサブプロセッサ43および温度検出部121についても、同様に接続されているものとする。
演算処理部161は、所定のアプリケーションプログラムを実行するための演算処理を実行する。記憶部162は、ローカルストレージ51-1の記憶領域のうちの少なくとも一部に対応し、演算処理部161により実行されるプログラムや、プログラムの実行に必要なデータなどを記憶する。また、演算処理部161は、サブプロセッサ43のうちのいずれかに分散処理を実行させる場合、論理スレッド管理処理部163に、論理スレッドの設定情報を供給して、論理スレッドの生成を要求する。論理スレッドとは、複数のサブプロセッサ43のそれぞれに必要に応じて割り当てられた複数のプログラム(それらのプログラムは、同一のアプリケーションプログラムに対応するものであっても、異なるアプリケーションプログラムに対応するものであってもかまわない)をまとめて一つの機能を提供する処理単位と定義したものである。換言すれば、複数のサブプロセッサ43のそれぞれに必要に応じて割り当てられた複数のプログラムは、メインメモリ12の所定の記憶領域に記憶されているプログラムであり、演算処理部161により実行が制御されているアプリケーションプログラムの要求により、メインメモリ12から対応するサブプロセッサ43のローカルストレージ51にロードされて実行されるものである。
論理スレッド管理処理部163は、演算処理部161により実行されるアプリケーションプログラムに対応する論理スレッドの生成および削除を行うとともに、生成した論理スレッドの状態監視と動作制御を行う。論理スレッド管理処理部163は、情報処理コントローラ101の全体の管理情報が記載されたテーブルと、実行される論理スレッドごとに、論理スレッドの実行に必要な情報が記載されたテーブルを作成し、必要に応じて、テーブルの情報を参照し、更新することにより、論理スレッドの実行を制御する。
温度情報取得部164は、割り込み制御部165の処理により制御されるタイミングで、温度検出部121から供給される温度情報を取得し、管理情報テーブル167を更新する。割り込み制御部165は、タイマ166を参照して、温度情報取得部164に対してタイマ割り込みをかけるとともに、温度上昇検出部168から供給される情報を基に、演算処理部161および温度異常対応処理制御部169に割り込みをかける。
温度管理テーブル167は、情報処理コントローラ111における温度管理を行うための情報が記載されるテーブルであり、図13に示されるように、情報処理コントローラ111を識別するためのコントローラID、サブプロセッサ43−1乃至サブプロセッサ43-8の動作状態を示す情報、ヒートシンク141、メインプロセッサ42、および、サブプロセッサ43−1乃至サブプロセッサ43−8における最新の温度検出結果(すなわち、温度検出部121−1乃至温度検出部121−10のそれぞれの最新の温度検出結果)、ヒートシンク141、メインプロセッサ42、および、サブプロセッサ43−1乃至サブプロセッサ43−8における上限温度の設定値(すなわち、温度検出部121−1乃至温度検出部121−10のそれぞれが検出する温度がこれ以上高い場合は、異常値であると判別するための設定値)、並びに、チップ内のサブプロセッサの配置情報が記載されている。
図13において、上限温度とは、情報処理コントローラ111または情報処理装置101の設計時において、予め設定された正常な動作を行うために要求される温度の上限値である。上限温度は、正常かつ効率的な動作を行うために望ましい温度上限値であってもよい。また、サブプロセッサ43−1乃至サブプロセッサ43-8の動作状態を示す情報とは、それぞれが動作中であるか否かを示す、例えば、RUNまたはSTOPのステータスである。そして、サブプロセッサ配置情報とは、情報処理コントローラ111または情報処理装置101の設計時においてあらかじめ設定された、サブプロセッサ43−1乃至サブプロセッサ43-8の配置を示す情報であり、例えば、図10を用いて説明した場合においては、サブプロセッサ43−1乃至サブプロセッサ43-8が縦2行×横4列で配置されていることを示す情報、および、それらの配置とサブプロセッサIDとの対応を示す情報が記載されている。
温度上昇検出部168は、温度管理テーブル167を参照し、温度検出部121-1乃至温度検出部121−10により検出された温度検出結果のうち、あらかじめ設定されている上限温度を超えたものがあった場合、割り込み制御部165に異常な温度上昇が検出されたことを通知し、演算処理部161および温度異常対応処理制御部169に割り込みをかけさせる。
温度異常対応処理制御部169は、割り込み制御部165により割り込みがかかった場合、温度管理テーブル167を参照して、異常な温度上昇が検出された温度検出部121に対応するのは、情報処理コントローラ111であるか、メインプロセッサ42であるか、または、サブプロセッサ43のうちのいずれであるかを検出し、論理スレッド管理処理部163を制御して、必要に応じて、実行されている処理をいったん停止させたり、異常な温度上昇が検出されたサブプロセッサ43と、正常なサブプロセッサ43のいずれかとの、実行されているスレッドの移動または交換を制御する。
次に、演算処理部181は、メインプロセッサ42により割り当てられたプログラム(スレッド)を、論理スレッド管理処理部163の制御に基づいて実行する。レジスタ182および浮動小数点レジスタ183は、演算処理部181により実行されるプログラムの実行に用いられるレジスタであり、プログラムカウンタ184は、演算処理部181により現在実行されている命令が格納されているアドレスを示すカウンタである。
割り込み制御部185は、論理スレッド管理処理部163の制御に基づいて、割り込みがなされた場合、演算処理部181の処理を停止させたり、割り込みが解除された場合、演算処理部181の処理を再開させる。スレッド移動・交換処理部186は、論理スレッド管理処理部163の制御に基づいて、自分自身が実行しているプログラムを他のサブプロセッサ43に移動させる場合、または、他のサブプロセッサ43が実行しているプログラムと交換させる場合に、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させ、スタック領域190とデータ領域189の内容を、プログラムの処理の移動先、または、交換先として選択されたサブプロセッサ43のローカルストレージ51に転送させる処理を制御する。
また、コード領域187は、各サブプロセッサ共通のコードを記憶する領域であり、データ領域188は、固定データを記憶する領域であり、データ領域189は、サブプロセッサ43によって異なるデータを記憶する領域であり、スタック領域190は、自分自身が実行しているプログラムを他のサブプロセッサ43に移動させる場合、または、他のサブプロセッサ43が実行しているプログラムと交換させる場合に、実行中のプログラムのコンテキストを退避させるための領域である。
次に、図12の機能ブロックを用いて説明した機能を有する情報処理コントローラ11が実行する処理の具体例について説明する。
例えば、3次元グラフィックスを処理するためのアプリケーションプログラムが実行される場合、1画面分の処理を画素ごとに分割して、同じプログラム、同じモデルデータを基に、複数のプロセッサで並列に演算させるようにすることができる。すなわち、演算処理部161において、3次元グラフィックスを処理するためのアプリケーションプログラムが実行される場合、画素ごとに分割された処理が、複数のサブプロセッサ43にそれぞれ割り当てられ、並列して演算されるようにすることができる。
演算処理部161は、論理スレッド管理処理部163に論理スレッドの生成を要求するとき、この論理スレッドにおいて使用するサブプロセッサ43の総数を、予め決めておき、論理スレッドの設定情報として、論理スレッド管理処理部163に供給する。ここでは、使用するサブプロセッサ43の総数を、2個であるものとする。そして、論理スレッド管理処理部163は、処理に必要な、共通に使用するプログラムとモデルデータを、分散処理を割り当てたサブプロセッサ43のコード領域187およびデータ領域188(ローカルストレージ51)にロードさせる。
なお、このとき、処理に必要な、共通に使用するプログラムとモデルデータを、分散処理が割り当てられていないサブプロセッサ43のローカルストレージ51にも、予め供給しておくようにしてもよい。それにより、後述する処理において、温度上昇のため、現在分散処理が割り当てられていないサブプロセッサ43に、対応する論理スレッドの処理が新たに割り当てられた(処理が移動された、または、交換された)とき、新たにプログラムとモデルデータをロードする必要がなくなるため、好適である。
例えば、分散処理が割り当てられたサブプロセッサ43が、サブプロセッサ43−1およびサブプロセッサ43-2であるとき、サブプロセッサ43−1の演算処理部81は、画面上の座標(2x,y)の位置の輝度値の演算処理を行い、サブプロセッサ43-2の演算処理部81は、画面上の座標(2x+1、y)の位置の輝度値の演算処理を行うものとする。
割り込み制御部165は、情報処理装置101が動作中である場合、常に、タイマ167を参照して、所定の一定時間ごとに、温度情報取得部164に割り込みをかけ、温度検出部121−1乃至温度検出部121−10により検出された温度情報を取得させ、温度管理テーブル167の、温度検出結果の値を更新させる。
サブプロセッサ43−1およびサブプロセッサ43-2は、演算処理部161により処理されているアプリケーションプログラムの要求により割り当てられたスレッドを、それぞれ、順次処理する。サブプロセッサ43−1およびサブプロセッサ43-2は、演算処理の実行にともなって、高速にスイッチングするトランジスタの割合に応じて発熱する。また、メインプロセッサ42、および、分散処理が割り当てられたサブプロセッサ43の発熱は、自分自身のトランジスタのスイッチングのみならず、隣接したプロセッサの発熱の影響を受ける。すなわち、高速でスイッチングするプロセッサが隣接して存在した場合、それらのプロセッサの温度は、著しく上昇する。
温度上昇検出部168は、温度管理テーブル167を参照し、温度検出部121-1乃至温度検出部121−10により検出された温度検出結果のうち、予め設定されている上限温度を超えたものがあった場合、割り込み制御部165に異常な温度上昇が検出されたことを通知する。割り込み制御部165は、温度上昇検出部168の通知を受け、演算処理部161および温度異常対応処理制御部169に割り込みをかける。
割り込み制御部165により割り込みがかけられた演算処理部161は、実行中のアプリケーションプログラムの処理を、いったん停止させる。また、割り込み制御部165により割り込みがかけられた温度異常対応処理制御部169は、温度管理テーブル167を参照して、異常な温度上昇が検出された温度検出部121に対応するのは、情報処理コントローラ111であるか、メインプロセッサ42であるか、または、サブプロセッサ43のうちのいずれであるかを検出し、論理スレッド管理処理部163を制御して、必要に応じて、処理をいったん停止させたり、異常な温度上昇が検出されたサブプロセッサ43と、正常なサブプロセッサ43のいずれかとの、実行されているスレッドの移動または交換を制御する。
具体的には、温度異常対応処理制御部169は、温度管理テーブル167を参照して、異常な温度上昇が検出された温度検出部121に対応するのが、サブプロセッサ43−1であることを検出した場合、温度管理テーブル167を参照し、サブプロセッサ43−1が実行していたスレッドの処理が新たに割り振られる、すなわち、処理の移動先となるサブプロセッサ43を選択することができるか否かを判断する。
移動先のサブプロセッサ43は、現在動作中のサブプロセッサ43に隣接しないものであって、かつ、停止状態であるサブプロセッサ43のうち、温度検出結果が最も低いものが選択され、この条件を満たすサブプロセッサ43が複数ある場合は、サブプロセッサIDとして割り当てられている番号が最も若いものが選択される。また、現在動作中のサブプロセッサ43に隣接しない、停止状態であるサブプロセッサ43が存在しない場合、停止状態のサブプロセッサ43のうち、温度検出結果が最も低いものが選択され、この条件を満たすサブプロセッサ43が複数ある場合は、サブプロセッサIDとして割り当てられている番号が最も若いものが選択される。
また、停止状態のサブプロセッサ43が存在しない場合、処理の移動ではなく、処理の交換が行われる。処理の交換先として、温度検出結果が最も低いものが選択され、この条件を満たすサブプロセッサが複数ある場合は、サブプロセッサIDとして割り当てられている番号が最も若いものが選択される。
また、処理に必要な、共通に使用するプログラムとモデルデータが、分散処理が割り当てられていないサブプロセッサ43のローカルストレージ51のうちのいずれかに、予め供給されている場合、共通に使用するプログラムとモデルデータがローカルストレージ51に保存されているサブプロセッサ43が優先して選択されるようにしてもよい。
ここで、温度異常対応処理制御部169は、温度管理テーブル167を参照して、動作実行中のサブプロセッサ43−1およびサブプロセッサ43-2のうち、異常な温度上昇が検出された温度検出部121に対応するのが、サブプロセッサ43−1であることを検出した場合、温度管理テーブル167を参照して、停止中のサブプロセッサ43−3乃至サブプロセッサ43-8のうち、上述した条件に合致したものとして、例えば、サブプロセッサ43−4を選択するものとする。
温度異常対応処理制御部169は、サブプロセッサ43−1の処理の移動先としてサブプロセッサ43−4が選択されたことを論理スレッド管理処理部163に通知する。論理スレッド管理処理部163は、サブプロセッサ43−1の実行している処理のコンテキストを退避させて、処理を停止させ、退避させたコンテキストを、サブプロセッサ43−4にロードさせるために、サブプロセッサ43−1を制御するとともに、温度管理テーブル167のサブプロセッサ43−1の動作状態を示すステータスをSTOPに変更する。
サブプロセッサ43-1の割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させる。そして、スレッド移動・交換処理部186は、移動先のサブプロセッサ43−4が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部163が管理する図示しない情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
論理スレッド管理処理部163は、退避されたデータ(移動先のサブプロセッサ43−4が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータ)を、移動先のサブプロセッサ43−4に供給し、コード領域187乃至スタック領域190の対応する部分に記憶させる。
そして、割り込み処理部165は、演算処理部161に対する割り込みを解除する。演算処理部161は、論理スレッド管理処理部163による論理スレッドの実行を再び要求するので、論理スレッド管理処理部163は、サブプロセッサ43-2およびサブプロセッサ43−4に、分散処理を開始させる。
また、温度異常対応処理制御部169は、温度管理テーブル167を参照して、異常な温度上昇が検出された温度検出部121に対応するのは、情報処理コントローラ111、または、メインプロセッサ42であることを検出した場合、論理スレッド管理処理部163を制御して、演算処理部161により実行されているアプリケーションプログラムを一時停止させるなどして、常時動作する常駐プログラムなどが実行する一部の必要な処理を除いて、メインプロセッサ42の処理を一時中断させ、発熱量を低下させる。そして、温度異常対応処理制御部169は、温度管理テーブル167を参照して、異常な温度上昇が検出されなくなるまで待機し、温度状態が正常状態に戻った場合、または、予め定められた、所定の温度以下となった場合、メインプロセッサ42の処理、すなわち、演算処理部161により実行されているアプリケーションプログラムの処理を再開させる。
なお、図12においては、演算処理部161、記憶部162、論理スレッド管理処理部163、および、温度異常対応処理制御部169の機能が、基本的に、情報処理装置101のメインプロセッサ42により実現される機能であり、温度情報取得部164、割り込み制御部165、タイマ166、温度管理テーブル167、温度上昇検出部168の機能が、基本的に、情報処理装置101の温度モニタ処理部122により実現される機能であるものとして説明したが、これらの機能を実現するハードウェアが、上述するとおりではない場合、例えば、メインプロセッサ42により実現される機能のうちの一部が温度モニタ処理部122により実現されたり、温度モニタ処理部122により実現される機能のうちの一部がメインプロセッサ42により実現される場合や、これらの機能が、それぞれ異なるハードウェアにより実現される場合なども、本発明は適用可能であることは言うまでもない。
次に、図14のフローチャートを参照して、図9に示される第1の実施の形態の情報処理装置101が実行するアプリケーションプログラム実行処理1について説明する。ここでは、温度管理プログラムが、情報処理装置101の主電源が投入されている間は常時動作する常駐プログラムであるものとして説明する。
ステップS1において、演算処理部161は、ユーザにより、アプリケーションプログラムの実行が指令されたか否かを判断する。すなわち、ステップS1において、メインプロセッサ42は、操作入力部15から、バス14およびバス41を介して供給される信号を基に、アプリケーションプログラムの実行が指令されたか否かを判断する。ステップS1において、アプリケーションプログラムの実行が指令されていないと判断された場合、アプリケーションプログラムの実行が指令されたと判断されるまで、ステップS1の処理が繰り返される。
ステップS1において、アプリケーションプログラムの実行が指令されたと判断された場合、ステップS2において、演算処理部161は、論理スレッドのサブプロセッサへの割り当てなどを設定し、論理スレッドの設定情報を論理スレッド管理処理部163に供給する。
ステップS3において、論理スレッド管理処理部163は、論理スレッドが割り当てられたサブプロセッサ43のローカルストレージ51のコード領域187およびデータ領域188に、割り当てられた処理を実行するためのプログラムやデータをロードさせる。
ステップS4において、演算処理部161および論理スレッド管理処理部163は、サブプロセッサ43による処理を含めた、アプリケーションプログラムの実行を制御する。サブプロセッサ43の演算処理部181は、割り当てられた処理を実行する。
ところで、温度管理プログラムは、情報処理装置101の主電源が投入されている間は常時動作する常駐プログラムであるので、ステップS1乃至ステップS4の処理が実行されている間も、処理が実行されている。温度管理プログラムによる温度情報管理処理1については、図15のフローチャートを用いて後述する。
ステップS5において、演算処理部161は、割り込み制御部165により、温度異常発生のための割り込みがあるか否かを判断する。ステップS5において、温度異常発生のための割り込みがないと判断された場合、処理は、後述するステップS8に進む。
ステップS5において、温度異常発生のための割り込みがあったと判断された場合、割り込みにより実行中の処理が停止されるので、ステップS6において、演算処理部161は、割り込みが解除されたか否かを判断する。ステップS6において、割り込みが解除されていないと判断された場合、割り込みが解除されたと判断されるまで、ステップS6の処理が繰り返される。
ステップS6において、割り込みが解除されたと判断された場合、ステップS7において、演算処理部161は、必要に応じて、論理スレッドの設定情報を、再度、論理スレッド管理処理部163に供給するので、論理スレッド管理処理部163は、論理スレッド管理に関するテーブルを更新する。
ステップS5において、温度異常発生のための割り込みがないと判断された場合、または、ステップS7の処理の終了後、ステップS8において、演算処理部161は、アプリケーションプログラムの処理が終了されたか否かを判断する。ステップS8において、アプリケーションプログラムの処理が終了されていないと判断された場合、処理は、ステップS4に戻り、それ以降の処理が繰り返される。ステップS8において、アプリケーションプログラムの処理が終了されたと判断された場合、処理が終了される。
このような処理により、メインプロセッサ42により実行されるアプリケーションプログラムに対応する分散処理が、サブプロセッサ43のうちの選択されたものにより実行される。
次に、図15のフローチャートを参照して、図9の情報処理装置101が実行する(具体的には、図11の温度管理プログラムが実行する)温度情報管理処理1について説明する。
ステップS21において、温度情報取得部164は、割り込み制御部165から、タイマ割り込みが入ったか否かを判断する。ステップS21において、タイマ割り込みが入っていないと判断された場合、タイマ割り込みが入ったと判断されるまで、ステップS21の処理が繰り返される。
ステップS21において、タイマ割り込みが入ったと判断された場合、ステップS22において、温度情報取得部164は、温度検出部121のそれぞれから、温度情報を取得する。
ステップS23において、温度情報取得部164は、ステップS22において取得された温度情報を基に、温度管理テーブル167を更新する。
ステップS24において、温度上昇検出部168は、温度管理テーブル167を参照し、温度情報に異常値があるか否か、すなわち、温度検出部121のそれぞれにより検出された温度検出結果のうち、予め設定されている上限温度を超えたものがあるか否かを判断する。ステップS24において、温度情報に異常値がないと判断された場合、処理は、ステップS21に戻り、それ以降の処理が繰り返される。
ステップS24において、温度情報に異常値があったと判断された場合、ステップS25において、温度上昇検出部168は、割り込み制御部165に、異常な温度上昇が検出されたことを通知し、演算処理部161および温度異常対応処理制御部169に割り込みをかけさせる。割り込み制御部165は、温度異常対応処理制御部169および演算処理部161に対して、割り込みをかけ、演算処理部161により制御されるアプリケーションプログラムの処理を停止させるとともに、温度異常対応処理制御部169に対して異常発生時の処理を開始させる。
ステップS26において、図16を用いて後述する異常発生時の処理1が実行される。
ステップS27において、温度異常対応処理制御部169は、ステップS26において実行された異常発生時の処理1に基づいて、論理スレッド管理処理部163を制御し、必要に応じて、論理スレッド管理に関するテーブルを更新させる。
ステップS28において、割り込み制御部165は、演算処理部161により制御されるアプリケーションプログラムの処理に対する割り込みを解除し、処理は、ステップS21に戻り、それ以降の処理が繰り返される。
このような処理により、温度検出部121のそれぞれにより検出された温度情報が取得され、検出された温度情報により更新される温度管理テーブル167を基に、異常発生時の割り込み処理が実行されるか否かが判断される。
次に、図16のフローチャートを参照して、図15のステップS26において実行される異常発生時の処理1について説明する。
ステップS41において、温度異常対応処理制御部169は、温度管理テーブル167を参照し、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であるか否か、換言すれば、予め設定されている上限温度を超えた温度検出結果を得たのは、温度検出部121-9または温度検出部121−10のうちのいずれかであるか否かを判断する。ステップS41において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であると判断された場合、処理は、後述するステップS53に進む。
ステップS41において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111ではない、すなわち、サブプロセッサ43のうちのいずれかであると判断された場合、ステップS42において、温度異常対応処理制御部169は、温度管理テーブル167を参照し、温度の異常が発生したサブプロセッサ43の処理の移動が可能であるか否か、換言すれば、温度の異常が発生したサブプロセッサ43以外のサブプロセッサ43のうちのいずれかが、停止状態であるか否かを判断する。ステップS42において、温度の異常が発生したサブプロセッサ43の処理の移動が可能ではないと判断された場合、処理は、後述するステップS47に進む。
ステップS42において、温度の異常が発生したサブプロセッサ43の処理の移動が可能であると判断された場合、ステップS43において、温度異常対応処理制御部169は、処理の移動先のサブプロセッサ43を選択し、選択結果を、論理スレッド管理処理部163に供給する。具体的には、温度異常対応処理制御部169は、現在動作中のサブプロセッサ43に隣接しないものであって、かつ、停止状態であるサブプロセッサ43のうち、温度検出結果が最も低いものを移動先のサブプロセッサ43として優先的に選択するようになされている。また、この条件を満たすサブプロセッサ43が複数ある場合、温度異常対応処理制御部169は、サブプロセッサIDとして割り当てられている番号が最も若いものを選択する。また、現在動作中のサブプロセッサ43に隣接しない、停止状態であるサブプロセッサ43が存在しない場合、温度異常対応処理制御部169は、停止状態のサブプロセッサ43のうち、温度検出結果が最も低いものを選択し、更に、この条件を満たすサブプロセッサ43が複数ある場合は、サブプロセッサIDとして割り当てられている番号が最も若いものを選択し、選択結果を、論理スレッド管理処理部163に供給する。
例えば、図17Aに示されるように、動作実行中のサブプロセッサが、サブプロセッサ43−1およびサブプロセッサ43-2であり、このうち、異常な温度上昇が検出された温度検出部121に対応するのが、サブプロセッサ43−1であった場合、温度異常対応処理制御部169は、温度管理テーブル167を参照して、停止中のサブプロセッサ43−3乃至サブプロセッサ43-8のうち、上述した条件に合致したものとして、図17Bに示されるように、例えば、サブプロセッサ43−4を選択することができる。
ステップS44において、論理スレッド管理処理部163は、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。温度上限値を超えたサブプロセッサ43の割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受けて、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部163が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS45において、論理スレッド管理処理部163は、温度上限値を超えたサブプロセッサ43の動作を停止させる。
ステップS46において、論理スレッド管理処理部163は、移動先のサブプロセッサとして選択されたサブプロセッサ43に、ステップS44の処理により退避されたコンテキストをリストアする。移動先のサブプロセッサとして選択されたサブプロセッサ43においては、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、図15のステップS26に戻り、ステップS27に進む。
ステップS42において、温度の異常が発生したサブプロセッサ43の処理の移動が可能ではないと判断された場合、ステップS47において、温度異常対応処理制御部169は、処理の交換先のサブプロセッサ43を選択し、選択結果を、論理スレッド管理処理部163に供給する。具体的には、温度異常対応処理制御部169は、温度検出結果が最も低いものを移動先のサブプロセッサ43として優先的に選択するようになされており、この条件を満たすサブプロセッサ43が複数ある場合、サブプロセッサIDとして割り当てられている番号が最も若いものを選択するようになされている。
ステップS48において、論理スレッド管理処理部163は、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。温度上限値を超えたサブプロセッサ43の割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受けて、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部163が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS49において、論理スレッド管理処理部163は、温度上限値を超えたサブプロセッサ43の動作を停止させる。
ステップS50において、論理スレッド管理処理部163は、処理の交換先として選択されたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。処理の交換先として選択されたサブプロセッサ43の割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受けて、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部163が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS51において、論理スレッド管理処理部163は、処理の交換先として選択されたサブプロセッサ43の動作を停止させる。
ステップS52において、論理スレッド管理処理部163は、退避された2つのサブプロセッサ43のコンテキストを交換してリストアさせる。すなわち、論理スレッド管理処理部163は、処理の交換先のサブプロセッサとして選択されたサブプロセッサ43に、ステップS48の処理により退避されたコンテキストをリストアさせるとともに、温度上限値を超えたサブプロセッサ43に、ステップS50の処理により退避されたコンテキストをリストアさせる。そして、それぞれのサブプロセッサ43は、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、図15のステップS26に戻り、ステップS27に進む。
ステップS41において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であると判断された場合、ステップS53において、温度異常対応処理制御部169は、論理スレッド管理処理部163を制御して、演算処理部161により実行されているアプリケーションプログラムを一時停止させるなどして、常時動作する常駐プログラムなどが実行する一部の必要な処理を除いて、メインプロセッサ42の処理を一時中断させる。
ステップS54において、温度異常対応処理制御部169は、温度管理テーブル167を参照して、温度状態が正常に戻ったか否かを判断する。ステップS54において、温度状態が正常に戻っていないと判断された場合、温度状態が正常に戻ったと判断されるまで、ステップS54の処理が繰り返される。ステップS54において、温度状態が正常に戻ったと判断された場合、処理は、図15のステップS26に戻り、ステップS27に進む。
このような処理により、温度異常の発生箇所、そのときのチップ内の動作、および、それぞれのプロセッサの温度検出値に基づいて、処理が停止されるか、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、処理の移動先または交換先が選択されるようになされている。
以上説明した処理により、メインプロセッサ42、および、それぞれのサブプロセッサ43に温度検出部121が設けられ、ネットワーク2に接続されておらず、スタンドアロンで処理を実行するようになされている、本発明の第1の実施の形態の情報処理装置101において、温度異常があるか否かが監視され、温度異常が検出された場合、温度異常の発生箇所、そのときのチップ内の動作、および、それぞれのプロセッサの温度検出値に基づいて、処理が停止されるか、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、必要に応じて、処理の移動先または交換先が選択されて、処理が移動または交換されるようになされているので、実行中の処理を停止させるのを最小限に抑えつつ、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
図9乃至図17を用いて説明した処理においては、情報処理装置101が、ネットワーク2に接続されておらず、スタンドアロンで処理を実行するようになされているものとして説明したが、例えば、図18に示されるように、情報処理装置101が、ネットワーク2に複数個接続されている場合においても、本発明は、適用可能である。
次に、図18乃至図33を用いて、本発明を適用した情報処理装置の情報処理コントローラにおいて、プロセッサの温度上昇に応じた分散処理を実現する場合における、第2の実施の形態について説明する。
図18は、温度に応じた分散処理を、複数の情報処理装置101の間で実現するためのネットワークシステムである。なお、情報処理装置101−1乃至情報処理装置101−nのハードウェア構成については、図9を用いて説明した情報処理装置101のハードウェア構成と基本的に同様であり、更に、情報処理装置101−1乃至情報処理装置101−nの情報処理コントローラ111は、図10を用いて説明した場合と同様のプロセッサの配置を有する1チップで構成されるので、それらの説明は省略する。
すなわち、図19に示されるように、図10を用いて説明した場合と同様のチップ構成(チップ上における素子などの配置)を有する情報処理コントローラ111が、それぞれ、バス14および通信部16を介して、ネットワーク2に接続されている。したがって、情報処理装置101-1乃至情報処理装置101-nにおいては、図1乃至図8を用いて説明した場合と同様にして、いずれかがマスタ装置として認識され、それ以外のものがスレーブ装置として認識されている。
図20に、温度上昇を用いて制御を行うことができる、第2の実施の形態の情報処理コントローラ111によって実行されるソフトウェアの構成を示す。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前においては、情報処理コントローラ111に接続される記録部13に記録されているものである。
なお、図8における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、第2の実施の形態における情報処理コントローラ111のメインメモリ12が記憶するソフトウェアの構成は、制御プログラムに、新たに、温度管理プログラムが追加されている以外は、基本的に、図8を用いて説明した場合と同様である。温度管理プログラムは、情報処理装置101の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
図20の温度管理プログラムは、第1の実施の形態(図11)における場合と基本的に同様の処理を実行し、情報処理装置101の温度検出部121-1乃至温度検出部121−10により測定され、温度モニタ処理部122によりモニタリングされる温度情報を収集し、管理するとともに、これらの温度情報に基づいて、メインプロセッサ42により実行される処理の制御、および、サブプロセッサ43-1乃至サブプロセッサ43-8において必要に応じて実行される、処理の移動または交換を制御するが、更に、ネットワーク2を介して接続されている他の情報処理装置101と温度情報を交換して、メインプロセッサ42により実行される処理の制御、および、サブプロセッサ43-1乃至サブプロセッサ43-8において必要に応じて実行される、処理の移動または交換を制御する。
ネットワーク2を介して接続されている他の情報処理装置101との温度情報、および、処理の移動または交換の制御には、3つのパターンがある。
第1のパターンは、例えば、情報処理装置101−1がマスタ装置である場合、情報処理装置101−1が、自分自身の温度管理テーブルのみならず、ネットワーク2に接続されているスレーブ装置である情報処理装置101-2乃至情報処理101-nのそれぞれの温度管理テーブルを管理するものである。すなわち、スレーブ装置である情報処理装置101-2乃至情報処理101-nは、所定の時間ごとに更新された最新の温度管理テーブルを、マスタ装置である情報処理装置101-1に随時送信するようになされている。そして、マスタ装置である情報処理装置101−1は、ネットワーク2に接続されている情報処理装置101−1乃至情報処理101-nの全ての温度情報を監視し、情報処理装置101−1乃至情報処理101-nのうちのいずれかにおいて、温度上昇の異常が検出された場合、例えば、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111に含まれる全てのサブプロセッサ43から、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
第2のパターンは、それぞれの情報処理装置101が、自分自身の温度管理テーブルを基に温度情報を監視し、温度上昇の異常を検出した場合、ネットワーク2に接続されている、他の情報処理装置101の全てに対して、温度情報の送信を要求するコマンドを送信するものである。すなわち、温度上昇の異常を検出していない状態の情報処理装置101は、他の情報処理装置101から、温度情報の送信を要求するコマンドを受信したとき、自分自身の温度管理テーブルを基に温度情報を返信するコマンドを生成して、温度情報要求コマンドの送信元の情報処理装置101に、生成された温度情報を返信するコマンドを送信する。そして、温度情報を返信するコマンドを受信した情報処理装置101は、ネットワーク2に接続されている全ての情報処理装置101の情報処理コントローラ111に含まれる全てのサブプロセッサ43から、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
第3のパターンは、それぞれの情報処理装置101が、自分自身の温度管理テーブルを基に温度情報を監視し、温度上昇の異常を検出した場合、ネットワーク2に接続されている、他の情報処理装置101の全てに対して、サブプロセッサプログラムの移動を要求するコマンドを送信するものである。すなわち、温度上昇の異常を検出していない状態の情報処理装置101は、他の情報処理装置101から、サブプロセッサプログラムの移動を要求するコマンドを受信したとき、自分自身の温度管理テーブルを基に、サブプロセッサプログラムの移動先となることが可能か否かを示す返信コマンドを生成し、サブプロセッサプログラムの移動を要求するコマンドの送信元の情報処理装置101に、生成した返信コマンドを送信する。そして、返信コマンドを受信した情報処理装置101は、返信コマンドを基に、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
図21に、第2の実施の形態の第1のパターンにおける情報処理コントローラ111が実行可能な機能を説明するための機能ブロック図を示す。なお、図12における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図21に示される、第2の実施の形態の第1のパターンにおける情報処理コントローラ111のうち、メインプロセッサ42が実行可能な機能においては、MSマネージメント処理部211、能力交換処理制御部212、記憶部213、および、温度管理情報送受信制御部214が新たに設けられ、温度異常対応処理制御部169に代わって、温度異常対応処理制御部216が設けられ、論理スレッド管理処理部163に代わって、論理スレッド管理処理部217が設けられている以外は、基本的に、図12を用いて説明した場合と同様であり、温度モニタ処理部122が実現可能な機能は、温度管理テーブル167に代わって、温度管理テーブル215が設けられている以外は、図12を用いて説明した場合と同様である。
なお、図21において、これらの機能を実現するハードウェアが、上述するとおりではない場合、例えば、メインプロセッサ42により実現される機能のうちの一部が温度モニタ処理部122により実現されたり、温度モニタ処理部122により実現される機能のうちの一部がメインプロセッサ42により実現される場合や、これらの機能が、それぞれ異なるハードウェアにより実現される場合なども、本発明は適用可能であることは言うまでもない。
MSマネージメント処理部211は、自分自身がネットワーク2に接続されていることを検知すると、DMAコマンドがステータス要求コマンドであり、送信元IDおよび応答先IDが自分自身で、送信先IDを特定しないソフトウェアセルを生成して、生成したソフトウェアセルを、通信部16を介して、ネットワーク2に送信し、DMAコマンドがステータス返信コマンドであり、かつ、他の情報処理装置1のメインメモリ12に記録されている装置情報をデータとして含むソフトウェアセルを受信することにより、同じネットワーク2に接続されている情報処理装置101のうち、自分自身がマスタ装置であるか、スレーブ装置であるかを認識する。能力交換処理制御部212は、自分自身がマスタ装置である場合、ネットワーク2に接続されている全ての他の情報処理装置101の装置情報、すなわち各スレーブ装置の装置情報を取得して、記憶部213に記憶させ、自分自身がスレーブ装置である場合、ネットワーク2に接続されている全ての他の情報処理装置101の装置情報に含まれる情報処理装置IDおよびMSステータスを取得して、記憶部213に記憶させる。
記憶部213は、メインメモリ12のうちの少なくとも一部の記憶領域に対応し、ネットワーク2に接続されている情報処理装置101の装置情報、または、装置情報のうちの一部の情報を記憶する。温度管理情報送受信制御部214は、温度異常対応処理制御部216の制御に基づいて、通信部16を介して、温度管理テーブル、または、温度管理のために生成された各種コマンド(ソフトウェアセル)の、ネットワーク2に接続されている他の情報処理装置101への送信を制御するとともに、通信部16を介して、他の情報処理装置101の温度管理テーブル、または、温度管理のための各種コマンド(ソフトウェアセル)などの、ネットワーク2に接続されている他の情報処理装置101からの受信を制御する。以下、温度管理テーブル、または、温度管理のために生成された各種コマンド(ソフトウェアセル)など、ネットワーク2によって接続された複数の情報処理装置101の温度管理と温度管理の結果実行される分散処理の制御にかかわる情報を個々に区別する必要がない場合、温度管理情報と総称するものとする。
温度管理テーブル215は、自分自身がマスタ装置である場合、温度情報取得部164により取得された情報を基に更新される自分自身の温度管理テーブルのみならず、温度管理情報送受信制御部214の処理により受信が制御された、ネットワーク2に接続されている他の情報処理装置101から送信された温度管理テーブルを記憶し、自分自身がスレーブ装置である場合、温度情報取得部164により取得された情報を基に更新される自分自身の温度管理テーブルを記憶する。
温度異常対応処理制御部216は、自分自身がマスタ装置であり、割り込み制御部165により割り込みがかかった場合、温度管理テーブル215を参照して、ネットワーク2に接続されている全ての情報処理装置101のうち、異常な温度上昇が検出された温度検出部121に対応するのは、いずれの情報処理装置101が備えるものであるか、および、情報処理コントローラ111であるか、メインプロセッサ42であるか、または、サブプロセッサ43のうちのいずれであるかを検出し、検出結果を基に、論理スレッド管理処理部217を制御して、必要に応じて、処理をいったん停止させたり、サブプロセッサ43のいずれかとの、実行されているスレッドの移動または交換を制御する。
論理スレッド管理処理部217は、演算処理部161により実行されるアプリケーションプログラムに対応する論理スレッドの生成および削除を行うとともに、自分自身がマスタ装置である場合、ネットワーク2に接続されている情報処理装置101のうちのいずれかにおいて実行される分散処理に対応する論理スレッドの状態監視と動作制御を行う。論理スレッド管理処理部217は、自分自身がマスタ装置である場合、ネットワーク2に接続されている全ての情報処理装置101の管理情報が記載されたテーブルと、実行される論理スレッドごとに、論理スレッドの実行に必要な情報が記載されたテーブルを作成し、必要に応じて、テーブルの情報を参照し、更新することにより、論理スレッドの実行を制御する。
また、論理スレッド管理処理部217は、自分自身がマスタ装置である場合、必要に応じて、他の情報処理装置101において実行されているスレッドの処理を制御するためのソフトウェアセルを生成し、通信部16を介して、生成されたソフトウェアセルを送信する。また、更に、論理スレッド管理処理部217は、自分自身がスレーブ装置である場合、通信部16を介して、マスタ装置である情報処理装置101から送信されたソフトウェアセルの供給を受け、ソフトウェアセルの内容に基づいた分散処理をサブプロセッサ43に実行させるとともに、必要に応じて、返信や応答に対応するソフトウェアセルを生成し、通信部16を介して、生成されたソフトウェアセルを送信する。更に、論理スレッド管理処理部217は、自分自身がマスタ装置であるかスレーブ装置であるかにかかわらず、必要に応じて、通信部16により受信された、他の情報処理装置101において実行されたスレッドに関する情報を取得する。
次に、図22乃至図24のフローチャートを参照して、第2の実施の形態の第1のパターンにおける動作を説明する。第2の実施の形態においても、アプリケーションプログラム実行処理は、図14を用いて説明した第1の実施の形態における場合と、基本的に同様であるので、その説明は省略する。
図22のフローチャートを参照して、マスタ装置の温度情報管理処理について説明する。
ステップS71において、温度情報取得部164は、割り込み制御部165から、タイマ割り込みが入ったか否かを判断する。
ステップS71において、タイマ割り込みが入っていないと判断された場合、ステップS72において、温度管理情報送受信制御部214は、ネットワーク2に接続されている他の情報処理装置101から、温度管理テーブルを受信したか否かを判断する。ステップS72において、温度管理テーブルを受信していないと判断された場合、処理は、ステップS71に戻り、それ以降の処理が繰り返される。ステップS72において、温度管理テーブルを受信したと判断された場合、処理は、後述するステップS74に進む。
ステップS71において、タイマ割り込みが入ったと判断された場合、ステップS73において、温度情報取得部164は、温度検出部121のそれぞれから、温度情報を取得する。
ステップS72において、温度管理テーブルを受信したと判断された場合、または、ステップS73の処理の終了後、ステップS74において、温度情報取得部164は、ステップS72において受信された他の情報処理装置101の温度管理テーブル、または、ステップS73において取得された自分自身の温度情報を基に、温度管理テーブル215を更新する。
ステップS75において、温度上昇検出部168は、温度管理テーブル215を参照し、温度情報に異常値があるか否か、すなわち、ネットワーク2に接続されている情報処理装置101に設けられている全ての温度検出部121により検出された温度検出結果のうち、予め設定されている上限温度を超えたものがあるか否かを判断する。ステップS75において、温度情報に異常値がないと判断された場合、処理は、ステップS71に戻り、それ以降の処理が繰り返される。
ステップS75において、温度情報に異常値があったと判断された場合、ステップS76において、温度上昇検出部168は、割り込み制御部165に、異常な温度上昇が検出されたことを通知し、演算処理部161および温度異常対応処理制御部216に割り込みをかけさせる。割り込み制御部165は、温度異常対応処理制御部216および演算処理部161に対して、割り込みをかけ、演算処理部161により制御されるアプリケーションプログラムの処理を停止させるとともに、温度異常対応処理制御部216に対して異常発生時の処理を開始させる。
ステップS77において、図23を用いて後述する異常発生時の処理2が実行される。
ステップS78において、温度異常対応処理制御部216は、ステップS77において実行された異常発生時の処理2に基づいて、論理スレッド管理処理部217を制御し、必要に応じて、論理スレッド管理に関するテーブルを更新させる。
ステップS79において、割り込み制御部165は、演算処理部161により制御されるアプリケーションプログラムの処理に対する割り込みを解除し、処理は、ステップS71に戻り、それ以降の処理が繰り返される。
このような処理により、ネットワーク2に接続されている情報処理装置101のそれぞれにおいて、温度検出部121のそれぞれにより検出された温度情報を基に更新された温度管理テーブルを、マスタ装置が取得して、温度管理テーブル215として管理することができるようになされ、マスタ装置において記憶されている温度管理テーブル215を基に、異常発生時の割り込み処理が実行されるか否かが判断される。
次に、図23のフローチャートを参照して、図22のステップS77において実行される異常発生時の処理2について説明する。
ステップS91において、温度異常対応処理制御部216は、温度管理テーブル215を参照し、温度の異常が発生したのは、ネットワーク2に接続されているいずれかの情報処理装置101のメインプロセッサ42、または、情報処理コントローラ111であるか否かを判断する。ステップS91において、温度の異常が発生したのは、ネットワーク2に接続されているいずれかの情報処理装置101のメインプロセッサ42、または、情報処理コントローラ111であると判断された場合、処理は、後述するステップS103に進む。
ステップS91において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111ではない、すなわち、ネットワーク2に接続されているいずれかの情報処理装置101のサブプロセッサ43のうちのいずれかであると判断された場合、ステップS92において、温度異常対応処理制御部216は、温度管理テーブル215を参照し、温度の異常が発生したサブプロセッサ43の処理の移動が可能であるか否か、換言すれば、温度の異常が発生したサブプロセッサ43以外のサブプロセッサ43のうちのいずれかに、停止状態のものがあるか否かを判断する。ステップS92において、温度の異常が発生したサブプロセッサ43の処理の移動が可能ではないと判断された場合、処理は、後述するステップS97に進む。
ステップS92において、温度の異常が発生したサブプロセッサ43の処理の移動が可能であると判断された場合、ステップS93において、温度異常対応処理制御部216は、温度管理テーブル215を参照し、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、処理の移動先のサブプロセッサ43を選択し、選択結果を、論理スレッド管理処理部217に供給する。具体的には、温度異常対応処理制御部216は、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、現在動作中のサブプロセッサ43に隣接しないものであって、かつ、停止状態であるサブプロセッサ43のうち、温度検出結果が最も低いものを移動先のサブプロセッサ43として優先的に選択するようになされている。また、この条件を満たすサブプロセッサ43が複数ある場合、温度異常対応処理制御部216は、サブプロセッサIDとして割り当てられている番号が最も若いものを選択する。また、現在動作中のサブプロセッサ43に隣接しない、停止状態であるサブプロセッサ43が存在しない場合、温度異常対応処理制御部216は、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、停止状態のサブプロセッサ43のうち、温度検出結果が最も低いものを選択し、更に、この条件を満たすサブプロセッサ43が複数ある場合は、サブプロセッサIDとして割り当てられている番号が最も若いものを選択し、選択結果を、論理スレッド管理処理部217に供給する。
ステップS94において、論理スレッド管理処理部217は、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。
温度上限値を超えたサブプロセッサ43がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部217が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、温度上限値を超えたサブプロセッサ43がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置101の論理スレッド管理処理部217が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS95において、論理スレッド管理処理部217は、温度上限値を超えたサブプロセッサ43の動作を停止させる。
ステップS96において、論理スレッド管理処理部217は、移動先のサブプロセッサとして選択されたサブプロセッサ43に、ステップS94の処理により退避されたコンテキストをリストアする。すなわち、論理スレッド管理処理部217は、処理の移動先のサブプロセッサ43がマスタ装置内のサブプロセッサ43であるとき、バス41を介して、移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストを供給し、処理の移動先のサブプロセッサ43がスレーブ装置内のサブプロセッサ43であるとき、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、スレーブ装置として動作している情報処理装置101に含まれる移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストを供給する。移動先のサブプロセッサとして選択されたサブプロセッサ43においては、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、図22のステップS77に戻り、ステップS78に進む。
ステップS92において、温度の異常が発生したサブプロセッサ43の処理の移動が可能ではないと判断された場合、ステップS97において、温度異常対応処理制御部216は、温度管理テーブル215を参照して、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、処理の交換先のサブプロセッサ43を選択し、選択結果を、論理スレッド管理処理部217に供給する。具体的には、温度異常対応処理制御部216は、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、温度検出結果が最も低いものを移動先のサブプロセッサ43として優先的に選択するようになされており、この条件を満たすサブプロセッサ43が複数ある場合、サブプロセッサIDとして割り当てられている番号が最も若いものを選択するようになされている。
ステップS98において、論理スレッド管理処理部217は、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。
温度上限値を超えたサブプロセッサ43がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部217が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、温度上限値を超えたサブプロセッサ43がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置101の論理スレッド管理処理部217が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS99において、論理スレッド管理処理部217は、温度上限値を超えたサブプロセッサ43の動作を停止させる。
ステップS100において、論理スレッド管理処理部217は、処理の交換先として選択されたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。
処理の交換先として選択されたサブプロセッサ43がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部217が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、処理の交換先として選択されたサブプロセッサ43がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置101の論理スレッド管理処理部217が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS101において、論理スレッド管理処理部217は、処理の交換先として選択されたサブプロセッサ43の動作を停止させる。
ステップS102において、論理スレッド管理処理部217は、退避された2つのサブプロセッサ43のコンテキストを交換してリストアさせる。すなわち、論理スレッド管理処理部217は、処理の交換先のサブプロセッサとして選択されたサブプロセッサ43に、ステップS98の処理により退避されたコンテキストをリストアするとともに、温度上限値を超えたサブプロセッサ43に、ステップS100の処理により退避されたコンテキストをリストアする。具体的には、論理スレッド管理処理部217は、温度上限値を越えたサブプロセッサ43、または、処理の交換先のサブプロセッサ43がマスタ装置内のサブプロセッサ43であるとき、バス41を介して、交換先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストのうち対応するものを供給し、温度上限値を越えたサブプロセッサ43、または、処理の交換先のサブプロセッサ43がスレーブ装置内のサブプロセッサ43であるとき、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、スレーブ装置として動作している情報処理装置101に含まれる交換先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストのうち対応するものを供給する。それぞれのサブプロセッサ43には、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、図22のステップS77に戻り、ステップS78に進む。
ステップS91において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であると判断された場合、ステップS103において、温度異常対応処理制御部216は、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ111は、マスタ装置である情報処理装置101に含まれるか否かを判断する。ステップS103において、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ111は、マスタ装置である情報処理装置101に含まれると判断された場合、処理は、後述するステップS106に進む。
ステップS103において、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ111は、マスタ装置である情報処理装置101に含まれない、すなわち、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ111は、スレーブ装置である情報処理装置101に含まれると判断された場合、ステップS104において、温度異常対応処理制御部216は、温度管理テーブル215を参照して、異常が発生したメインプロセッサ42、または、情報処理コントローラ111が含まれる情報処理装置101の情報処理コントローラ111全体の処理が移動可能であるか否かを判断する。ステップS104において、異常が発生したメインプロセッサ42、または、情報処理コントローラ111が含まれる情報処理装置101の情報処理コントローラ111全体の処理が移動可能であると判断された場合、処理は、ステップS93に進む。
ステップS104において、異常が発生したメインプロセッサ42、または、情報処理コントローラ111が含まれる情報処理装置101の情報処理コントローラ全体の処理が移動可能ではないと判断された場合、ステップS105において、温度異常対応処理制御部216は、温度管理テーブル215を参照して、異常が発生したメインプロセッサ42、または、情報処理コントローラ111が含まれる情報処理装置101の情報処理コントローラ111全体の処理の交換が可能であるか否かを判断する。ステップS105において、異常が発生したメインプロセッサ42、または、情報処理コントローラ111が含まれる情報処理装置101の情報処理コントローラ111全体の処理の交換が可能であると判断された場合、処理は、ステップS97に進む。
ステップS103において、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ111は、マスタ装置である情報処理装置101に含まれると判断された場合、または、ステップS105において、異常が発生したメインプロセッサ42、または、情報処理コントローラ111が含まれる情報処理装置101の情報処理コントローラ全体の処理の交換が可能ではないと判断された場合、ステップS106において、温度異常対応処理制御部216は、論理スレッド管理処理部217を制御して、演算処理部161により実行されているアプリケーションプログラムを一時停止させるなどして、常時動作する常駐プログラムなどが実行する一部の必要な処理を除いて、メインプロセッサ42の処理を一時中断させる。
ステップS107において、温度異常対応処理制御部216は、温度管理テーブル215を参照して、温度状態が正常に戻ったか否かを判断する。ステップS107において、温度状態が正常に戻っていないと判断された場合、温度状態が正常に戻ったと判断されるまで、ステップS107の処理が繰り返される。ステップS107において、温度状態が正常に戻ったと判断された場合、処理は、図22のステップS77に戻り、ステップS78に進む。
このような処理により、温度異常の発生箇所、そのときのチップ内の動作、および、それぞれのプロセッサの温度検出値に基づいて、処理が一時停止されるか、分散処理のうちの少なくとも一部が移動されるか、または、分散処理のうちの少なくとも一部が交換されるかが判断され、処理の移動先または交換先が選択されるようになされている。
次に、図24のフローチャートを参照して、図22を用いて説明したマスタ装置の温度情報管理処理と並行して実行される、スレーブ装置の温度情報管理処理について説明する。
ステップS121において、スレーブ装置として動作している情報処理装置101の温度情報取得部164は、割り込み制御部165から、タイマ割り込みが入ったか否かを判断する。ステップS121において、タイマ割り込みが入っていないと判断された場合、タイマ割り込みが入ったと判断されるまで、ステップS121の処理が繰り返される。
ステップS121において、タイマ割り込みが入ったと判断された場合、ステップS122において、温度情報取得部164は、温度検出部121のそれぞれから、温度情報を取得する。
ステップS123において、温度情報取得部164は、ステップS122において取得された温度情報を基に、温度管理テーブル215を更新する。
ステップS124において、温度管理情報送受信制御部214は、ステップS123において更新された温度管理テーブル215を、通信部16およびネットワーク2を介して、マスタ装置として動作している情報処理装置101に送信し、処理は、ステップS121に戻り、それ以降の処理が繰り返される。
このような処理により、スレーブ装置の温度管理テーブルがマスタ装置に送信される。送信されたそれぞれのスレーブ装置の温度管理テーブルは、マスタ装置において管理される。
図21乃至図24を用いて説明した処理により、メインプロセッサ42、および、それぞれのサブプロセッサ43に温度検出部121が設けられている情報処理コントローラ111を有する情報処理装置101が、複数、ネットワーク2に接続されている第2の実施の形態において、第1のパターンの温度情報、および、処理の移動または交換の制御を用いて、実行中の処理を停止させるのを最小限に抑えつつ、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
次に、図25に、第2の実施の形態の第2のパターンにおける情報処理コントローラ111が実行可能な機能を説明するための機能ブロック図を示す。なお、図21における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図25に示される、第2の実施の形態の第2のパターンにおける情報処理コントローラ111のうち、メインプロセッサ42が実行可能な機能においては、記憶部213、温度管理情報送受信制御部214、および、温度異常対応処理制御部216に代わって、記憶部231、温度管理情報送受信制御部232、および、温度異常対応処理制御部234が設けられている以外は、基本的に、図21を用いて説明した場合と同様であり、温度モニタ処理部122が実現可能な機能は、温度管理テーブル215に代わって、温度管理テーブル233が設けられている以外は、図21を用いて説明した場合と同様である。
なお、図25において、これらの機能を実現するハードウェアが、上述するとおりではない場合、例えば、メインプロセッサ42により実現される機能のうちの一部が温度モニタ処理部122により実現されたり、温度モニタ処理部122により実現される機能のうちの一部がメインプロセッサ42により実現される場合や、これらの機能が、それぞれ異なるハードウェアにより実現される場合なども、本発明は適用可能であることは言うまでもない。
記憶部231は、メインメモリ12のうちの少なくとも一部の記憶領域に対応し、ネットワーク2に接続されている情報処理装置101の装置情報、または、装置情報のうちの一部の情報を記憶するとともに、温度管理情報送受信制御部232が受信した、他の情報処理装置101における温度管理テーブルを一時記憶する。温度管理情報送受信制御部232は、温度異常対応処理制御部234の制御に基づいて、通信部16を介して、温度管理情報、または、温度管理のために生成された各種コマンド(ソフトウェアセル)の、ネットワーク2に接続されている他の情報処理装置101への送信を制御するとともに、通信部16を介して、他の情報処理装置101から送信された温度管理情報、または、温度管理のための各種コマンド(ソフトウェアセル)などの、ネットワーク2に接続されている他の情報処理装置101からの受信を制御する。
温度異常対応処理制御部234は、自分自身の温度情報取得部164により取得された情報を基に、温度上昇検出部168により温度異常の発生が検出されて、割り込み制御部165により割り込み処理が実行された場合、ネットワーク2に接続されている、他の情報処理装置101の全てに対して、温度管理情報の送信を要求するコマンドを生成し、温度管理情報送受信制御部232を制御して、生成したコマンドを送信させる。また、温度異常対応処理制御部234は、温度管理情報送受信制御部232が、ネットワーク2に接続されている、他の情報処理装置101から温度管理情報の送信を要求するコマンドを受信した場合、温度管理テーブル233に記憶されている温度管理テーブルを基に、図26に示される温度情報返信コマンドを生成し、温度管理情報送受信制御部232を制御して、生成した温度情報返信コマンドを送信させる。
温度情報返信コマンドには、温度管理テーブル233に記憶されている温度管理テーブルを基に、ヒートシンク141、メインプロセッサ42、および、サブプロセッサ43−1乃至サブプロセッサ43−8における最新の温度検出結果(すなわち、温度検出部121−1乃至温度検出部121−10のそれぞれの最新の温度検出結果)、ヒートシンク141、メインプロセッサ42、サブプロセッサ43−1乃至サブプロセッサ43−8における上限温度の設定値(すなわち、温度検出部121−1乃至温度検出部121−10のそれぞれが検出する温度がこれ以上高い場合は、異常値であると判別するための設定値)、および、サブプロセッサ43−1乃至サブプロセッサ43-8の動作状態を示す情報、並びに、チップ内のサブプロセッサの配置情報が記載されている。
温度管理テーブル233は、自分自身がマスタ装置であるかスレーブ装置であるかにかかわらず、自分自身の温度情報取得部164により取得された情報を基に更新される自分自身の温度管理テーブルを記憶する。
次に、図27および図28のフローチャートを参照して、第2の実施の形態の第2のパターンにおける動作を説明する。第2の実施の形態においても、アプリケーションプログラム実行処理は、図14を用いて説明した第1の実施の形態における場合と、基本的に同様であるので、その説明は省略する。
図27のフローチャートを参照して、温度情報管理処理2について説明する。
ステップS141乃至ステップS144において、図15のステップS21乃至ステップS24と基本的に同様の処理が実行される。すなわち、タイマ割り込みが入ったと判断された場合、温度情報取得部164は、温度検出部121のそれぞれから、温度情報を取得し、温度管理テーブル233を更新する。そして、温度上昇検出部168は、温度管理テーブル233を参照し、温度情報に異常値があるか否かを判断する。
ステップS144において、温度情報に異常値がないと判断された場合、ステップS145において、温度異常対応処理制御部234は、温度管理情報送受信制御部232が、ネットワーク2に接続されている、他の情報処理装置101から温度管理情報の送信を要求するコマンドを受信したか否かを判断する。ステップS145において、他の情報処理装置101から温度管理情報の送信を要求するコマンドを受信していないと判断された場合、処理は、ステップS141に戻り、それ以降の処理が繰り返される。
ステップS145において、他の情報処理装置101から温度管理情報の送信を要求するコマンドを受信したと判断された場合、ステップS146において、温度異常対応処理制御部234は、温度管理テーブル233に記憶されている温度管理テーブルを基に、図26に示される温度情報返信コマンドを生成し、温度管理情報送受信制御部232を制御して、生成した温度情報返信コマンドを送信させ、処理は、ステップS141に戻り、それ以降の処理が繰り返される。
ステップS144において、温度情報に異常値があったと判断された場合、ステップS147において、温度上昇検出部168は、割り込み制御部165に、異常な温度上昇が検出されたことを通知し、演算処理部161および温度異常対応処理制御部234に割り込みをかけさせる。割り込み制御部165は、温度異常対応処理制御部234および演算処理部161に対して、割り込みをかけ、演算処理部161により制御されるアプリケーションプログラムの処理を停止させるとともに、温度異常対応処理制御部234に対して異常発生時の処理を開始させる。
ステップS148において、図28を用いて後述する異常発生時の処理3が実行される。
ステップS149において、温度異常対応処理制御部234は、ステップS148において実行された異常発生時の処理3に基づいて、論理スレッド管理処理部217を制御し、必要に応じて、論理スレッド管理に関するテーブルを更新させる。
ステップS150において、割り込み制御部165は、演算処理部161により制御されるアプリケーションプログラムの処理に対する割り込みを解除し、処理は、ステップS141に戻り、それ以降の処理が繰り返される。
このような処理により、ネットワーク2に接続されている情報処理装置101のそれぞれが、マスタ措置であるかスレーブ装置であるかにかかわらず、自分自身の温度検出部121のそれぞれにより検出された温度情報を基に更新された温度管理テーブルを基に、自分自身の温度異常を検出し、異常発生時には、割り込み処理が実行され、後述する異常発生時の処理3が実行される。また、ネットワーク2に接続されている他の情報処理装置から、温度情報の送信要求を受けた場合、図26に示される温度情報返信コマンドが生成されて、送信要求元の情報処理装置101に送信される。
次に、図28のフローチャートを参照して、図27のステップS148において実行される異常発生時の処理3について説明する。
ステップS181において、温度異常対応処理制御部234は、温度管理テーブル233を参照し、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であるか否か、換言すれば、予め設定されている上限温度を超えた温度検出結果を得たのは、温度検出部121-9または温度検出部121−10のうちのいずれかであるか否かを判断する。ステップS181において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であると判断された場合、処理は、後述するステップS195に進む。
ステップS181において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111ではない、すなわち、サブプロセッサ43のうちのいずれかであると判断された場合、ステップS182において、温度異常対応処理制御部234は、ネットワーク2に接続されている、他の情報処理装置101の全てに対して、温度管理情報の送信を要求するコマンドを生成し、温度管理情報送受信制御部232を制御して、生成したコマンドを送信させる。温度管理情報送受信制御部232は、温度管理情報の送信を要求するコマンドを、通信部16およびネットワーク2を介して、ネットワーク2に接続されている、他の情報処理装置101の全てに送信する。
ステップS183において、温度管理情報送受信制御部232は、図26を用いて説明した温度情報返信コマンドを受信し、温度異常対応処理制御部234に供給する。
ステップS184において、温度異常対応処理制御部234は、ネットワーク2に接続されている、他の情報処理装置101の全てから送信された温度情報返信コマンドを基に、温度の異常が発生したサブプロセッサ43の処理の移動が可能であるか否かを判断する。
ステップS184において、処理の移動が可能であると判断された場合、ステップS185乃至ステップS188において、図23のステップS93乃至ステップS96と基本的に同様の処理が実行される。すなわち、温度管理テーブル233が参照されて、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、処理の移動先のサブプロセッサ43が選択され、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、温度上限値を超えたサブプロセッサ43の動作が停止され、退避されたコンテキストが移動先のサブプロセッサにリストアされる。
ステップS188の処理の終了後、処理は、図27のステップS148に戻り、ステップS149に進む。
ステップS184において、処理の移動が可能ではないと判断された場合、ステップS189乃至ステップS194において、図23のステップS97乃至ステップS102と基本的に同様の処理が実行される。すなわち、温度管理テーブル233が参照されて、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、処理の交換先のサブプロセッサ43が選択され、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、温度上限値を超えたサブプロセッサ43の動作が停止される。
そして、処理の交換先として選択されたサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、処理の交換先として選択されたサブプロセッサ43の動作が停止され、退避された2つのサブプロセッサ43のコンテキストが、交換されてリストアされる。
ステップS194の処理の終了後、処理は、図27のステップS148に戻り、ステップS149に進む。
ステップS181において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であると判断された場合、ステップS195およびステップS196において、図16のステップS53およびステップS54と基本的に同様の処理が実行される。すなわち、論理スレッド管理処理部217が制御されて、演算処理部161により実行されているアプリケーションプログラムが一時停止され、常時動作する常駐プログラムなどが実行する一部の必要な処理を除いて、メインプロセッサ42の処理が一時中断され、温度管理テーブル233が参照されて、温度状態が正常に戻ったか否かが判断され、温度状態が正常に戻っていないと判断された場合、温度状態が正常に戻ったと判断されるまで、ステップS196の処理が繰り返される。
ステップS196において、温度状態が正常に戻ったと判断された場合、処理は、図27のステップS148に戻り、ステップS149に進む。
このような処理により、温度異常が発生した場合、他の装置に温度情報の送信を要求し、温度異常の発生箇所、ネットワーク2に接続されているそれぞれの情報処理コントローラ111のそのときの動作、および、それぞれのプロセッサの温度検出値に基づいて、処理が停止されるか、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、処理の移動先または交換先が選択されるようになされている。
図25乃至図28を用いて説明した処理により、メインプロセッサ42、および、それぞれのサブプロセッサ43に温度検出部121が設けられている情報処理コントローラ111を有する情報処理装置101が、複数、ネットワーク2に接続されている第2の実施の形態において、第2のパターンの温度情報、および、処理の移動または交換の制御を用いて、実行中の処理を停止させるのを最小限に抑えつつ、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
次に、図29に、第2の実施の形態の第3のパターンにおける情報処理コントローラ111が実行可能な機能を説明するための機能ブロック図を示す。なお、図21における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図29に示される、第2の実施の形態の第3のパターンにおける情報処理コントローラ111のうち、メインプロセッサ42が実行可能な機能においては、温度管理情報送受信制御部214、および、温度異常対応処理制御部216に代わって、温度管理情報送受信制御部251、および、温度異常対応処理制御部252が設けられている以外は、基本的に、図21を用いて説明した場合と同様であり、温度モニタ処理部122が実現可能な機能は、温度管理テーブル215に代わって、図25を用いて説明した温度管理テーブル233が設けられている以外は、図21を用いて説明した場合と同様である。
なお、図29において、これらの機能を実現するハードウェアが、上述するとおりではない場合、例えば、メインプロセッサ42により実現される機能のうちの一部が温度モニタ処理部122により実現されたり、温度モニタ処理部122により実現される機能のうちの一部がメインプロセッサ42により実現される場合や、これらの機能が、それぞれ異なるハードウェアにより実現される場合なども、本発明は適用可能であることは言うまでもない。
温度管理情報送受信制御部251は、温度異常対応処理制御部252の制御に基づいて、通信部16を介して、温度管理情報、または、温度管理のために生成された各種コマンド(ソフトウェアセル)の、ネットワーク2に接続されている他の情報処理装置101への送信を制御するとともに、通信部16を介して、他の情報処理装置101から送信された温度管理情報、または、温度管理のための各種コマンド(ソフトウェアセル)などの、ネットワーク2に接続されている他の情報処理装置101からの受信を制御する。
温度異常対応処理制御部252は、自分自身の温度情報取得部164により取得された情報を基に、温度上昇検出部168により温度異常の発生が検出されて、割り込み制御部165により割り込み処理が実行された場合、ネットワーク2に接続されている、他の情報処理装置101の全てに対して、現在実行中の論理スレッドに対応する処理の移動または高官を要求するために、図30に示される、サブプロセッサプログラム移動要求コマンドを生成し、温度管理情報送受信制御部251を制御して、生成したコマンドを送信させる。また、温度異常対応処理制御部252は、温度管理情報送受信制御部251が、ネットワーク2に接続されている、他の情報処理装置101から、図30に示される、サブプロセッサプログラム移動要求コマンドを受信した場合、温度管理テーブル233に記憶されている温度管理テーブルを基に、図31に示されるサブプロセッサプログラム移動返信コマンドを生成し、温度管理情報送受信制御部251を制御して、生成したサブプロセッサプログラム移動返信コマンドを送信させる。
サブプロセッサプログラム移動要求コマンドには、温度異常が発生したサブプロセッサにおいて実行されている処理(スレッド)によるサブプロセッサ使用率と、ローカルストレージ容量が記載されている。
また、サブプロセッサプログラム移動返信コマンドには、サブプロセッサプログラムの移動要求を受けるか否かを示す情報(移動がOKか、交換ならOKか、または、いずれもNGか)と、サブプロセッサプログラムの移動要求を受ける場合には、サブプロセッサプログラムの移動要求を受けるサブプロセッサIDとが含まれる。温度異常対応処理制御部252は、サブプロセッサプログラムの移動要求を受けるか、交換を受けるか、または、いずれも拒否するかを、サブプロセッサプログラム移動要求コマンドに記載されている、温度異常が発生したサブプロセッサにおいて実行されている処理(スレッド)によるサブプロセッサ使用率、および、ローカルストレージ容量の情報と、自分自身の温度管理テーブル233に記憶されている温度管理テーブルとを基に判断する。
温度管理テーブル233は、図25を用いて説明した場合と同様に、自分自身がマスタ装置であるかスレーブ装置であるかにかかわらず、自分自身の温度情報取得部164により取得された情報を基に更新される自分自身の温度管理テーブルを記憶する。
次に、図32および図33のフローチャートを参照して、第2の実施の形態の第3のパターンにおける動作を説明する。第2の実施の形態においても、アプリケーションプログラム実行処理は、図14を用いて説明した第1の実施の形態における場合と、基本的に同様であるので、その説明は省略する。
図32のフローチャートを参照して、温度情報管理処理2について説明する。
ステップS211乃至ステップS214において、図15のステップS21乃至ステップS24と基本的に同様の処理が実行される。すなわち、タイマ割り込みが入ったと判断された場合、温度情報取得部164は、温度検出部121のそれぞれから、温度情報を取得し、温度管理テーブル233を更新する。そして、温度上昇検出部168は、温度管理テーブル233を参照し、温度情報に異常値があるか否かを判断する。
ステップS214において、温度情報に異常値がないと判断された場合、ステップS215において、温度異常対応処理制御部252は、温度管理情報送受信制御部251が、ネットワーク2に接続されている、他の情報処理装置101から、図30を用いて説明したサブプロセッサプログラム移動要求コマンドを受信したか否かを判断する。ステップS215において、他の情報処理装置101からサブプロセッサプログラム移動要求コマンドを受信していないと判断された場合、処理は、ステップS211に戻り、それ以降の処理が繰り返される。
ステップS215において、他の情報処理装置101からサブプロセッサプログラム移動要求コマンドを受信したと判断された場合、ステップS216において、温度異常対応処理制御部252は、受信したサブプロセッサプログラム移動要求コマンドに記載されている、温度異常が発生したサブプロセッサにおいて実行されている処理(スレッド)によるサブプロセッサ使用率と、ローカルストレージ容量と、温度管理テーブル233に記憶されている自分自身のサブプロセッサ43−1乃至サブプロセッサ43-8の動作状態を示す情報、ヒートシンク141、メインプロセッサ42、および、サブプロセッサ43−1乃至サブプロセッサ43−8における最新の温度検出結果、並びに、チップ内のサブプロセッサの配置情報を基に、サブプロセッサプログラムの移動要求を受けるか否かを決定して、図31に示される温度情報返信コマンドを生成し、温度管理情報送受信制御部251を制御して、生成した温度情報返信コマンドを送信させ、処理は、ステップS211に戻り、それ以降の処理が繰り返される。
ステップS214において、温度情報に異常値があったと判断された場合、ステップS217において、温度上昇検出部168は、割り込み制御部165に、異常な温度上昇が検出されたことを通知し、演算処理部161および温度異常対応処理制御部252に割り込みをかけさせる。割り込み制御部165は、温度異常対応処理制御部252および演算処理部161に対して、割り込みをかけ、演算処理部161により制御されるアプリケーションプログラムの処理を停止させるとともに、温度異常対応処理制御部252に対して異常発生時の処理を開始させる。
ステップS218において、図33を用いて後述する異常発生時の処理4が実行される。
ステップS219において、温度異常対応処理制御部252は、ステップS218において実行された異常発生時の処理4に基づいて、論理スレッド管理処理部217を制御し、必要に応じて、論理スレッド管理に関するテーブルを更新させる。
ステップS220において、割り込み制御部165は、演算処理部161により制御されるアプリケーションプログラムの処理に対する割り込みを解除し、処理は、ステップS211に戻り、それ以降の処理が繰り返される。
このような処理により、ネットワーク2に接続されている情報処理装置101のそれぞれが、マスタ措置であるかスレーブ装置であるかにかかわらず、自分自身の温度検出部121のそれぞれにより検出された温度情報を基に更新された温度管理テーブルを基に、自分自身の温度異常を検出し、異常発生時には、割り込み処理が実行され、後述する異常発生時の処理4が実行される。また、ネットワーク2に接続されている他の情報処理装置から、図30に示されるサブプロセッサプログラム移動要求コマンドが受信された場合、図31に示される温度情報返信コマンドが生成されて、要求元の情報処理装置101に送信される。
次に、図33のフローチャートを参照して、図32のステップS218において実行される異常発生時の処理4について説明する。
ステップS231において、温度異常対応処理制御部252は、温度管理テーブル233を参照し、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であるか否か、換言すれば、予め設定されている上限温度を超えた温度検出結果を得たのは、温度検出部121-9または温度検出部121−10のうちのいずれかであるか否かを判断する。ステップS231において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であると判断された場合、処理は、後述するステップS245に進む。
ステップS231において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111ではない、すなわち、サブプロセッサ43のうちのいずれかであると判断された場合、ステップS232において、温度異常対応処理制御部252は、図30を用いて説明したサブプロセッサプログラム移動要求コマンドを生成し、温度管理情報送受信制御部251を制御して、ネットワーク2に接続されている他の情報処理装置101の全てに対して、生成したコマンドを送信させる。温度管理情報送受信制御部251は、サブプロセッサプログラム移動要求コマンドを、通信部16およびネットワーク2を介して、ネットワーク2に接続されている、他の情報処理装置101の全てに送信する。
ステップS233において、温度管理情報送受信制御部251は、図31に示されるサブプロセッサプログラム移動要求コマンドを受信し、温度異常対応処理制御部252に供給する。
ステップS234において、温度異常対応処理制御部252は、ステップS233において受信された温度情報返信コマンドを基に、温度の異常が発生したサブプロセッサ43の処理の移動が可能であるか否かを判断する。
ステップS234において、処理の移動が可能であると判断された場合、ステップS235乃至ステップS238において、図23のステップS93乃至ステップS96と基本的に同様の処理が実行される。すなわち、温度管理テーブル233が参照されて、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、処理の移動先のサブプロセッサ43が選択され、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、温度上限値を超えたサブプロセッサ43の動作が停止され、退避されたコンテキストが移動先のサブプロセッサにリストアされる。
ステップS238の処理の終了後、処理は、図32のステップS218に戻り、ステップS219に進む。
ステップS234において、処理の移動が可能ではないと判断された場合、ステップS239乃至ステップS244において、図23のステップS97乃至ステップS102と基本的に同様の処理が実行される。すなわち、温度管理テーブル233が参照されて、ネットワーク2に接続されている情報処理装置101の情報処理コントローラ111のサブプロセッサ43の中から、処理の交換先のサブプロセッサ43が選択され、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、温度上限値を超えたサブプロセッサ43の動作が停止される。
そして、処理の交換先として選択されたサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、処理の交換先として選択されたサブプロセッサ43の動作が停止され、退避された2つのサブプロセッサ43のコンテキストが、交換されてリストアされる。
ステップS244の処理の終了後、処理は、図32のステップS218に戻り、ステップS219に進む。
ステップS231において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ111であると判断された場合、ステップS245およびステップS246において、図16のステップS53およびステップS54と基本的に同様の処理が実行される。すなわち、論理スレッド管理処理部217が制御されて、演算処理部161により実行されているアプリケーションプログラムが一時停止され、常時動作する常駐プログラムなどが実行する一部の必要な処理を除いて、メインプロセッサ42の処理が一時中断され、温度管理テーブル233が参照されて、温度状態が正常に戻ったか否かが判断され、温度状態が正常に戻っていないと判断された場合、温度状態が正常に戻ったと判断されるまで、ステップS246の処理が繰り返される。
ステップS246において、温度状態が正常に戻ったと判断された場合、処理は、図32のステップS218に戻り、ステップS219に進む。
このような処理により、温度異常が発生した場合、サブプロセッサプログラム移動要求コマンドが送信され、その返信コマンドが受信され、温度異常の発生箇所、ネットワーク2に接続されているそれぞれの情報処理コントローラ111のそのときの動作、および、それぞれのプロセッサの温度検出値に基づいて、処理が停止されるか、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、処理の移動先または交換先が選択されるようになされている。
図29乃至図33を用いて説明した処理により、メインプロセッサ42、および、それぞれのサブプロセッサ43に温度検出部121が設けられている情報処理コントローラ111を有する情報処理装置101が、複数、ネットワーク2に接続されている第2の実施の形態において、第3のパターンの温度情報、および、処理の移動または交換の制御を用いて、実行中の処理を停止させるのを最小限に抑えつつ、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
また、図34に示されるように、1つの情報処理装置281−1に、複数の情報処理コントローラ111−1乃至情報処理コントローラ111−p(pは正の整数)が設けられている場合、通信部16およびネットワーク2を介して、複数の情報処理コントローラ111が授受していた各種情報を、バス14を介して授受するようにすることにより、第2の実施の形態における場合と同様にして、本発明が適用可能であることは言うまでもない。
このとき、1つの情報処理装置281−1に備えられている、複数の情報処理コントローラ111−1乃至情報処理コントローラ111−pのいずれかが、情報処理装置281−1内のマスタとして動作し、他の情報処理コントローラが、スレーブとして動作するようになされる。そして、上述した第2の実施の形態の第1乃至第3のパターンのいずれかと同様の処理が用いられて、複数の情報処理コントローラ111−1乃至情報処理コントローラ111−pのいずれかにおける温度異常の発生が検出されて、バス14に接続されているそれぞれの情報処理コントローラ111のそのときの動作、および、それぞれのプロセッサの温度検出値に基づいて、処理が停止されるか、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、処理の移動先または交換先が選択されるようにすることができるようになされている。
更に、情報処理装置281−1がネットワーク2に接続され、ネットワーク2に、情報処理装置281−1と同様の構成を有する情報処理装置281−2や、上述した複数の情報処理装置101(図34においては、情報処理装置101−1および情報処理装置101−2)が接続されている場合、情報処理装置281−1の情報処理コントローラ111−1乃至情報処理コントローラ111−pのいずれかにおける温度異常の発生が検出されたが、バス14に接続されているそれぞれの情報処理コントローラ111に処理の移動先または交換先が見つからなかった場合、上述した第2の実施の形態の第1乃至第3のパターンのいずれかと同様の処理が用いられて、ネットワーク2を介して接続されている情報処理装置281−2や、上述した複数の情報処理装置101に含まれるサブプロセッサ43のうちのいずれかから、処理の移動先または交換先が選択されるようにしてもよい。
また、本発明を適用した情報処理コントローラは、温度センサなどによる温度検出部を設け、正常動作可能な温度範囲内で動作するよう管理するのみならず、情報処理コントローラに供給される電力量を監視し、異常な電力量が1つの情報処理コントローラで消費されることを防止することにより、素子の劣化を防ぐとともに信頼性の高い情報処を実現することができる。更に、本発明を適用した情報処理コントローラは、1つまたは複数の情報処理装置内のサブプロセッサ間で、消費電力量の増加に応じた処理の移動、または、交換を行うことにより、素子の破壊や処理速度の低下を防ぐようにすることができる。
図35乃至図52を用いて、本発明を適用した情報処理装置の情報処理コントローラにおいて、プロセッサの消費電力量の増加に応じた分散処理を実現する場合における、第3の実施の形態について説明する。
図35は、情報処理コントローラの消費電力を測定する電力測定部が設けられ、情報処理コントローラに、電源部19の状態を取得し、電力測定部の測定結果を取得する電力管理処理部が設けられている情報処理装置301−1の構成を示すブロック図である。
なお、図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図35に示される情報処理装置301−1は、情報処理コントローラ11に代わって、電源部19の状態を取得し、電力測定部321の測定結果を取得する電力管理処理部331が設けられている情報処理コントローラ311が備えられ、1チップで構成されている情報処理コントローラ311の消費電力を測定する電力測定部321が新たに設けられている以外は、基本的に、図1を用いて説明した情報処理装置1と同様の構成を有している。
また、ネットワーク2に接続されている情報処理装置301−2乃至情報処理装置301−nは、基本的に、情報処理装置301−1と同様の構成を有するものであるので、その説明は省略する。以下、情報処理装置301−1乃至情報処理装置301−nを個々に区別する必要のないとき、単に情報処理装置301と称する。
図36を用いて、同期整流方式の電力測定部321の構成について説明する。出力インダクタの直流抵抗Rdcは、設計時にあらかじめ定められる有限の値であるので、出力インダクタ両端の電位差Vdropを、電圧計測回路341により計測することで、情報処理コントローラ311に供給される電流値Ioutを知ることができる。電流値Ioutは電源部19の出力に接続された負荷となる装置である情報処理コントローラ311の消費電流に相当し、出力インダクタの直流抵抗Rdcは通常電源回路出力端から見た負荷インピーダンスに対して十分小さな値であり、消費電力は(負荷インピーダンス)×(消費電流)の2乗で計算されることから、出力インダクタ両端の電位差Vdropを、電圧計測回路341により計測することで、情報処理コントローラ311の消費電力を間接的に監視することが可能となる。
図37に、消費電力量を用いて分散処理の割り当ての制御を行う、第3の実施の形態の情報処理コントローラ311によって実行されるソフトウェアの構成を示す。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前においては、情報処理コントローラ311に接続される記録部13に記録されているものである。
なお、図8における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、第3の実施の形態における情報処理コントローラ311のメインメモリ12が記憶するソフトウェアの構成は、新たに、制御プログラムに、電力管理プログラムが追加されている以外は、基本的に、図8を用いて説明した場合と同様である。また、電力管理プログラムは、情報処理装置301の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
電力管理プログラムは、情報処理装置301の電力測定部321により測定される電力情報を収集し、電力管理処理部331により管理するとともに、これらの電力情報に基づいて、メインプロセッサ42により実行される処理の制御、および、サブプロセッサ43-1乃至サブプロセッサ43-8において必要に応じて実行される、処理の移動または交換を制御するが、更に、ネットワーク2を介して接続されている他の情報処理装置301と電力情報を交換して、メインプロセッサ42により実行される処理の制御、および、サブプロセッサ43-1乃至サブプロセッサ43-8において必要に応じて実行される、処理の移動または交換を制御する。
ネットワーク2を介して接続されている他の情報処理装置301との電力情報、および、処理の移動または交換の制御には、3つのパターンがある。
第1のパターンは、例えば、情報処理装置301−1がマスタ装置である場合、情報処理装置301−1が、自分自身の電力管理テーブルのみならず、ネットワーク2に接続されているスレーブ装置である情報処理装置301-2乃至情報処理301-nのそれぞれの電力管理テーブルを管理するものである。すなわち、スレーブ装置である情報処理装置301-2乃至情報処理301-nは、所定の時間ごとに更新された最新の電力管理テーブルを、マスタ装置である情報処理装置301-1に随時送信するようになされている。そして、マスタ装置である情報処理装置301−1は、ネットワーク2に接続されている情報処理装置301−1乃至情報処理301-nの全ての電力情報を監視し、情報処理装置301−1乃至情報処理301-nのうちのいずれかにおいて、消費電力量の異常が検出された場合、例えば、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311に含まれる全てのサブプロセッサ43から、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
第2のパターンは、それぞれの情報処理装置301が、自分自身の電力管理テーブルを基に電力情報を監視し、消費電力量の異常を検出した場合、ネットワーク2に接続されている、他の情報処理装置301の全てに対して、電力情報の送信を要求するコマンドを送信するものである。すなわち、消費電力量の異常を検出していない状態の情報処理装置301は、他の情報処理装置301から、電力情報の送信を要求するコマンドを受信したとき、自分自身の電力管理テーブルを基に、図39に示される電力情報返信コマンドを生成して、電力情報要求コマンドの送信元の情報処理装置301に、生成された電力情報を返信するコマンドを送信する。
電力情報返信コマンドには、ACを電源としているときの消費電力上限、バッテリを電源としているときの消費電力上限、電池を電源としているときの消費電力上限、AC,バッテリ、電池などのうち、いずれの電源が接続されているかを示す電源接続情報、および、現在の処理における消費電力の値などの情報が含まれている。AC電源を電源としているときの消費電力上限は、AC電源使用時に正常な動作を行うために要求される消費電力の上限値であり、情報処理装置の設計時に、予め設定されるものである。AC電源時の消費電力上限は、正常かつ効率的な動作を行うために望ましい消費電力上限値であってもよい。バッテリを電源としているときの消費電力上限、および、電池を電源としているときの消費電力上限についても同様である。また、電源接続情報は、情報処理装置301の設計時にあらかじめ設定される場合もあるし、情報処理装置301が複数の電源ソースに対応している場合には、適宜、変化することもあり得る。現在の消費電力は、電力測定部321により測定された消費電力であり、当然、情報処理装置の動作状況によって変動する値である。
そして、電力情報を返信するコマンドを受信した情報処理装置301は、ネットワーク2に接続されている全ての情報処理装置301の情報処理コントローラ311に含まれる全てのサブプロセッサ43から、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
第3のパターンは、それぞれの情報処理装置301が、自分自身の電力管理テーブルを基に電力情報を監視し、消費電力量の異常を検出した場合、ネットワーク2に接続されている、他の情報処理装置301の全てに対して、サブプロセッサプログラムの移動を要求するコマンドを送信するものである。すなわち、消費電力量の異常を検出していない状態の情報処理装置301は、他の情報処理装置301から、サブプロセッサプログラムの移動を要求するコマンドを受信したとき、自分自身の電力管理テーブルを基に、サブプロセッサプログラムの移動先となることが可能か否かを示す返信コマンドを生成し、サブプロセッサプログラムの移動を要求するコマンドの送信元の情報処理装置301に、生成した返信コマンドを送信する。そして、返信コマンドを受信した情報処理装置301は、返信コマンドを基に、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
図38に、第3の実施の形態の第1のパターンにおける情報処理コントローラ311が実行可能な機能を説明するための機能ブロック図を示す。なお、図21における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図38に示される、第3の実施の形態の第1のパターンにおける情報処理コントローラ311のうち、メインプロセッサ42が実行可能な機能においては、温度異常対応処理制御部216に代わって、電力異常対応処理制御部356が設けられ、論理スレッド管理処理部217に代わって、論理スレッド管理処理部357が設けられ、温度管理情報送受信制御部214に代わって、電力管理情報送受信制御部358が設けられている以外は、基本的に、図21を用いて説明した場合と同様である。また、第3の実施の形態の第1のパターンにおける情報処理コントローラ311が実行可能な機能においては、図21を用いて説明した温度モニタ処理部122が実現可能な機能に代わって、電力管理処理部331が実行可能な機能である、電力情報取得部351、割り込み制御部352、タイマ353、電力管理テーブル354、および、電力上昇検出部355が設けられている。
電力情報取得部351は、割り込み制御部352の処理により制御されるタイミングで、電力測定部321から供給される電力情報を取得し、電力情報テーブル354を更新する。割り込み制御部352は、タイマ353を参照して、電力情報取得部351に対してタイマ割り込みをかけるとともに、電力上昇検出部355から供給される情報を基に、演算処理部161および電力異常対応処理制御部356に割り込みをかける。
電力管理情報送受信制御部214は、電力異常対応処理制御部356の制御に基づいて、通信部16を介して、電力管理テーブル、または、電力管理のために生成された各種コマンド(ソフトウェアセル)の、ネットワーク2に接続されている他の情報処理装置301への送信を制御するとともに、通信部16を介して、他の情報処理装置301の電力管理テーブル、または、電力管理のための各種コマンド(ソフトウェアセル)などの、ネットワーク2に接続されている他の情報処理装置301からの受信を制御する。以下、電力管理テーブル、または、電力管理のために生成された各種コマンド(ソフトウェアセル)など、ネットワーク2によって接続された複数の情報処理装置301の電力管理と電力管理の結果実行される分散処理の制御にかかわる情報を個々に区別する必要がない場合、電力管理情報と総称するものとする。
電力管理テーブル354は、情報処理コントローラ311における消費電力管理を行うための情報が記載されるテーブルであり、自分自身がスレーブ装置であるとき、自分自身の電力情報を記録し、自分自身がマスタ装置であるとき、ネットワーク2に接続されている全ての情報処理装置301における電力情報を記録している。電力情報は、図40に示されるように、情報処理コントローラ311を識別するためのコントローラID、ACを電源としているときの消費電力上限、バッテリを電源としているときの消費電力上限、電池を電源としているときの消費電力上限、AC電源、バッテリ73、電池などのうち、いずれの電源が接続されているかを示す電源接続情報、および、現在の処理における消費電力の値などの情報を含むものである。AC電源を電源としているときの消費電力上限は、AC電源使用時に正常な動作を行うために要求される消費電力の上限値であり、情報処理装置の設計時に、予め設定されるものである。また、AC電源時の消費電力上限は、正常かつ効率的な動作を行うために望ましい消費電力上限値であってもよい。バッテリ73を電源としているときの消費電力上限、および、電池を電源としているときの消費電力上限についても同様である。また、電源接続情報は、情報処理装置301の設計時にあらかじめ設定される場合もあるし、情報処理装置301が複数の電源ソースに対応している場合には、適宜、変化することもあり得る。現在の消費電力は、電力測定部321により測定された消費電力であり、当然、情報処理装置の動作状況によって変動する値である。
電力上昇検出部355は、自分自身がマスタ装置である場合、電力管理テーブル354を参照し、ネットワーク2に接続されているすべての情報処理装置301の電力検出結果のうち、設定されている上限値を超えたものがあった場合、割り込み制御部352に消費電力量の異常が検出されたことを通知し、演算処理部161および電力異常対応処理制御部356に割り込みをかけさせる。
電力異常対応処理制御部356は、自分自身がマスタ装置であり、割り込み制御部352により割り込みがかかった場合、電力管理テーブル354を参照して、ネットワーク2に接続されている全ての情報処理装置301のうち消費電力量の異常が検出されたのは、いずれの情報処理装置301であるかを検出し、検出結果を基に、論理スレッド管理処理部357を制御して、必要に応じて、処理をいったん停止させたり、サブプロセッサ43のいずれかとの、実行されているスレッドの移動または交換を制御する。
論理スレッド管理処理部357は、演算処理部161により実行されるアプリケーションプログラムに対応する論理スレッドの生成および削除を行うとともに、自分自身がマスタ装置である場合、ネットワーク2に接続されている情報処理装置301のうちのいずれかにおいて実行される分散処理に対応する論理スレッドの状態監視と動作制御を行う。論理スレッド管理処理部357は、自分自身がマスタ装置である場合、ネットワーク2に接続されている全ての情報処理装置301の管理情報が記載されたテーブルと、実行される論理スレッドごとに、論理スレッドの実行に必要な情報が記載されたテーブルを作成し、必要に応じて、テーブルの情報を参照し、更新することにより、論理スレッドの実行を制御する。
また、論理スレッド管理処理部357は、自分自身がマスタ装置である場合、必要に応じて、他の情報処理装置301において実行されているスレッドの処理を制御するためのソフトウェアセルを生成し、通信部16を介して、生成されたソフトウェアセルを送信する。また、更に、論理スレッド管理処理部357は、自分自身がスレーブ装置である場合、通信部16を介して、マスタ装置である情報処理装置301から送信されたソフトウェアセルの供給を受け、ソフトウェアセルの内容に基づいた分散処理をサブプロセッサ43に実行させるとともに、必要に応じて、返信や応答に対応するソフトウェアセルを生成し、通信部16を介して、生成されたソフトウェアセルを送信する。更に、論理スレッド管理処理部357は、自分自身がマスタ装置であるかスレーブ装置であるかにかかわらず、必要に応じて、通信部16により受信された、他の情報処理装置101において実行されたスレッドに関する情報を取得する。
なお、図38において、これらの機能を実現するハードウェアが、上述するとおりではない場合、例えば、メインプロセッサ42により実現される機能のうちの一部が電力管理処理部331により実現されたり、電力管理処理部331により実現される機能のうちの一部がメインプロセッサ42により実現される場合や、これらの機能が、それぞれ異なるハードウェアにより実現される場合なども、本発明は適用可能であることは言うまでもない。
次に、図41乃至図44のフローチャートを参照して、第3の実施の形態の第1のパターンにおける動作を説明する。
図41のフローチャートを参照して、図38に示される第3の実施の形態の情報処理装置301が実行するアプリケーションプログラム実行処理2について説明する。ここでは、電力管理プログラムが、情報処理装置301の主電源が投入されている間は常時動作する常駐プログラムであるものとして説明する。
ステップS301において、演算処理部161は、ユーザにより、アプリケーションプログラムの実行が指令されたか否かを判断する。すなわち、ステップS301において、メインプロセッサ42は、操作入力部15から、バス14およびバス41を介して供給される信号を基に、アプリケーションプログラムの実行が指令されたか否かを判断する。ステップS301において、アプリケーションプログラムの実行が指令されていないと判断された場合、アプリケーションプログラムの実行が指令されたと判断されるまで、ステップS301の処理が繰り返される。
ステップS301において、アプリケーションプログラムの実行が指令されたと判断された場合、ステップS302において、演算処理部161は、論理スレッドのサブプロセッサへの割り当てなどを設定し、論理スレッドの設定情報を論理スレッド管理処理部357に供給する。
ステップS303において、論理スレッド管理処理部357は、論理スレッドが割り当てられたサブプロセッサ43のローカルストレージ51のコード領域187およびデータ領域188に、割り当てられた処理を実行するためのプログラムやデータをロードさせる。
ステップS304において、演算処理部161および論理スレッド管理処理部357は、サブプロセッサ43による処理を含めた、アプリケーションプログラムの実行を制御する。サブプロセッサ43の演算処理部181は、割り当てられた処理を実行する。
ところで、電力管理プログラムは、情報処理装置301の主電源が投入されている間は常時動作する常駐プログラムであるので、ステップS301乃至ステップS304の処理が実行されている間も、処理が実行されている。電力管理プログラムによるマスタ装置の電力情報管理処理については、図42のフローチャートを用いて、スレーブ装置の電力情報管理処理については、図44のフローチャートを参照して、それぞれ後述する。
ステップS305において、演算処理部161は、割り込み制御部352により、消費電力量の異常発生のための割り込みがあるか否かを判断する。ステップS5において、消費電力量の異常発生のための割り込みがないと判断された場合、処理は、後述するステップS308に進む。
ステップS305において、消費電力量の異常発生のための割り込みがあったと判断された場合、割り込みにより実行中の処理が停止されるので、ステップS306において、演算処理部161は、割り込みが解除されたか否かを判断する。ステップS306において、割り込みが解除されていないと判断された場合、割り込みが解除されたと判断されるまで、ステップS306の処理が繰り返される。
ステップS306において、割り込みが解除されたと判断された場合、ステップS307において、演算処理部161は、必要に応じて、論理スレッドの設定情報を、再度、論理スレッド管理処理部357に供給するので、論理スレッド管理処理部357は、論理スレッド管理に関するテーブルを更新する。
ステップS305において、消費電力量の異常発生のための割り込みがないと判断された場合、または、ステップS307の処理の終了後、ステップS308において、演算処理部161は、アプリケーションプログラムの処理が終了されたか否かを判断する。ステップS308において、アプリケーションプログラムの処理が終了されていないと判断された場合、処理は、ステップS304に戻り、それ以降の処理が繰り返される。ステップS308において、アプリケーションプログラムの処理が終了されたと判断された場合、処理が終了される。
このような処理により、メインプロセッサ42により実行されるアプリケーションプログラムに対応する分散処理が、サブプロセッサ43のうちの選択されたものにより実行される。
次に、図42のフローチャートを参照して、マスタ装置の電力情報管理処理について説明する。
ステップS321において、電力情報取得部351は、割り込み制御部352から、タイマ割り込みが入ったか否かを判断する。
ステップS321において、タイマ割り込みが入っていないと判断された場合、ステップS322において、電力管理情報送受信制御部358は、ネットワーク2に接続されている他の情報処理装置301から、電力管理テーブルを受信したか否かを判断する。ステップS322において、電力管理テーブルを受信していないと判断された場合、処理は、ステップS321に戻り、それ以降の処理が繰り返される。ステップS322において、電力管理テーブルを受信したと判断された場合、処理は、後述するステップS324に進む。
ステップS321において、タイマ割り込みが入ったと判断された場合、ステップS323において、電力情報取得部351は、電力測定部321から、電力の測定結果を示す情報を取得する。
ステップS322において、電力管理テーブルを受信したと判断された場合、または、ステップS323の処理の終了後、ステップS324において、電力情報取得部351は、ステップS322において受信された他の情報処理装置301の電力管理テーブル、または、ステップS323において取得された自分自身の電力情報を基に、電力管理テーブル354を更新する。
ステップS325において、電力上昇検出部355は、電力管理テーブル354を参照し、電力情報に異常値があるか否か、すなわち、ネットワーク2に接続されている情報処理装置301に設けられている電力測定部321により検出された電力検出結果のうち、予め設定されている上限値を超えたものがあるか否かを判断する。ステップS325において、電力情報に異常値がないと判断された場合、処理は、ステップS321に戻り、それ以降の処理が繰り返される。
ステップS325において、電力情報に異常値があったと判断された場合、ステップS326において、電力上昇検出部355は、割り込み制御部352に、異常な電力の上昇が検出されたことを通知し、演算処理部161および電力異常対応処理制御部356に割り込みをかけさせる。割り込み制御部352は、電力異常対応処理制御部356および演算処理部161に対して、割り込みをかけ、演算処理部161により制御されるアプリケーションプログラムの処理を停止させるとともに、電力異常対応処理制御部356に対して異常発生時の処理を開始させる。
ステップS327において、図43を用いて後述する異常発生時の処理5が実行される。
ステップS328において、電力異常対応処理制御部356は、ステップS327において実行された異常発生時の処理5に基づいて、論理スレッド管理処理部357を制御し、必要に応じて、論理スレッド管理に関するテーブルを更新させる。
ステップS329において、割り込み制御部352は、演算処理部161により制御されるアプリケーションプログラムの処理に対する割り込みを解除し、処理は、ステップS321に戻り、それ以降の処理が繰り返される。
このような処理により、ネットワーク2に接続されている、マスタ装置である情報処理装置301において、ネットワーク2に接続されているすべての情報処理装置301の電力測定部321により検出された電力情報を基に更新された電力管理テーブルを取得して、電力管理テーブル354として管理することができるようになされ、マスタ装置において記憶されている電力管理テーブル354を基に、異常発生時の割り込み処理が実行されるか否かが判断される。
次に、図43のフローチャートを参照して、図42のステップS327において実行される異常発生時の処理5について説明する。
ステップS341において、電力異常対応処理制御部356は、電力管理テーブル354を参照し、消費電力量の異常が発生した情報処理コントローラ311に含まれる全てのサブプロセッサ43の処理の移動が可能であるか否かを判断する。ステップS341において、消費電力量の異常が発生した情報処理コントローラ311に含まれる全てのサブプロセッサ43の処理の移動が可能ではないと判断された場合、処理は、後述するステップS346に進む。
ステップS341において、消費電力量の異常が発生した情報処理コントローラ311に含まれる全てのサブプロセッサ43の処理の移動が可能であると判断された場合、ステップS342において、電力異常対応処理制御部356は、電力管理テーブル354を参照し、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311の中から、処理の移動先の情報処理コントローラ311を選択し、選択結果を、論理スレッド管理処理部357に供給する。具体的には、電力異常対応処理制御部356は、電力管理テーブル354を参照して、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311のうち、現在動作中のサブプロセッサ43の処理を実行可能な情報処理コントローラ311であって、現在最も電力消費量の少ない情報処理コントローラ311を選択するようになされている。また、この条件を満たす情報処理コントローラ311が複数ある場合、電力異常対応処理制御部356は、例えば、プロセッサIDとして割り当てられている番号が最も若いものを選択するようにしてもよい。また、電力異常対応処理制御部356は、バッテリまたは電池で動作している他の情報処理装置301の情報処理コントローラ311よりも、AC電源で動作している他の情報処理装置301の情報処理コントローラ311を、優先的に処理の移動先として選択するようにしてもよい。
また、処理の移動先として選択された情報処理コントローラ311において、いずれのサブプロセッサ43に分散処理が割り当てられるかは、処理の移動先として選択された情報処理コントローラ311のメインプロセッサ42の論理スレッド管理処理部357が決定する。
ステップS343において、論理スレッド管理処理部357は、電力上限値を超えた情報処理コントローラ311により実行されていた処理に関するコンテキストを退避させる。
電力上限値を超えた情報処理コントローラ311がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部357が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、電力上限値を超えた情報処理コントローラ311がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置301の論理スレッド管理処理部357が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS344において、論理スレッド管理処理部357は、電力上限値を超えた情報処理コントローラ311のサブプロセッサ43の動作を停止させる。
ステップS345において、論理スレッド管理処理部357は、移動先の情報処理コントローラ311のサブプロセッサとして選択されたサブプロセッサ43に、ステップS343の処理により退避されたコンテキストをリストアする。すなわち、論理スレッド管理処理部357は、処理の移動先のサブプロセッサ43がマスタ装置内のサブプロセッサ43であるとき、バス41を介して、移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストを供給し、処理の移動先のサブプロセッサ43がスレーブ装置内のサブプロセッサ43であるとき、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、スレーブ装置として動作している情報処理装置301に含まれる移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストを供給する。移動先のサブプロセッサとして選択されたサブプロセッサ43においては、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、図42のステップS327に戻り、ステップS328に進む。
ステップS341において、消費電力量の異常が発生した情報処理コントローラ311に含まれる全てのサブプロセッサ43の処理の移動が可能ではないと判断された場合、ステップS346において、電力異常対応処理制御部356は、電力管理テーブル354を参照して、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311のサブプロセッサ43の中から、処理の交換先となる情報処理コントローラ311のサブプロセッサ43を選択し、選択結果を、論理スレッド管理処理部357に供給する。具体的には、電力異常対応処理制御部356は、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311の中から、電力測定結果が最も低いものを交換先の情報処理コントローラ311として優先的に選択したり、または、バッテリまたは電池で動作している他の情報処理装置301の情報処理コントローラ311よりも、AC電源で動作している他の情報処理装置301の情報処理コントローラ311を、優先的に処理の交換先として選択するようになされており、この条件を満たす情報処理コントローラ311が複数ある場合、プロセッサIDとして割り当てられている番号が最も若いものを選択するようになされている。
また、処理に必要な、共通に使用するプログラムとモデルデータが、分散処理が割り当てられていないサブプロセッサ43のローカルストレージ51のうちのいずれかに、予め供給されている場合、共通に使用するプログラムとモデルデータがローカルストレージ51に保存されているサブプロセッサ43を有する情報処理コントローラ311が優先して選択されるようにしてもよい。
また、処理の交換先として選択された情報処理コントローラ311において、いずれのサブプロセッサ43に分散処理が割り当てられるかは、処理の交換先として選択された情報処理コントローラ311のメインプロセッサ42の論理スレッド管理処理部357が決定する。
ステップS347において、論理スレッド管理処理部357は、消費電力量の異常が発生した情報処理コントローラ311のサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。
消費電力量の異常が発生した情報処理コントローラ311がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部357が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、消費電力量の異常が発生した情報処理コントローラ311がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置301の論理スレッド管理処理部357が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS348において、論理スレッド管理処理部357は、消費電力量の異常が発生した情報処理コントローラ311のサブプロセッサ43の動作を停止させる。
ステップS349において、論理スレッド管理処理部357は、処理の交換先として選択された情報処理コントローラ311のサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。
処理の交換先として選択された情報処理コントローラ311がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部357が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、処理の交換先として選択された情報処理コントローラ311がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置301の論理スレッド管理処理部357が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS350において、論理スレッド管理処理部357は、処理の交換先として選択された情報処理コントローラ311のサブプロセッサ43の動作を停止させる。
ステップS351において、論理スレッド管理処理部357は、退避された2つの情報処理コントローラ311のサブプロセッサ43のコンテキストを交換してリストアさせる。すなわち、論理スレッド管理処理部357は、処理の交換先として選択された情報処理コントローラ311のサブプロセッサ43に、ステップS347の処理により退避されたコンテキストをリストアするとともに、電力上限値を超えた情報処理コントローラ311のサブプロセッサ43に、ステップS349の処理により退避されたコンテキストをリストアする。すなわち、論理スレッド管理処理部357は、電力上限値を超えた情報処理コントローラ311、または、処理の移動先の情報処理コントローラ311がマスタ装置内の情報処理コントローラ311であるとき、バス41を介して、移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストのうち対応するものを供給し、電力上限値を越えた情報処理コントローラ311、または、処理の移動先の情報処理コントローラ311がスレーブ装置内の情報処理コントローラ311であるとき、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、スレーブ装置として動作している情報処理装置301に含まれる移動先の情報処理コントローラ311のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストのうち対応するものを供給する。それぞれの情報処理コントローラ311のサブプロセッサ43には、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、図42のステップS327に戻り、ステップS78に進む。
このような処理により、消費電力量の異常の発生箇所と、ネットワーク2に接続されている情報処理装置301のそれぞれの情報処理コントローラ311における動作、および、電力測定値に基づいて、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、処理の移動先または交換先が選択されるようになされている。
次に、図44のフローチャートを参照して、図42を用いて説明したマスタ装置の電力情報管理処理と並行して実行される、スレーブ装置の電力情報管理処理について説明する。
ステップS381において、スレーブ装置として動作している情報処理装置301の電力情報取得部351は、割り込み制御部352から、タイマ割り込みが入ったか否かを判断する。ステップS381において、タイマ割り込みが入っていないと判断された場合、タイマ割り込みが入ったと判断されるまで、ステップS381の処理が繰り返される。
ステップS381において、タイマ割り込みが入ったと判断された場合、ステップS382において、電力情報取得部351は、電力測定部321のそれぞれから、電力情報を取得する。
ステップS383において、電力情報取得部351は、ステップS382において取得された電力情報を基に、電力管理テーブル354を更新する。
ステップS384において、電力管理情報送受信制御部358は、ステップS383において更新された電力管理テーブル354を、通信部16およびネットワーク2を介して、マスタ装置として動作している情報処理装置301に送信し、処理は、ステップS381に戻り、それ以降の処理が繰り返される。
このような処理により、スレーブ装置の電力管理テーブルがマスタ装置に送信される。送信されたそれぞれのスレーブ装置の電力管理テーブルは、マスタ装置において管理される。
図41乃至図44を用いて説明した処理により、情報処理コントローラ311の消費電力を測定する電力測定部321が設けられている情報処理装置301が、複数、ネットワーク2に接続されている第3の実施の形態において、第1のパターンの電力情報、および、処理の移動または交換の制御を用いて、実行中の処理を停止させるのを最小限に抑えつつ、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
次に、図45に、第3の実施の形態の第2のパターンにおける情報処理コントローラ311が実行可能な機能を説明するための機能ブロック図を示す。なお、図38における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図45に示される、第3の実施の形態の第2のパターンにおける情報処理コントローラ311のうち、メインプロセッサ42が実行可能な機能においては、記憶部213、電力管理情報送受信制御部358、および、電力異常対応処理制御部356に代わって、記憶部371、電力管理情報送受信制御部372、および、電力異常対応処理制御部374が設けられている以外は、基本的に、図38を用いて説明した場合と同様であり、電力管理処理部331が実現可能な機能は、電力管理テーブル354に代わって、電力管理テーブル373が設けられている以外は、図38を用いて説明した場合と同様である。
なお、図45において、これらの機能を実現するハードウェアが、上述するとおりではない場合、例えば、メインプロセッサ42により実現される機能のうちの一部が電力管理処理部331により実現されたり、電力管理処理部331により実現される機能のうちの一部がメインプロセッサ42により実現される場合や、これらの機能が、それぞれ異なるハードウェアにより実現される場合なども、本発明は適用可能であることは言うまでもない。
記憶部371は、メインメモリ12のうちの少なくとも一部の記憶領域に対応し、ネットワーク2に接続されている情報処理装置301の装置情報、または、装置情報のうちの一部の情報を記憶するとともに、電力管理情報送受信制御部372が受信した、他の情報処理装置301における電力管理テーブルを一時記憶する。電力管理情報送受信制御部372は、電力異常対応処理制御部374の制御に基づいて、通信部16を介して、電力管理情報、または、電力管理のために生成された各種コマンド(ソフトウェアセル)の、ネットワーク2に接続されている他の情報処理装置301への送信を制御するとともに、通信部16を介して、他の情報処理装置301から送信された電力管理情報、または、電力管理のための各種コマンド(ソフトウェアセル)などの、ネットワーク2に接続されている他の情報処理装置301からの受信を制御する。
電力異常対応処理制御部374は、自分自身の電力情報取得部351により取得された情報を基に、電力上昇検出部355により電力異常対応処理の発生が検出されて、割り込み制御部352により割り込み処理が実行された場合、ネットワーク2に接続されている、他の情報処理装置301の全てに対して、電力管理情報の送信を要求するコマンドを生成し、電力管理情報送受信制御部372を制御して、生成したコマンドを送信させる。また、電力異常対応処理制御部374は、電力管理情報送受信制御部372が、ネットワーク2に接続されている、他の情報処理装置301から電力管理情報の送信を要求するコマンドを受信した場合、電力管理テーブル373に記憶されている電力管理テーブルを基に、図39を用いて説明した電力情報返信コマンドを生成し、電力管理情報送受信制御部372を制御して、生成した電力情報返信コマンドを送信させる。
電力管理テーブル373は、自分自身がマスタ装置であるかスレーブ装置であるかにかかわらず、自分自身の電力情報取得部351により取得された情報を基に更新される自分自身の電力管理テーブルを記憶する。
次に、図46および図47のフローチャートを参照して、第3の実施の形態の第2のパターンにおける動作を説明する。第2のパターンにおいても、アプリケーションプログラム実行処理は、図41を用いて説明した第1のパターンにおける場合と、基本的に同様であるので、その説明は省略する。
図46のフローチャートを参照して、電力情報管理処理2について説明する。
ステップS401において、電力情報取得部351は、割り込み制御部352から、タイマ割り込みが入ったか否かを判断する。ステップS401において、タイマ割り込みが入っていないと判断された場合、タイマ割り込みが入ったと判断されるまで、ステップS401の処理が繰り返される。
ステップS401において、タイマ割り込みが入ったと判断された場合、ステップS402乃至ステップS404において、図42のステップS323乃至ステップS325と基本的に同様の処理が実行される。すなわち、タイマ割り込みが入ったと判断された場合、電力情報取得部351は、電力測定部321から、電力の測定値を取得し、電力管理テーブル373を更新する。そして、電力上昇検出部355は、電力管理テーブル373を参照し、電力測定値を示す情報に異常値があるか否かを判断する。
ステップS404において、電力測定値を示す情報に異常値がないと判断された場合、ステップS405において、電力異常対応処理制御部374は、電力管理情報送受信制御部372が、ネットワーク2に接続されている、他の情報処理装置301から電力管理情報の送信を要求するコマンドを受信したか否かを判断する。ステップS405において、他の情報処理装置301から電力管理情報の送信を要求するコマンドを受信していないと判断された場合、処理は、ステップS401に戻り、それ以降の処理が繰り返される。
ステップS405において、他の情報処理装置301から電力管理情報の送信を要求するコマンドを受信したと判断された場合、ステップS406において、電力異常対応処理制御部374は、電力管理テーブル373に記憶されている電力管理テーブルを基に、図39を用いて説明した電力情報返信コマンドを生成し、電力管理情報送受信制御部372を制御して、生成した電力情報返信コマンドを送信させ、処理は、ステップS401に戻り、それ以降の処理が繰り返される。
ステップS404において、電力測定値を示す情報に異常値があったと判断された場合、ステップS407において、電力上昇検出部355は、割り込み制御部352に、異常な電力測定値の上昇が検出されたことを通知し、演算処理部161および電力異常対応処理制御部374に割り込みをかけさせる。割り込み制御部352は、電力異常対応処理制御部374および演算処理部161に対して、割り込みをかけ、演算処理部161により制御されるアプリケーションプログラムの処理を停止させるとともに、電力異常対応処理制御部374に対して異常発生時の処理を開始させる。
ステップS408において、図47を用いて後述する異常発生時の処理6が実行される。
ステップS409において、電力異常対応処理制御部374は、ステップS408において実行された異常発生時の処理6に基づいて、論理スレッド管理処理部357を制御し、必要に応じて、論理スレッド管理に関するテーブルを更新させる。
ステップS410において、割り込み制御部352は、演算処理部161により制御されるアプリケーションプログラムの処理に対する割り込みを解除し、処理は、ステップS401に戻り、それ以降の処理が繰り返される。
このような処理により、ネットワーク2に接続されている情報処理装置301のそれぞれが、マスタ措置であるかスレーブ装置であるかにかかわらず、自分自身の電力測定部321のそれぞれにより検出された電力情報を基に更新された電力管理テーブルを基に、自分自身の消費電力の測定値の異常を検出し、異常発生時には、割り込み処理が実行され、後述する異常発生時の処理6が実行される。また、ネットワーク2に接続されている他の情報処理装置から、電力情報の送信要求を受けた場合、図39を用いて説明した電力情報返信コマンドが生成されて、送信要求元の情報処理装置301に送信される。
次に、図47のフローチャートを参照して、図46のステップS408において実行される異常発生時の処理6について説明する。
ステップS431において、電力異常対応処理制御部374は、ネットワーク2に接続されている、他の情報処理装置301の全てに対して、電力管理情報の送信を要求するコマンドを生成し、電力管理情報送受信制御部372を制御して、生成したコマンドを送信させる。電力管理情報送受信制御部372は、電力管理情報の送信を要求するコマンドを、通信部16およびネットワーク2を介して、ネットワーク2に接続されている、他の情報処理装置301の全てに送信する。
ステップS432において、電力管理情報送受信制御部372は、図39を用いて説明した電力情報返信コマンドを受信し、電力異常対応処理制御部374に供給する。
ステップS433において、電力異常対応処理制御部374は、ネットワーク2に接続されている、他の情報処理装置301の全てから送信された電力情報返信コマンドを基に、消費電力値の異常が発生したサブプロセッサ43の処理の移動が可能であるか否かを判断する。
ステップS433において、処理の移動が可能であると判断された場合、ステップS434乃至ステップS437において、図43のステップS342乃至ステップS345と基本的に同様の処理が実行される。すなわち、電力管理テーブル373が参照されて、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311の中から、処理の移動先の情報処理コントローラ311が選択され、消費電力の上限値を超えた情報処理コントローラ311により実行されていた処理に関するコンテキストが退避され、消費電力の上限値を超えた情報処理コントローラ311のサブプロセッサ43の動作が停止され、退避されたコンテキストが移動先の情報処理コントローラ311のサブプロセッサにリストアされる。
ステップS437の処理の終了後、処理は、図46のステップS408に戻り、ステップS409に進む。
ステップS433において、処理の移動が可能ではないと判断された場合、ステップS438乃至ステップS443において、図43のステップS346乃至ステップS351と基本的に同様の処理が実行される。すなわち、電力管理テーブル373が参照されて、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311の中から、処理の交換先の情報処理コントローラ311が選択され、消費電力の上限値を超えた情報処理コントローラ311により実行されていた処理に関するコンテキストが退避され、消費電力の上限値を超えた情報処理コントローラ311のサブプロセッサ43の動作が停止される。
そして、処理の交換先として選択された情報処理コントローラ311のサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、処理の交換先として選択された情報処理コントローラ311のサブプロセッサ43の動作が停止され、退避された2つの情報処理コントローラ311のサブプロセッサ43のコンテキストが、交換されてリストアされる。
ステップS443の処理の終了後、処理は、図46のステップS408に戻り、ステップS409に進む。
このような処理により、消費電力値の異常が発生した情報処理コントローラ311において、ネットワーク2に接続されているそれぞれの情報処理コントローラ311のそのときの動作、および、それぞれのプロセッサの電力測定値に関する情報が取得され、取得された情報に基づいて、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、処理の移動先または交換先が選択されるようになされている。
図45乃至図47を用いて説明した処理により、情報処理コントローラ311に電力測定部321が設けられている情報処理装置301が、複数、ネットワーク2に接続されている第3の実施の形態において、第2のパターンの電力情報、および、処理の移動または交換の制御を用いて、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
次に、図48に、第3の実施の形態の第3のパターンにおける情報処理コントローラ311が実行可能な機能を説明するための機能ブロック図を示す。なお、図38における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図48に示される、第3の実施の形態の第3のパターンにおける情報処理コントローラ311のうち、メインプロセッサ42が実行可能な機能においては、電力管理情報送受信制御部385、および、電力異常対応処理制御部356に代わって、電力管理情報送受信制御部391、および、電力異常対応処理制御部392が設けられている以外は、基本的に、図21を用いて説明した場合と同様であり、電力管理処理部331が実現可能な機能は、温度管理テーブル354に代わって、図45を用いて説明した電力管理テーブル373が設けられている以外は、図38を用いて説明した場合と同様である。
なお、図48において、これらの機能を実現するハードウェアが、上述するとおりではない場合、例えば、メインプロセッサ42により実現される機能のうちの一部が電力管理処理部331により実現されたり、電力管理処理部331により実現される機能のうちの一部がメインプロセッサ42により実現される場合や、これらの機能が、それぞれ異なるハードウェアにより実現される場合なども、本発明は適用可能であることは言うまでもない。
電力管理情報送受信制御部391は、電力異常対応処理制御部392の制御に基づいて、通信部16を介して、電力管理情報、または、電力管理のために生成された各種コマンド(ソフトウェアセル)の、ネットワーク2に接続されている他の情報処理装置301への送信を制御するとともに、通信部16を介して、他の情報処理装置301から送信された電力管理情報、または、電力管理のための各種コマンド(ソフトウェアセル)などの、ネットワーク2に接続されている他の情報処理装置301からの受信を制御する。
電力異常対応処理制御部392は、自分自身の電力情報取得部351により取得された情報を基に、電力上昇検出部355により消費電力量の異常の発生が検出されて、割り込み制御部352により割り込み処理が実行された場合、ネットワーク2に接続されている、他の情報処理装置301の全てに対して、自分自身のサブプロセッサ43において実行されている論理スレッドの移動または交換を要求するサブプロセッサプログラム移動要求コマンドを生成し、電力管理情報送受信制御部391を制御して、生成したコマンドを送信させる。また、電力異常対応処理制御部392は、電力管理情報送受信制御部391が、ネットワーク2に接続されている、他の情報処理装置301から、サブプロセッサプログラム移動要求コマンドを受信した場合、電力管理テーブル373に記憶されている電力管理テーブルを基に、サブプロセッサプログラム移動返信コマンドを生成し、電力管理情報送受信制御部391を制御して、生成したサブプロセッサプログラム移動返信コマンドを送信させる。
サブプロセッサプログラム移動要求コマンドには、消費電力量の異常が発生したサブプロセッサにおいて実行されている処理(スレッド)によるサブプロセッサ使用率と、ローカルストレージ容量が記載されている。
また、サブプロセッサプログラム移動返信コマンドには、サブプロセッサプログラムの移動要求を受けるか否かを示す情報(移動がOKか、交換ならOKか、または、いずれもNGか)と、サブプロセッサプログラムの移動要求を受ける場合には、サブプロセッサプログラムの移動要求を受けるサブプロセッサIDとが含まれる。電力異常対応処理制御部392は、サブプロセッサプログラムの移動要求を受けるか、交換を受けるか、または、いずれも拒否するかを、サブプロセッサプログラム移動要求コマンドに記載されている、消費電力量の異常が発生したサブプロセッサにおいて実行されている処理(スレッド)によるサブプロセッサ使用率、および、ローカルストレージ容量の情報と、自分自身の電力管理テーブル373に記憶されている電力管理テーブルとを基に判断する。
電力管理テーブル373は、自分自身がマスタ装置であるかスレーブ装置であるかにかかわらず、自分自身の電力情報取得部351により取得された情報を基に更新される自分自身の電力管理テーブルを記憶する。
次に、図49および図50のフローチャートを参照して、第3の実施の形態の第3のパターンにおける動作を説明する。第3のパターンにおいても、アプリケーションプログラム実行処理は、図41を用いて説明した第1のパターンにおける場合と、基本的に同様であるので、その説明は省略する。
図49のフローチャートを参照して、電力情報管理処理2について説明する。
ステップS461乃至ステップS464において、図46のステップS401乃至ステップS404と基本的に同様の処理が実行される。すなわち、タイマ割り込みが入ったと判断された場合、電力情報取得部351は、電力測定部321のそれぞれから、電力情報を取得し、電力管理テーブル373を更新する。そして、電力上昇検出部355は、電力管理テーブル373を参照し、電力情報に異常値があるか否かを判断する。
ステップS464において、電力情報に異常値がないと判断された場合、ステップS465において、電力異常対応処理制御部392は、電力管理情報送受信制御部391が、ネットワーク2に接続されている、他の情報処理装置301から、サブプロセッサプログラム移動要求コマンドを受信したか否かを判断する。ステップS465において、他の情報処理装置301からサブプロセッサプログラム移動要求コマンドを受信していないと判断された場合、処理は、ステップS461に戻り、それ以降の処理が繰り返される。
ステップS465において、他の情報処理装置301からサブプロセッサプログラム移動要求コマンドを受信したと判断された場合、ステップS466において、電力異常対応処理制御部392は、受信したサブプロセッサプログラム移動要求コマンドに記載されている、消費電力量の異常が発生したサブプロセッサにおいて実行されている処理(スレッド)によるサブプロセッサ使用率と、ローカルストレージ容量と、電力管理テーブル373に記憶されている自分自身のサブプロセッサ43−1乃至サブプロセッサ43-8の動作状態を示す情報を基に、サブプロセッサプログラムの移動要求を受けるか否かを決定して、電力情報返信コマンドを生成し、電力管理情報送受信制御部391を制御して、生成した電力情報返信コマンドを送信させ、処理は、ステップS461に戻り、それ以降の処理が繰り返される。
ステップS464において、電力情報に異常値があったと判断された場合、ステップS467において、電力上昇検出部355は、割り込み制御部352に、異常な消費電力の上昇が検出されたことを通知し、演算処理部161および電力異常対応処理制御部392に割り込みをかけさせる。割り込み制御部352は、電力異常対応処理制御部392および演算処理部161に対して、割り込みをかけ、演算処理部161により制御されるアプリケーションプログラムの処理を停止させるとともに、電力異常対応処理制御部392に対して異常発生時の処理を開始させる。
ステップS468において、図50を用いて後述する異常発生時の処理7が実行される。
ステップS469において、電力異常対応処理制御部392は、ステップS468において実行された異常発生時の処理7に基づいて、論理スレッド管理処理部357を制御し、必要に応じて、論理スレッド管理に関するテーブルを更新させる。
ステップS470において、割り込み制御部352は、演算処理部161により制御されるアプリケーションプログラムの処理に対する割り込みを解除し、処理は、ステップS461に戻り、それ以降の処理が繰り返される。
このような処理により、ネットワーク2に接続されている情報処理装置301のそれぞれが、マスタ措置であるかスレーブ装置であるかにかかわらず、自分自身の電力測定部321のそれぞれにより検出された電力情報を基に更新された電力管理テーブルを基に、自分自身の電力異常対応処理を検出し、異常発生時には、割り込み処理が実行され、後述する異常発生時の処理7が実行される。また、ネットワーク2に接続されている他の情報処理装置から、サブプロセッサプログラム移動要求コマンドが受信された場合電力情報返信コマンドが生成されて、送信要求元の情報処理装置301に送信される。
次に、図50のフローチャートを参照して、図49のステップS468において実行される異常発生時の処理7について説明する。
ステップS481において、電力異常対応処理制御部392は、電力管理テーブル373を参照して、サブプロセッサプログラム移動要求コマンドを生成し、電力管理情報送受信制御部391を制御して、ネットワーク2に接続されている他の情報処理装置301の全てに対して、生成したコマンドを送信させる。電力管理情報送受信制御部391は、サブプロセッサプログラム移動要求コマンドを、通信部16およびネットワーク2を介して、ネットワーク2に接続されている、他の情報処理装置301の全てに送信する。
ステップS482において、電力管理情報送受信制御部391は、サブプロセッサプログラム移動返信コマンドを受信し、電力異常対応処理制御部392に供給する。
ステップS483において、電力異常対応処理制御部392は、ステップS482において受信された電力情報返信コマンドを基に、消費電力量の異常が発生したサブプロセッサ43の処理の移動が可能であるか否かを判断する。
ステップS483において、処理の移動が可能であると判断された場合、ステップS484乃至ステップS487において、図47のステップS434乃至ステップS437と基本的に同様の処理が実行される。すなわち、電力管理テーブル373が参照されて、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311のサブプロセッサ43の中から、処理の移動先の情報処理コントローラ311が選択され、消費電力の上限値を超えた情報処理コントローラ311のサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、消費電力の上限値を超えた情報処理コントローラ311のサブプロセッサ43の動作が停止され、退避されたコンテキストが移動先の情報処理コントローラ311のサブプロセッサにリストアされる。
ステップS487の処理の終了後、処理は、図49のステップS468に戻り、ステップS469に進む。
ステップS483において、処理の移動が可能ではないと判断された場合、ステップS488乃至ステップS293において、図47のステップS438乃至ステップS443と基本的に同様の処理が実行される。すなわち、電力管理テーブル373が参照されて、ネットワーク2に接続されている情報処理装置301の情報処理コントローラ311のサブプロセッサ43の中から、処理の交換先の情報処理コントローラ311が選択され、消費電力の上限値を超えた情報処理コントローラ311のサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、消費電力の上限値を超えた情報処理コントローラ311のサブプロセッサ43の動作が停止される。
そして、処理の交換先として選択された情報処理コントローラ311のサブプロセッサ43により実行されていた処理に関するコンテキストが退避され、処理の交換先として選択された情報処理コントローラ311のサブプロセッサ43の動作が停止され、退避された2つのサブプロセッサ43のコンテキストが、交換されてリストアされる。
ステップS493の処理の終了後、処理は、図49のステップS468に戻り、ステップS469に進む。
このような処理により、消費電力の異常が発生した情報処理コントローラ311において、サブプロセッサプログラム移動要求コマンドが送信され、その返信コマンドを基に、処理の移動先または交換先が選択されるようになされている。
図48乃至図50を用いて説明した処理により、電力測定部321が設けられている情報処理コントローラ311を有する情報処理装置301が、複数、ネットワーク2に接続されている第3の実施の形態において、第3のパターンの電力情報、および、処理の移動または交換の制御を用いて、実行中の処理を停止させるのを最小限に抑えつつ、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
また、図51に示されるように、1つの情報処理装置395に、複数の情報処理コントローラ311−1乃至情報処理コントローラ311−p(pは正の整数)が設けられている場合、通信部16およびネットワーク2を介して、複数の情報処理コントローラ311が授受していた各種情報を、バス14を介して授受するようにすることにより、第2の実施の形態における場合と同様にして、本発明が適用可能であることは言うまでもない。
このとき、1つの情報処理装置395に備えられている、複数の情報処理コントローラ311−1乃至情報処理コントローラ311−pのいずれかが、情報処理装置395内のマスタとして動作し、他の情報処理コントローラが、スレーブとして動作するようになされる。そして、上述した第3の実施の形態の第1乃至第3のパターンのいずれかと同様の処理が用いられて、複数の情報処理コントローラ311−1乃至情報処理コントローラ311−pのいずれかにおける消費電力値の異常の発生が検出されて、バス14に接続されているそれぞれの情報処理コントローラ311のそのときの動作、および、それぞれのプロセッサの電力測定値に基づいて、処理が停止されるか、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、処理の移動先または交換先が選択されるようにすることができるようになされている。
更に、図52に示されるように、図51を用いて説明した情報処理装置395と同様の構成を有する情報処理装置395−1がネットワーク2に接続され、ネットワーク2に、情報処理装置395−1と同様の構成を有する情報処理装置395−2や、上述した複数の情報処理装置301(図52においては、情報処理装置301−1および情報処理装置301−2)が接続されている場合、情報処理装置395−1の情報処理コントローラ311−1乃至情報処理コントローラ311−pのいずれかにおける消費電力値の異常の発生が検出されたが、バス14に接続されているそれぞれの情報処理コントローラ311に処理の移動先または交換先が見つからなかった場合、上述した第3の実施の形態の第1乃至第3のパターンのいずれかと同様の処理が用いられて、ネットワーク2を介して接続されている情報処理装置395−2や、上述した複数の情報処理装置301に含まれる情報処理コントローラ311のうちのいずれかから、処理の移動先または交換先が選択されるようにしてもよい。この時、他の条件が同じであれば、バッテリまたは電池で動作している他の情報処理装置395−2または情報処理装置301よりも、AC電源で動作している他の情報処理装置395−2または情報処理装置301が、優先的に処理の移動、交換先として選択されるようにしてもよい。
また、本発明を適用した情報処理コントローラは、複数のサブプロセッサを含む全体の構成をワンチップIC(集積回路)として構成し、温度センサなどによる温度検出部を設け、正常動作可能な温度範囲内で動作するよう管理するとともに、情報処理コントローラに供給される電力量を監視し、異常な電力量が1つの情報処理コントローラで消費されることを防止することにより、素子の劣化を防ぐとともに、より信頼性の高い情報処理コントローラおよび情報処理装置を実現することができる。更に、本発明を適用した情報処理コントローラは、1つまたは複数の情報処理装置内のサブプロセッサ間で、温度上昇および消費電力量の増加に応じた処理の移動、または、交換を行うことにより、素子の破壊や処理速度の低下を防ぐようにすることができる。
図53乃至図60を用いて、本発明を適用した情報処理装置の情報処理コントローラにおいて、プロセッサの温度上昇および消費電力量の増加に応じた分散処理を実現する場合の実施の一形態について説明する。
図53は、情報処理コントローラの各部の温度を計測する温度検出部が設けられるとともに、情報処理コントローラの消費電力を測定する電力測定部が設けられ、情報処理コントローラに、温度検出部により検出された温度情報を取得するとともに、電源部19の状態を取得し、電力測定部の測定結果を取得する温度電力管理処理部が設けられている情報処理装置401−1の構成を示すブロック図である。
なお、図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図53に示される情報処理装置401−1は、情報処理コントローラ11に代わって、サブプロセッサ43-1乃至サブプロセッサ43−mの温度を計測するための温度検出部121-1乃至温度検出部121−m、および、メインプロセッサ42の温度を計測するための温度検出部121−(m+1)、並びに、温度検出部121により検出された温度状態を取得し、電源部19の状態を取得し、更に、電力測定部321の測定結果を取得する温度電力管理処理部421が設けられている情報処理コントローラ311が備えられ、1チップで構成されている情報処理コントローラ411の消費電力を測定する電力測定部321が新たに設けられている以外は、基本的に、図1を用いて説明した情報処理装置1と同様の構成を有している。
また、ネットワーク2に接続されている情報処理装置401−2乃至情報処理装置401−nは、基本的に、情報処理装置401−1と同様の構成を有するものであるので、その説明は省略する。以下、情報処理装置401−1乃至情報処理装置401−nを個々に区別する必要のないとき、単に情報処理装置401と称する。
図54に、温度上昇および消費電力量の増加を検出することによって分散処理の割り当てを制御する情報処理コントローラ411によって実行されるソフトウェアの構成を示す。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前においては、情報処理コントローラ411に接続される記録部13に記録されているものである。
なお、図8における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、情報処理コントローラ411のメインメモリ12が記憶するソフトウェアの構成は、新たに、制御プログラムに、温度・電力管理プログラムが追加されている以外は、基本的に、図8を用いて説明した場合と同様である。また、温度・電力管理プログラムは、情報処理装置101の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
温度・電力管理プログラムは、情報処理装置401の温度検出部121-1乃至温度検出部121−(m+2)により測定された温度情報、および、電力測定部321により測定される温度情報を収集し、これらの温度情報および電力情報に基づいて、メインプロセッサ42により実行される処理の制御、および、サブプロセッサ43-1乃至サブプロセッサ43-mにおいて必要に応じて実行される、自分自身の中における処理の移動または交換を制御するとともに、ネットワーク2を介して接続されている他の情報処理装置401と温度情報を交換して、メインプロセッサ42により実行される処理の制御、および、サブプロセッサ43-1乃至サブプロセッサ43-mにおいて必要に応じて実行される、処理の移動または交換を制御する。
ネットワーク2を介して接続されている他の情報処理装置401との電力情報、および、温度情報の授受、並びに、処理の移動または交換の制御には、3つのパターンがある。
第1のパターンは、例えば、情報処理装置401−1がマスタ装置である場合、情報処理装置401−1が、自分自身の温度・電力管理テーブルのみならず、ネットワーク2に接続されているスレーブ装置である情報処理装置401-2乃至情報処理401-nのそれぞれの温度・電力管理テーブルを管理するものである。すなわち、スレーブ装置である情報処理装置401-2乃至情報処理401-nは、所定の時間ごとに更新された最新の温度・電力管理テーブルを、マスタ装置である情報処理装置401-1に随時送信するようになされている。そして、マスタ装置である情報処理装置401−1は、ネットワーク2に接続されている情報処理装置401−1乃至情報処理401-nの全ての電力情報を監視し、情報処理装置401−1乃至情報処理401-nのうちのいずれかにおいて、温度上昇の異常、または、消費電力量の異常が検出された場合、例えば、ネットワーク2に接続されている情報処理装置401の情報処理コントローラ411に含まれる全てのサブプロセッサ43から、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
第2のパターンは、それぞれの情報処理装置401が、自分自身の温度・電力管理テーブルを基に温度情報および電力情報を監視し、温度上昇の異常、または、消費電力量の異常を検出した場合、ネットワーク2に接続されている、他の情報処理装置401の全てに対して、温度・電力情報の送信を要求するコマンドを送信するものである。すなわち、温度上昇の異常、または、消費電力量の異常を検出していない状態の情報処理装置401は、他の情報処理装置401から、温度・電力情報の送信を要求するコマンドを受信したとき、自分自身の温度・電力管理テーブルを基に、温度・電力情報を返信するコマンドを生成して、温度・電力情報要求コマンドの送信元の情報処理装置401に、生成された温度・電力情報を返信するコマンドを送信する。
温度・電力情報返信コマンドには、ヒートシンク141、メインプロセッサ42、および、サブプロセッサ43−1乃至サブプロセッサ43−8における最新の温度検出結果(すなわち、温度検出部121−1乃至温度検出部121−10のそれぞれの最新の温度検出結果)、ヒートシンク141、メインプロセッサ42、サブプロセッサ43−1乃至サブプロセッサ43−8における上限温度の設定値(すなわち、温度検出部121−1乃至温度検出部121−10のそれぞれが検出する温度がこれ以上高い場合は、異常値であると判別するための設定値)、サブプロセッサ43−1乃至サブプロセッサ43-8の動作状態を示す情報、チップ内のサブプロセッサの配置情報、ACを電源としているときの消費電力上限、バッテリを電源としているときの消費電力上限、電池を電源としているときの消費電力上限、AC,バッテリ、電池などのうち、いずれの電源が接続されているかを示す電源接続情報、および、現在の処理における消費電力の値などの情報が含まれている。
そして、温度・電力情報を返信するコマンドを受信した情報処理装置401は、ネットワーク2に接続されている全ての情報処理装置401の情報処理コントローラ411に含まれる全てのサブプロセッサ43から、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
第3のパターンは、それぞれの情報処理装置401が、自分自身の温度・電力管理テーブルを基に温度・電力情報を監視し、温度上昇の異常、または、消費電力量の異常を検出した場合、ネットワーク2に接続されている、他の情報処理装置401の全てに対して、サブプロセッサプログラムの移動を要求するコマンドを送信するものである。すなわち、消費電力量の異常を検出していない状態の情報処理装置401は、他の情報処理装置401から、サブプロセッサプログラムの移動を要求するコマンドを受信したとき、自分自身の温度・電力管理テーブルを基に、サブプロセッサプログラムの移動先となることが可能か否かを示す返信コマンドを生成し、サブプロセッサプログラムの移動を要求するコマンドの送信元の情報処理装置401に、生成した返信コマンドを送信する。そして、返信コマンドを受信した情報処理装置401は、返信コマンドを基に、処理の移動または交換先として最適なサブプロセッサ43を選択し、選択されたサブプロセッサ43に、異常が発生したサブプロセッサ43の処理を移動するか、または、それぞれの処理を交換するなどの処理を制御する。
なお、この3つのパターンにおいて、特に、温度上昇に異常があった場合、処理の移動または交換先として選択されるサブプロセッサとして、自分自身に含まれるサブプロセッサ43の優先順位を高くするようにしてもよい。
図55に、温度上昇および消費電力量の増加を検出することによって分散処理の割り当てを制御する情報処理コントローラ411が第1のパターンにおいて実行可能な機能を説明するための機能ブロック図を示す。なお、図21における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図55に示される、温度上昇および消費電力量の増加を検出することによって分散処理の割り当てを制御する情報処理コントローラ411が第1のパターンにおいて実現可能な機能は、メインプロセッサ42が実行可能な機能においては、温度異常対応処理制御部216に代わって、温度・電力異常対応処理制御部455が設けられ、論理スレッド管理処理部217に代わって、論理スレッド管理処理部457が設けられ、温度管理情報送受信制御部214に代わって、温度・電力管理情報送受信制御部456が設けられている以外は、基本的に、図21を用いて説明した場合と同様である。また、図21を用いて説明した温度モニタ処理部122が実現可能な機能に代わって、温度・電力管理処理部421が実行可能な機能である、温度・電力情報取得部451、割り込み制御部165、タイマ166、温度・電力管理テーブル452、および、異常検出部453が、新たに設けられている。
温度・電力情報取得部451は、割り込み制御部165の処理により制御されるタイミングで、温度検出部121および電力測定部321から供給される温度情報および電力情報を取得し、温度・電力情報テーブル456を更新する。割り込み制御部165は、タイマ166を参照して、温度・電力情報取得部451に対してタイマ割り込みをかけるとともに、異常検出部453から供給される情報を基に、演算処理部161および温度・電力異常対応処理制御部455に割り込みをかける。
温度・電力管理情報送受信制御部456は、温度・電力異常対応処理制御部455の制御に基づいて、通信部16を介して、温度・電力電力管理テーブル、または、温度管理および電力管理のために生成された各種コマンド(ソフトウェアセル)の、ネットワーク2に接続されている他の情報処理装置401への送信を制御するとともに、通信部16を介して、他の情報処理装置401の温度・電力管理テーブル、または、温度管理および電力管理のための各種コマンド(ソフトウェアセル)などの、ネットワーク2に接続されている他の情報処理装置401からの受信を制御する。以下、温度・電力電力管理テーブル、または、温度管理および電力管理のために生成された各種コマンド(ソフトウェアセル)など、ネットワーク2によって接続された複数の情報処理装置401の電力管理と電力管理の結果実行される分散処理の制御にかかわる情報を個々に区別する必要がない場合、温度・電力管理情報と総称するものとする。
温度・電力管理テーブル452は、情報処理コントローラ411における温度管理および消費電力管理を行うための情報が記載されるテーブルであり、自分自身がスレーブ装置であるとき、自分自身の温度管理情報および電力情報を記録し、自分自身がマスタ装置であるとき、ネットワーク2に接続されているすべての情報処理装置401における温度管理情報および電力情報を記録している。温度情報には、図13を用いて説明した場合と同様に、情報処理コントローラ411を識別するためのコントローラID、サブプロセッサ43−1乃至サブプロセッサ43-8の動作状態を示す情報、ヒートシンク141、メインプロセッサ42、および、サブプロセッサ43−1乃至サブプロセッサ43−8における最新の温度検出結果(すなわち、温度検出部121−1乃至温度検出部121−10のそれぞれの最新の温度検出結果)、ヒートシンク141、メインプロセッサ42、および、サブプロセッサ43−1乃至サブプロセッサ43−8における上限温度の設定値(すなわち、温度検出部121−1乃至温度検出部121−10のそれぞれが検出する温度がこれ以上高い場合は、異常値であると判別するための設定値)、並びに、チップ内のサブプロセッサの配置情報が記載されている。また、電力情報には、図40を用いて説明した場合と同様に、情報処理コントローラ411を識別するためのコントローラID、ACを電源としているときの消費電力上限、バッテリを電源としているときの消費電力上限、電池を電源としているときの消費電力上限、AC,バッテリ73、電池などのうち、いずれの電源が接続されているかを示す電源接続情報、および、現在の処理における消費電力の値などの情報を含む情報が記載されている。
なお、上限温度とは、情報処理コントローラ411または情報処理装置401の設計時において、予め設定された正常な動作を行うために要求される温度の上限値である。上限温度は、正常かつ効率的な動作を行うために望ましい温度上限値であってもよい。また、サブプロセッサ43−1乃至サブプロセッサ43-8の動作状態を示す情報とは、それぞれが動作中であるか否かを示す、例えば、RUNまたはSTOPのステータスである。そして、サブプロセッサ配置情報とは、情報処理コントローラ411または情報処理装置401の設計時において予め設定された、サブプロセッサ43−1乃至サブプロセッサ43-8の配置を示す情報である。
また、AC電源を電源としているときの消費電力上限は、AC電源使用時に正常な動作を行うために要求される消費電力の上限値であり、情報処理装置の設計時に、予め設定されるものである。また、AC電源時の消費電力上限は、正常かつ効率的な動作を行うために望ましい消費電力上限値であってもよい。バッテリ73を電源としているときの消費電力上限、および、電池を電源としているときの消費電力上限についても同様である。また、電源接続情報は、情報処理装置401の設計時に予め設定される場合もあるし、情報処理装置401が複数の電源ソースに対応している場合には、適宜、変化することもあり得る。現在の消費電力は、電力測定部321により測定された消費電力であり、当然、情報処理装置の動作状況によって変動する値である。
異常検出部453は、自分自身がマスタ装置である場合、温度・電力管理テーブル452を参照し、ネットワーク2に接続されている全ての情報処理装置401の温度測定結果または電力検出結果のうち、設定されている上限値を超えたものがあった場合、割り込み制御部165に、温度または消費電力量の異常が検出されたことを通知し、演算処理部161および異常対応処理制御部455に割り込みをかけさせる。
異常対応処理制御部455は、自分自身がマスタ装置であり、割り込み制御部165により割り込みがかかった場合、温度・電力管理テーブル452を参照して、ネットワーク2に接続されている全ての情報処理装置401のうちのいずれかの温度情報または消費電力量の異常の発生情報を取得し、これを基に、論理スレッド管理処理部457を制御して、必要に応じて、処理をいったん停止させたり、サブプロセッサ43のいずれかとの、実行されているスレッドの移動または交換を制御する。
論理スレッド管理処理部457は、演算処理部161により実行されるアプリケーションプログラムに対応する論理スレッドの生成および削除を行うとともに、自分自身がマスタ装置である場合、ネットワーク2に接続されている情報処理装置401のうちのいずれかにおいて実行される分散処理に対応する論理スレッドの状態監視と動作制御を行う。論理スレッド管理処理部457は、自分自身がマスタ装置である場合、ネットワーク2に接続されている全ての情報処理装置401の管理情報が記載されたテーブルと、実行される論理スレッドごとに、論理スレッドの実行に必要な情報が記載されたテーブルを作成し、必要に応じて、テーブルの情報を参照し、更新することにより、論理スレッドの実行を制御する。
また、論理スレッド管理処理部457は、自分自身がマスタ装置である場合、必要に応じて、他の情報処理装置401において実行されているスレッドの処理を制御するためのソフトウェアセルを生成し、通信部16を介して、生成されたソフトウェアセルを送信する。また、更に、論理スレッド管理処理部457は、自分自身がスレーブ装置である場合、通信部16を介して、マスタ装置である情報処理装置401から送信されたソフトウェアセルの供給を受け、ソフトウェアセルの内容に基づいた分散処理をサブプロセッサ43に実行させるとともに、必要に応じて、返信や応答に対応するソフトウェアセルを生成し、通信部16を介して、生成されたソフトウェアセルを送信する。更に、論理スレッド管理処理部457は、自分自身がマスタ装置であるかスレーブ装置であるかにかかわらず、必要に応じて、通信部16により受信された、他の情報処理装置101において実行されたスレッドに関する情報を取得する。
なお、図55において、これらの機能を実現するハードウェアが、上述するとおりではない場合、例えば、メインプロセッサ42により実現される機能のうちの一部が温度電力管理処理部421により実現されたり、温度電力管理処理部421により実現される機能のうちの一部がメインプロセッサ42により実現される場合や、これらの機能が、それぞれ異なるハードウェアにより実現される場合なども、本発明は適用可能であることは言うまでもない。
次に、図56乃至図60のフローチャートを参照して、温度および電力を基に分散処理を制御する場合の第1のパターンにおける動作を説明する。
図56のフローチャートを参照して、図55に示される情報処理装置401が実行するアプリケーションプログラム実行処理3について説明する。ここでは、温度・電力管理プログラムが、情報処理装置401の主電源が投入されている間は常時動作する常駐プログラムであるものとして説明する。
ステップS451において、演算処理部161は、ユーザにより、アプリケーションプログラムの実行が指令されたか否かを判断する。すなわち、ステップS451において、メインプロセッサ42は、操作入力部15から、バス14およびバス41を介して供給される信号を基に、アプリケーションプログラムの実行が指令されたか否かを判断する。ステップS451において、アプリケーションプログラムの実行が指令されていないと判断された場合、アプリケーションプログラムの実行が指令されたと判断されるまで、ステップS451の処理が繰り返される。
ステップS451において、アプリケーションプログラムの実行が指令されたと判断された場合、ステップS452において、演算処理部161は、論理スレッドのサブプロセッサへの割り当てなどを設定し、論理スレッドの設定情報を論理スレッド管理処理部457に供給する。
ステップS453において、論理スレッド管理処理部457は、論理スレッドが割り当てられたサブプロセッサ43のローカルストレージ51のコード領域187およびデータ領域188に、割り当てられた処理を実行するためのプログラムやデータをロードさせる。
ステップS454において、演算処理部161および論理スレッド管理処理部457は、サブプロセッサ43による処理を含めた、アプリケーションプログラムの実行を制御する。サブプロセッサ43の演算処理部181は、割り当てられた処理を実行する。
ところで、温度・電力管理プログラムは、情報処理装置401の主電源が投入されている間は常時動作する常駐プログラムであるので、ステップS451乃至ステップS454の処理が実行されている間も、処理が実行されている。温度・電力管理プログラムによるマスタ装置の温度・電力情報管理処理については、図57のフローチャートを用いて、スレーブ装置の温度・電力管理処理については、図60を用いて、それぞれ後述する。
ステップS455において、演算処理部161は、割り込み制御部165により、温度上昇、または、消費電力量の異常発生のための割り込みがあるか否かを判断する。ステップS5において、温度上昇、または、消費電力量の異常発生のための割り込みがないと判断された場合、処理は、後述するステップS458に進む。
ステップS455において、温度上昇、または、消費電力量の異常発生のための割り込みがあったと判断された場合、割り込みにより実行中の処理が停止されるので、ステップS456において、演算処理部161は、割り込みが解除されたか否かを判断する。ステップS456において、割り込みが解除されていないと判断された場合、割り込みが解除されたと判断されるまで、ステップS456の処理が繰り返される。
ステップS456において、割り込みが解除されたと判断された場合、ステップS457において、演算処理部161は、必要に応じて、論理スレッドの設定情報を、再度、論理スレッド管理処理部457に供給するので、論理スレッド管理処理部457は、論理スレッド管理に関するテーブルを更新する。
ステップS455において、消費電力量の異常発生のための割り込みがないと判断された場合、または、ステップS457の処理の終了後、ステップS458において、演算処理部161は、アプリケーションプログラムの処理が終了されたか否かを判断する。ステップS458において、アプリケーションプログラムの処理が終了されていないと判断された場合、処理は、ステップS454に戻り、それ以降の処理が繰り返される。ステップS458において、アプリケーションプログラムの処理が終了されたと判断された場合、処理が終了される。
このような処理により、メインプロセッサ42により実行されるアプリケーションプログラムに対応する分散処理が、サブプロセッサ43のうちの選択されたものにより実行される。
次に、図57のフローチャートを参照して、マスタ装置の温度・電力情報管理処理について説明する。
ステップS471において、温度・電力情報取得部451は、割り込み制御部165から、タイマ割り込みが入ったか否かを判断する。
ステップS471において、タイマ割り込みが入っていないと判断された場合、ステップS472において、温度・電力管理情報送受信制御部456は、ネットワーク2に接続されている他の情報処理装置401から、温度・電力管理テーブルを受信したか否かを判断する。ステップS472において、温度・電力管理テーブルを受信していないと判断された場合、処理は、ステップS471に戻り、それ以降の処理が繰り返される。ステップS472において、電力管理テーブルを受信したと判断された場合、処理は、後述するステップS474に進む。
ステップS471において、タイマ割り込みが入ったと判断された場合、ステップS473において、温度・電力情報取得部451は、電力測定部321から、電力の測定結果を示す情報を取得するとともに、温度検出部121から、温度の検出結果を示す情報を取得する。
ステップS472において、温度・電力管理テーブルを受信したと判断された場合、または、ステップS473の処理の終了後、ステップS474において、温度・電力情報取得部451は、ステップS472において受信された他の情報処理装置401の温度・電力管理テーブル、または、ステップS473において取得された自分自身の温度情報および電力情報を基に、温度・電力管理テーブル452を更新する。
ステップS475において、異常検出部453は、温度・電力管理テーブル452を参照し、温度情報または電力情報に異常値があるか否か、すなわち、ネットワーク2に接続されている情報処理装置401に設けられている温度検出部121または電力測定部321により検出された温度検出結果または電力検出結果のうち、予め設定されている上限値を超えたものがあるか否かを判断する。ステップS475において、温度情報または電力情報のいずれにも異常値がないと判断された場合、処理は、ステップS471に戻り、それ以降の処理が繰り返される。
ステップS475において、温度情報または電力情報に異常値があったと判断された場合、ステップS476において、異常検出部453は、割り込み制御部165に、異常な温度上昇または消費電力の上昇が検出されたことを通知し、演算処理部161および異常対応処理制御部455に割り込みをかけさせる。割り込み制御部165は、異常対応処理制御部455および演算処理部161に対して、割り込みをかけ、演算処理部161により制御されるアプリケーションプログラムの処理を停止させるとともに、異常対応処理制御部455に対して異常発生時の処理を開始させる。
ステップS477において、図58および図59を用いて後述する異常発生時の処理8が実行される。
ステップS478において、異常対応処理制御部455は、ステップS477において実行された異常発生時の処理8に基づいて、論理スレッド管理処理部457を制御し、必要に応じて、論理スレッド管理に関するテーブルを更新させる。
ステップS479において、割り込み制御部165は、演算処理部161により制御されるアプリケーションプログラムの処理に対する割り込みを解除し、処理は、ステップS471に戻り、それ以降の処理が繰り返される。
このような処理により、ネットワーク2に接続されている、マスタ装置である情報処理装置401において、ネットワーク2に接続されている全ての情報処理装置401の温度検出部121または電力測定部321により検出された温度検出結果または電力検出結果を基に更新された温度管理テーブルを取得して、温度・電力管理テーブル452として管理することができるようになされ、マスタ装置において記憶されている温度・電力管理テーブル452を基に、異常発生時の割り込み処理が実行されるか否かが判断される。
次に、図58および図59のフローチャートを参照して、図57のステップS477において実行される異常発生時の処理8について説明する。
ステップS501において、異常対応処理制御部455は、温度・電力管理テーブル452を参照し、温度に異常が発生したか否かを判断する。ステップS501において、温度に異常が発生していないと判断された場合、処理は、ステップS519に進む。
ステップS501において、温度に異常が発生したと判断された場合、ステップS502において、異常対応処理制御部455は、温度・電力管理テーブル452を参照し、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ411であるか否か、換言すれば、予め設定されている上限温度を超えた温度検出結果を得たのは、温度検出部121-9または温度検出部121−10のうちのいずれかであるか否かを判断する。ステップS502において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ411であると判断された場合、処理は、後述するステップS514に進む。
ステップS502において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ411ではない、すなわち、サブプロセッサ43のうちのいずれかであると判断された場合、ステップS503において、異常対応処理制御部455は、温度・電力管理テーブル452を参照し、温度の異常が発生したサブプロセッサ43の処理の移動が可能であるか否か、換言すれば、温度の異常が発生したサブプロセッサ43以外のサブプロセッサ43のうちのいずれかが、停止状態であるか否かを判断する。ステップS503において、温度の異常が発生したサブプロセッサ43の処理の移動が可能ではないと判断された場合、処理は、後述するステップS508に進む。
ステップS503において、温度の異常が発生したサブプロセッサ43の処理の移動が可能であると判断された場合、ステップS504において、異常対応処理制御部455は、処理の移動先のサブプロセッサ43を選択し、選択結果を、論理スレッド管理処理部457に供給する。具体的には、異常対応処理制御部455は、ネットワーク2に接続されている情報処理装置401の情報処理コントローラ411に含まれるサブプロセッサ43のうち、現在動作中のサブプロセッサ43に隣接しないものであって、かつ、停止状態であるサブプロセッサ43のうち、温度検出結果が最も低いものを移動先のサブプロセッサ43として優先的に選択するようになされている。また、この条件を満たすサブプロセッサ43が複数ある場合、異常対応処理制御部455は、サブプロセッサIDとして割り当てられている番号が最も若いものを選択する。また、現在動作中のサブプロセッサ43に隣接しない、停止状態であるサブプロセッサ43が存在しない場合、異常対応処理制御部455は、停止状態のサブプロセッサ43のうち、温度検出結果が最も低いものが選択され、更に、この条件を満たすサブプロセッサ43が複数ある場合は、サブプロセッサIDとして割り当てられている番号が最も若いものが選択され、選択結果が、論理スレッド管理処理部457に供給される。
ステップS505において、論理スレッド管理処理部457は、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。温度上限値を超えたサブプロセッサ43がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受けて、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、温度上限値を超えたサブプロセッサ43がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置401の論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS506において、論理スレッド管理処理部457は、温度上限値を超えたサブプロセッサ43の動作を停止させる。
ステップS507において、論理スレッド管理処理部457は、移動先のサブプロセッサとして選択されたサブプロセッサ43に、ステップS505の処理により退避されたコンテキストをリストアする。すなわち、論理スレッド管理処理部457は、処理の移動先のサブプロセッサ43がマスタ装置内のサブプロセッサ43であるとき、バス41を介して、移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストを供給し、処理の移動先のサブプロセッサ43がスレーブ装置内のサブプロセッサ43であるとき、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、スレーブ装置として動作している情報処理装置401に含まれる移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストを供給する。移動先のサブプロセッサとして選択されたサブプロセッサ43においては、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、ステップS519に進む。
ステップS503において、温度の異常が発生したサブプロセッサ43の処理の移動が可能ではないと判断された場合、ステップS508において、異常対応処理制御部455は、処理の交換先のサブプロセッサ43を選択し、選択結果を、論理スレッド管理処理部457に供給する。具体的には、異常対応処理制御部455は、ネットワーク2に接続されている情報処理装置401の情報処理コントローラ411のサブプロセッサ43の中から、温度検出結果が最も低いものを移動先のサブプロセッサ43として優先的に選択するようになされており、この条件を満たすサブプロセッサ43が複数ある場合、サブプロセッサIDとして割り当てられている番号が最も若いものを選択するようになされている。
ステップS509において、論理スレッド管理処理部457は、温度上限値を超えたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。温度上限値を超えたサブプロセッサ43がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受けて、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、処理の交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、処理の交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、温度上限値を超えたサブプロセッサ43がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、処理の交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、処理の交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置401の論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS510において、論理スレッド管理処理部457は、温度上限値を超えたサブプロセッサ43の動作を停止させる。
ステップS511において、論理スレッド管理処理部457は、処理の交換先として選択されたサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。処理の交換先として選択されたサブプロセッサ43がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受けて、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、処理の交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、処理の交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、処理の交換先として選択されたサブプロセッサ43がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、処理の交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、処理の交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置401の論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS512において、論理スレッド管理処理部457は、処理の交換先として選択されたサブプロセッサ43の動作を停止させる。
ステップS513において、論理スレッド管理処理部457は、退避された2つのサブプロセッサ43のコンテキストを交換してリストアさせる。すなわち、論理スレッド管理処理部457は、処理の交換先のサブプロセッサとして選択されたサブプロセッサ43に、ステップS509の処理により退避されたコンテキストをリストアさせるとともに、温度上限値を超えたサブプロセッサ43に、ステップS511の処理により退避されたコンテキストをリストアさせる。具体的には、論理スレッド管理処理部217は、温度上限値を越えたサブプロセッサ43、または、処理の交換先のサブプロセッサ43がマスタ装置内のサブプロセッサ43であるとき、バス41を介して、温度上限値を超えた、または、交換先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストのうち対応するものを供給し、温度上限値を越えたサブプロセッサ43、または、処理の交換先のサブプロセッサ43がスレーブ装置内のサブプロセッサ43であるとき、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、スレーブ装置として動作している情報処理装置401に含まれる温度上限値を超えた、または、交換先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストのうち対応するものを供給する。それぞれのサブプロセッサ43には、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、ステップS519に進む。
ステップS502において、温度の異常が発生したのは、メインプロセッサ42、または、情報処理コントローラ411であると判断された場合、ステップS514において、異常対応処理制御部455は、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ411は、マスタ装置である情報処理装置401に含まれるか否かを判断する。ステップS514において、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ411は、マスタ装置である情報処理装置401に含まれると判断された場合、処理は、後述するステップS517に進む。
ステップS514において、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ411は、マスタ装置である情報処理装置401に含まれない、すなわち、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ411は、スレーブ装置である情報処理装置401に含まれると判断された場合、ステップS515において、異常対応処理制御部455は、温度・電力管理テーブル452を参照して、異常が発生したメインプロセッサ42、または、情報処理コントローラ411が含まれる情報処理装置401の情報処理コントローラ全体の処理が移動可能であるか否かを判断する。ステップS515において、異常が発生したメインプロセッサ42、または、情報処理コントローラ411が含まれる情報処理装置401の情報処理コントローラ全体の処理が移動可能であると判断された場合、処理は、ステップS504に進む。
ステップS515において、異常が発生したメインプロセッサ42、または、情報処理コントローラ411が含まれる情報処理装置401の情報処理コントローラ全体の処理が移動可能ではないと判断された場合、ステップS516において、異常対応処理制御部455は、温度・電力管理テーブル452を参照して、異常が発生したメインプロセッサ42、または、情報処理コントローラ411が含まれる情報処理装置401の情報処理コントローラ全体の処理の交換が可能であるか否かを判断する。ステップS516において、異常が発生したメインプロセッサ42、または、情報処理コントローラ411が含まれる情報処理装置401の情報処理コントローラ全体の処理の交換が可能であると判断された場合、処理は、ステップS508に進む。
ステップS514において、温度の異常が発生したメインプロセッサ42、または、情報処理コントローラ411は、マスタ装置である情報処理装置401に含まれると判断された場合、または、ステップS516において、異常が発生したメインプロセッサ42、または、情報処理コントローラ411が含まれる情報処理装置401の情報処理コントローラ全体の処理の交換が可能ではないと判断された場合、ステップS517において、異常対応処理制御部455は、論理スレッド管理処理部457を制御して、演算処理部161により実行されているアプリケーションプログラムを一時停止させるなどして、常時動作する常駐プログラムなどが実行する一部の必要な処理を除いて、メインプロセッサ42の処理を一時中断させる。
ステップS518において、異常対応処理制御部455は、温度・電力管理テーブル452を参照して、温度状態が正常に戻ったか否かを判断する。ステップS518において、温度状態が正常に戻っていないと判断された場合、温度状態が正常に戻ったと判断されるまで、ステップS518の処理が繰り返される。
ステップS501において、温度に異常が発生していないと判断された場合、ステップS507の処理の終了後、ステップS513の処理の終了後、または、ステップS518において、温度状態が正常に戻ったと判断された場合、ステップS519において、異常対応処理制御部455は、電力の異常が発生したか否かを判断する。ステップS519において、異常対応処理制御部455は、電力の異常が発生していないと判断された場合、処理は、図57のステップS477に戻り、ステップS478に進む。
ステップS519において、異常対応処理制御部455は、電力の異常が発生したと判断された場合、ステップS520において、異常対応処理制御部455は、温度・電力管理テーブル452を参照し、消費電力量の異常が発生した情報処理コントローラ411に含まれる全てのサブプロセッサ43の処理の移動が可能であるか否かを判断する。ステップS341において、消費電力量の異常が発生した情報処理コントローラ411に含まれる全てのサブプロセッサ43の処理の移動が可能ではないと判断された場合、処理は、後述するステップS525に進む。
ステップS520において、消費電力量の異常が発生した情報処理コントローラ411に含まれる全てのサブプロセッサ43の処理の移動が可能であると判断された場合、ステップS521において、異常対応処理制御部455は、温度・電力管理テーブル452を参照し、ネットワーク2に接続されている情報処理装置401の情報処理コントローラ411の中から、処理の移動先の情報処理コントローラ411を選択し、選択結果を、論理スレッド管理処理部457に供給する。具体的には、異常対応処理制御部455は、温度・電力管理テーブル452を参照して、ネットワーク2に接続されている情報処理装置401の情報処理コントローラ411のうち、現在動作中のサブプロセッサ43の処理を実行可能な情報処理コントローラ411であって、現在最も電力消費量の少ない情報処理コントローラ411を選択したり、バッテリまたは電池で動作している他の情報処理装置401の情報処理コントローラ411よりも、AC電源で動作している他の情報処理装置401の情報処理コントローラ411を、優先的に処理の移動先として選択するようになされており、この条件を満たす情報処理コントローラ411が複数ある場合、プロセッサIDとして割り当てられている番号が最も若いものが選択されるようになされている。
また、処理の移動先として選択された情報処理コントローラ411において、いずれのサブプロセッサ43に分散処理が割り当てられるかは、処理の移動先として選択された情報処理コントローラ411のメインプロセッサ42の論理スレッド管理処理部457が決定する。
ステップS522において、論理スレッド管理処理部457は、電力上限値を超えた情報処理コントローラ411により実行されていた処理に関するコンテキストを退避させる。
温度上限値を超えた情報処理コントローラ411がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、温度上限値を超えた情報処理コントローラ411がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、移動先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置401の論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS523において、論理スレッド管理処理部457は、電力上限値を超えた情報処理コントローラ411のサブプロセッサ43の動作を停止させる。
ステップS524において、論理スレッド管理処理部457は、移動先の情報処理コントローラ411のサブプロセッサとして選択されたサブプロセッサ43に、ステップS522の処理により退避されたコンテキストをリストアする。すなわち、論理スレッド管理処理部457は、処理の移動先のサブプロセッサ43がマスタ装置内のサブプロセッサ43であるとき、バス41を介して、移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストを供給し、処理の移動先のサブプロセッサ43がスレーブ装置内のサブプロセッサ43であるとき、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、スレーブ装置として動作している情報処理装置401に含まれる移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストを供給する。移動先のサブプロセッサとして選択されたサブプロセッサ43においては、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、図57のステップS477に戻り、ステップS478に進む。
ステップS520において、消費電力量の異常が発生した情報処理コントローラ411に含まれる全てのサブプロセッサ43の処理の移動が可能ではないと判断された場合、ステップS525において、異常対応処理制御部455は、温度・電力管理テーブル452を参照して、ネットワーク2に接続されている情報処理装置401の情報処理コントローラ411のサブプロセッサ43の中から、処理の交換先となる情報処理コントローラ411のサブプロセッサ43を選択し、選択結果を、論理スレッド管理処理部457に供給する。具体的には、異常対応処理制御部455は、ネットワーク2に接続されている情報処理装置401の情報処理コントローラ411の中から、電力測定結果が最も低いものを交換先の情報処理コントローラ411として優先的に選択したり、または、バッテリまたは電池で動作している他の情報処理装置401の情報処理コントローラ411よりも、AC電源で動作している他の情報処理装置401の情報処理コントローラ411を、優先的に処理の交換先として選択するようになされており、この条件を満たす情報処理コントローラ411が複数ある場合、プロセッサIDとして割り当てられている番号が最も若いものを選択するようになされている。
また、処理に必要な、共通に使用するプログラムとモデルデータが、分散処理が割り当てられていないサブプロセッサ43のローカルストレージ51のうちのいずれかに、予め供給されている場合、共通に使用するプログラムとモデルデータがローカルストレージ51に保存されているサブプロセッサ43を有する情報処理コントローラ411が優先して選択されるようにしてもよい。
また、処理の交換先として選択された情報処理コントローラ411において、いずれのサブプロセッサ43に分散処理が割り当てられるかは、処理の交換先として選択された情報処理コントローラ411のメインプロセッサ42の論理スレッド管理処理部457が決定する。
ステップS526において、論理スレッド管理処理部457は、電力上限値を超えた、すなわち、消費電力量の異常が発生した情報処理コントローラ411のサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。
消費電力量の異常が発生した情報処理コントローラ411がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、処理の交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、処理の交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、消費電力量の異常が発生した情報処理コントローラ411がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、処理の交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、処理の交換先のサブプロセッサ43が、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置401の論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS527において、論理スレッド管理処理部457は、電力上限値を超えた、すなわち、消費電力量の異常が発生した情報処理コントローラ411のサブプロセッサ43の動作を停止させる。
ステップS528において、論理スレッド管理処理部457は、処理の交換先として選択された情報処理コントローラ411のサブプロセッサ43により実行されていた処理に関するコンテキストを退避させる。
処理の交換先として選択された情報処理コントローラ411がマスタ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、処理の交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、処理の交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
また、処理の交換先として選択された情報処理コントローラ411がスレーブ装置であった場合、割り込み制御部185は、実行している処理のコンテキストの退避を命令する割り込み命令を受け、演算処理部181の処理を停止させ、スレッド移動・交換処理部186は、実行中のプログラムのコンテキスト(レジスタ182、浮動小数点レジスタ183、および、プログラムカウンタ184のそれぞれの値)をスタック領域190に退避させた後、処理の交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを予め保有している場合、スタック領域190とデータ領域189の内容を、処理の交換元のサブプロセッサ43が、共通に使用するプログラムとモデルデータを保有していない場合、コード領域187乃至スタック領域190のデータを、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、マスタ装置として動作している情報処理装置401の論理スレッド管理処理部457が管理する情報記憶領域(メインプロセッサ42のローカルストレージ51の記憶領域のうちの一部)に転送する。
ステップS529において、論理スレッド管理処理部457は、処理の交換先として選択された情報処理コントローラ411のサブプロセッサ43の動作を停止させる。
ステップS530において、論理スレッド管理処理部457は、退避された2つの情報処理コントローラ411のサブプロセッサ43のコンテキストを交換してリストアさせる。すなわち、論理スレッド管理処理部457は、処理の交換先として選択された情報処理コントローラ411のサブプロセッサ43に、ステップS526の処理により退避されたコンテキストをリストアするとともに、電力上限値を超えた情報処理コントローラ411のサブプロセッサ43に、ステップS528の処理により退避されたコンテキストをリストアする。具体的には、論理スレッド管理処理部457は、電力上限値を超えた情報処理コントローラ411、または、処理の移動先の情報処理コントローラ411がマスタ装置内の情報処理コントローラ411であるとき、バス41を介して、電力上限値を超えた、または、移動先のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストのうち対応するものを供給し、温度上限値を越えた情報処理コントローラ411、または、処理の移動先の情報処理コントローラ411がスレーブ装置内の情報処理コントローラ411であるとき、バス41、バス14、および、通信部16、並びに、ネットワーク2を介して、スレーブ装置として動作している情報処理装置401に含まれる電力上限値を超えた、または、移動先の情報処理コントローラ411のサブプロセッサ43に、自分自身が管理する情報記憶領域に記憶されているコンテキストのうち対応するものを供給する。それぞれの情報処理コントローラ411のサブプロセッサ43には、供給されたコンテキストを、コード領域187乃至スタック領域190の対応する部分に記憶して、処理は、図57のステップS477に戻り、ステップS478に進む。
このような処理により、消費電力量の異常の発生箇所と、ネットワーク2に接続されている情報処理装置401のそれぞれの情報処理コントローラ411における動作、および、温度計測値または電力測定値に基づいて、分散処理のうちの一部が移動されるか、または、分散処理のうちの一部が交換されるかが判断され、処理の移動先または交換先が選択されるようになされている。
次に、図60のフローチャートを参照して、図57を用いて説明したマスタ装置の電力情報管理処理と並行して実行される、スレーブ装置の温度・電力情報管理処理について説明する。
ステップS561において、スレーブ装置として動作している情報処理装置401の温度・電力情報取得部451は、割り込み制御部165から、タイマ割り込みが入ったか否かを判断する。ステップS561において、タイマ割り込みが入っていないと判断された場合、タイマ割り込みが入ったと判断されるまで、ステップS561の処理が繰り返される。
ステップS561において、タイマ割り込みが入ったと判断された場合、ステップS562において、温度・電力情報取得部451は、温度検出部121および電力測定部321のそれぞれから、電力情報を取得する。
ステップS563において、温度・電力情報取得部451は、ステップS562において取得された温度情報および電力情報を基に、温度・電力管理テーブル452を更新する。
ステップS564において、温度・電力管理情報送受信制御部456は、ステップS563において更新された温度・電力管理テーブル452を、通信部16およびネットワーク2を介して、マスタ装置として動作している情報処理装置401に送信し、処理は、ステップS561に戻り、それ以降の処理が繰り返される。
このような処理により、スレーブ装置の温度・電力管理テーブルがマスタ装置に送信される。送信されたそれぞれのスレーブ装置の温度・電力管理テーブルは、マスタ装置において管理される。
図56乃至図60を用いて説明した処理により、情報処理コントローラ411の各部の温度を計測する温度検出部121、および、消費電力を測定する電力測定部321が設けられている情報処理装置401が、複数、ネットワーク2に接続されている場合の第1のパターンの電力情報、および、処理の移動または交換の制御を用いて、実行中の処理を停止させるのを最小限に抑えつつ、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
なお、ここでは、温度情報および電力情報を用いて、分散処理を制御する実施の形態の第1のパターンにおける場合のみを説明したが、第2のパターンおよび第3のパターンにおいても、温度情報を用いて分散処理を制御する場合、または、電力情報を用いて分散処理を制御する場合と同様にして、温度・電力情報送信コマンドと、温度・電力情報返信コマンドとの授受、または、サブプロセッサプログラム移動要求コマンドと、サブプロセッサプログラム移動返信コマンドとの授受により、温度情報および電力情報を用いて、分散処理を制御し、実行中の処理を停止させるのを最小限に抑えつつ、熱暴走などによる素子の破壊や処理速度の低下を防ぐようにすることができる。
また、1つの情報処理装置に、図53を用いて説明した情報処理コントローラ411が複数設けられている場合、または、図53を用いて説明した情報処理コントローラ411が複数設けられている情報処理装置がネットワーク2に接続されている場合においても、本発明は適用可能であることはいうまでもない。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図1などに示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク61(フレキシブルディスクを含む)、光ディスク62(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク63(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ64などよりなるパッケージメディアなどにより構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
本発明を適用した通信システムの一実施の形態を示す図である。 電源部の構成について説明するための図である。 メインメモリを説明する図である。 サブプロセッサのローカルストレージを説明する図である。 キー管理テーブルを説明する図である。 ソフトウェアセルの構成の例を示す図である。 DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す図である。 図1の情報処理コントローラのメインメモリが記憶するソフトウェアの構成を示す図である。 本発明を適用した情報処理装置の構成を示す図である。 図9の情報処理コントローラのチップ内の構成について説明するための図である。 図9の情報処理コントローラのメインメモリが記憶するソフトウェアの構成を示す図である。 図9の情報処理コントローラが実行可能な機能について説明するための機能ブロック図である。 温度管理テーブルについて説明するための図である。 アプリケーションプログラム実行処理1について説明するためのフローチャートである。 温度情報管理処理1について説明するためのフローチャートである。 異常発生時の処理1について説明するためのフローチャートである。 処理の移動について説明するための図である。 本発明を適用した情報処理コントローラの構成を示す図である。 図18の情報処理装置のチップ内の構成について説明するための図である。 図18の情報処理コントローラのメインメモリが記憶するソフトウェアの構成を示す図である。 図18の情報処理コントローラが、第1のパターンにおいて実行可能な機能について説明するための機能ブロック図である。 マスタ装置の温度情報管理処理について説明するためのフローチャートである。 異常発生時の処理2について説明するためのフローチャートである。 スレーブ装置の温度情報管理処理について説明するためのフローチャートである。 図18の情報処理コントローラが、第2のパターンにおいて実行可能な機能について説明するための機能ブロック図である。 温度情報返信コマンドについて説明するための図である。 温度情報管理処理2について説明するためのフローチャートである。 異常発生時の処理3について説明するためのフローチャートである。 図18の情報処理コントローラが、第3のパターンにおいて実行可能な機能について説明するための機能ブロック図である サブプロセッサプログラム移動要求コマンドについて説明するための図である。 サブプロセッサプログラム移動返信コマンドについて説明するための図である。 温度情報管理処理3について説明するためのフローチャートである。 異常発生時の処理4について説明するためのフローチャートである。 本発明を適用した、複数の情報処理コントローラを備える情報処理装置の構成を示す図である。 本発明を適用した情報処理コントローラの構成を示す図である。 電力測定部の電力測定方法について説明するための図である。 図35の情報処理コントローラのメインメモリが記憶するソフトウェアの構成を示す図である。 図35の情報処理コントローラが、第1のパターンにおいて実行可能な機能について説明するための機能ブロック図である。 電力情報返信コマンドについて説明するための図である、 電力管理情報について説明するための図である。 アプリケーションプログラム実行処理2について説明するためのフローチャートである。 マスタ装置の電力情報管理処理について説明するためのフローチャートである。 異常発生時の処理5について説明するためのフローチャートである。 スレーブ装置の電力情報管理処理について説明するためのフローチャートである。 図35の情報処理コントローラが、第2のパターンにおいて実行可能な機能について説明するための機能ブロック図である。 電力情報管理処理1について説明するためのフローチャートである。 異常発生時の処理6について説明するためのフローチャートである。 図35の情報処理コントローラが、第3のパターンにおいて実行可能な機能について説明するための機能ブロック図である。 電力情報管理処理2について説明するためのフローチャートである。 異常発生時の処理7について説明するためのフローチャートである。 本発明を適用した、複数の情報処理コントローラを備える情報処理装置の構成を示す図である。 本発明を適用した、複数の情報処理コントローラを備え、ネットワークに接続されている情報処理装置の構成を示す図である。 本発明を適用した情報処理コントローラの構成を示す図である。 図53の情報処理コントローラのメインメモリが記憶するソフトウェアの構成を示す図である。 図53の情報処理コントローラが実行可能な機能について説明するための機能ブロック図である。 アプリケーションプログラム実行処理3について説明するためのフローチャートである。 マスタ装置の温度・電力情報管理処理について説明するためのフローチャートである。 異常発生時の処理8について説明するためのフローチャートである 異常発生時の処理8について説明するためのフローチャートである スレーブ装置の温度・電力情報管理処理について説明するためのフローチャートである。
符号の説明
1 情報処理装置, 2 ネットワーク, 3 情報処理装置, 11 情報処理コントローラ, 12 メインメモリ, 15 操作入力部, 16 通信部, 19 電源部, 42 メインプロセッサ, 43 サブプロセッサ,51 ローカルストレージ, 101 情報処理装置, 111 情報処理コントローラ, 121 温度検出部, 122 温度モニタ処理部, 161 演算処理部, 163 論理スレッド管理処理部, 164 温度情報取得部, 165 割り込み制御部, 167 温度管理テーブル, 168 温度上昇検出部, 169 温度異常対応処理制御部, 181 演算処理部, 185割り込み制御部, 186 スレッド交換処理部, 187 コード領域, 188,189 データ領域, 190 スタック領域, 211 MSマネージメント処理部, 212 能力交換処理部, 213 記憶部, 214 温度情報送受信制御部, 215 温度管理テーブル, 216 温度異常対応処理制御部, 231 記憶部, 232 温度情報送受信制御部, 233 温度管理テーブル, 234 温度異常対応処理制御部, 251 温度情報送受信制御部, 252 温度異常対応処理制御部, 301 情報処理装置, 311 情報処理コントローラ, 321 電力測定部, 331 電力管理処理部, 351 電力情報取得部, 352 割り込み制御部, 354 電力管理テーブル, 355 電力上昇検出部, 356 電力異常対応処理部, 357 論理スレッド管理処理部, 358 電力管理情報送受信制御部, 371 記憶部, 372 電力管理情報送受信制御部, 373 電力管理テーブル, 374 電力異常対応処理制御部, 391 電力管理情報送受信制御部, 392 電力異常対応処理制御部, 401 情報処理装置, 411 情報処理コントローラ, 421 温度電力管理処理部, 451 温度・電力情報取得部, 452 温度・電力管理テーブル, 453 異常検出部, 455 異常対応処理制御部 456 温度・電力管理情報送受信制御部, 457 論理スレッド管理処理部

Claims (7)

  1. メインプロセッサと、
    複数のサブプロセッサと、
    前記メインプロセッサおよび前記サブプロセッサの近傍の温度をそれぞれ検出する複数の温度検出手段と
    を備え、
    前記メインプロセッサは、
    アプリケーションプログラムの実行を制御するアプリケーションプログラム実行制御手段と、
    前記アプリケーションプログラム実行制御手段の処理により実行が制御される前記アプリケーションプログラムによって、複数の前記サブプロセッサに割り当てられる複数の処理をまとめて一つの機能を提供する処理単位とし、前記処理単位に対応する前記機能を提供するための分散処理を制御する分散処理制御手段と、
    前記メインプロセッサおよび前記サブプロセッサの上限温度、並びに、前記サブプロセッサの動作状態および配置情報を管理テーブルとして記録する記録手段と、
    複数の前記温度検出手段により検出された温度が、対応する前記上限温度を超えたか否かにより、前記メインプロセッサおよび複数の前記サブプロセッサの温度の異常を検出する異常検出手段と、
    前記異常検出手段により前記温度の異常が検出された場合、前記分散処理制御手段による前記分散処理を制御する異常時制御手段と
    を備え、
    前記異常時制御手段は、前記異常検出手段により前記サブプロセッサの温度の異常が検出された場合、温度の異常が検出されていない他の前記サブプロセッサのうち、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサを優先的に選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理を、選択された他の前記サブプロセッサが実行するように、前記分散処理制御手段に処理の割り当てを変更させる
    ことを特徴とする集積回路。
  2. 前記異常時制御手段は、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサが複数ある場合、前記温度検出手段により検出された前記近傍の温度が低い前記サブプロセッサを優先的に処理の割り当て先として選択する
    ことを特徴とする請求項に記載の集積回路。
  3. 前記異常時制御手段は、前記動作状態が停止状態である前記サブプロセッサが存在しない場合、前記温度検出手段により検出された温度が最も低い前記サブプロセッサを選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理と、選択された他の前記サブプロセッサにより実行されている処理とを交換するように、前記分散処理制御手段に処理の割り当てを変更させる
    ことを特徴とする請求項に記載の集積回路。
  4. 前記異常時制御手段は、前記メインプロセッサの温度の異常が検出されたとき、前記メインプロセッサの温度の異常が検出されなくなるまで、前記メインプロセッサの一部の処理を中断させるように、前記分散処理制御手段に制御させる
    ことを特徴とする請求項に記載の集積回路。
  5. 前記メインプロセッサおよび前記サブプロセッサの消費電力を測定する電力測定手段を更に備え、
    前記記録手段は、どの電源に接続されているかを示す電源接続情報と、接続される可能性のある電源ごとの消費電力上限も前記管理テーブルに記録し、
    前記異常検出手段は、前記電力測定手段により測定された前記消費電力の異常を更に検出し、
    前記異常時制御手段は、前記異常検出手段により前記温度の異常、または、前記消費電力の異常が検出された場合、前記分散処理制御手段による前記分散処理を制御する
    ことを特徴とする請求項に記載の集積回路。
  6. メインプロセッサおよび複数のサブプロセッサと、それらの近傍の温度をそれぞれ検出する複数の温度検出手段とを備える集積回路の、
    前記メインプロセッサが、
    複数の前記サブプロセッサに割り当てられる複数の処理をまとめて一つの機能を提供する処理単位とし、前記処理単位に対応する前記機能を提供するための分散処理を制御し、
    前記メインプロセッサおよび前記サブプロセッサの上限温度、並びに、前記サブプロセッサの動作状態および配置情報を記録した管理テーブルに基づいて、複数の前記温度検出手段により検出された温度が、対応する前記上限温度を超えたか否かにより、前記メインプロセッサおよび複数の前記サブプロセッサの温度の異常を検出し、
    前記サブプロセッサの温度の異常が検出された場合、温度の異常が検出されていない他の前記サブプロセッサのうち、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサを優先的に選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理を、選択された他の前記サブプロセッサが実行するように、処理の割り当てを変更する
    ステップを含むことを特徴とする集積回路の処理制御方法。
  7. コンピュータに、
    複数のサブプロセッサに割り当てられる複数の処理をまとめて一つの機能を提供する処理単位とし、前記処理単位に対応する前記機能を提供するための分散処理を制御し、
    メインプロセッサおよび複数の前記サブプロセッサの上限温度、並びに、前記サブプロセッサの動作状態および配置情報を記録した管理テーブルに基づいて、前記メインプロセッサおよび複数の前記サブプロセッサそれぞれの近傍の温度を検出する複数の温度検出手段により検出された温度が、対応する前記上限温度を超えたか否かにより、前記メインプロセッサおよび複数の前記サブプロセッサの温度の異常を検出し、
    前記サブプロセッサの温度の異常が検出された場合、温度の異常が検出されていない他の前記サブプロセッサのうち、現在動作中の前記サブプロセッサに隣接しないものであって、かつ、前記動作状態が停止状態である前記サブプロセッサを優先的に選択し、前記温度の異常が検出された前記サブプロセッサにより実行されている処理を、選択された他の前記サブプロセッサが実行するように、処理の割り当てを変更する
    機能を実現させるためのプログラム。
JP2004198300A 2004-07-05 2004-07-05 集積回路およびその処理制御方法、並びに、プログラム Expired - Fee Related JP4465598B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2004198300A JP4465598B2 (ja) 2004-07-05 2004-07-05 集積回路およびその処理制御方法、並びに、プログラム
US11/154,873 US7536229B2 (en) 2004-07-05 2005-06-17 Information processing apparatus, information processing method, and computer program
EP05253839A EP1615134A3 (en) 2004-07-05 2005-06-21 System and method for distributing processing among a plurality of processors based on information regarding the temperature of each processor
TW094122575A TWI289764B (en) 2004-07-05 2005-07-04 Information processing apparatus, information processing method, and program
CNB2005101249366A CN100383707C (zh) 2004-07-05 2005-07-05 信息处理设备,信息处理方法,及计算机程序
KR1020050060010A KR20060049835A (ko) 2004-07-05 2005-07-05 정보 처리 장치 및 정보 처리 방법과 프로그램
US12/292,408 US8086880B2 (en) 2004-07-05 2008-11-19 Information processing apparatus, information processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004198300A JP4465598B2 (ja) 2004-07-05 2004-07-05 集積回路およびその処理制御方法、並びに、プログラム

Publications (3)

Publication Number Publication Date
JP2006018758A JP2006018758A (ja) 2006-01-19
JP2006018758A5 JP2006018758A5 (ja) 2007-08-16
JP4465598B2 true JP4465598B2 (ja) 2010-05-19

Family

ID=35149503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004198300A Expired - Fee Related JP4465598B2 (ja) 2004-07-05 2004-07-05 集積回路およびその処理制御方法、並びに、プログラム

Country Status (6)

Country Link
US (2) US7536229B2 (ja)
EP (1) EP1615134A3 (ja)
JP (1) JP4465598B2 (ja)
KR (1) KR20060049835A (ja)
CN (1) CN100383707C (ja)
TW (1) TWI289764B (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4465598B2 (ja) * 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
US9063785B2 (en) * 2004-11-03 2015-06-23 Intel Corporation Temperature-based thread scheduling
US20060107262A1 (en) * 2004-11-03 2006-05-18 Intel Corporation Power consumption-based thread scheduling
US20070038749A1 (en) * 2005-07-29 2007-02-15 Broadcom Corporation Combined local and network storage interface
US8433770B2 (en) * 2005-07-29 2013-04-30 Broadcom Corporation Combined local and network storage interface
US8812169B2 (en) * 2005-10-31 2014-08-19 Hewlett-Packard Development Company, L.P. Heat sink verification
JP2007172359A (ja) * 2005-12-22 2007-07-05 Hitachi Ltd コンピュータシステム
US8051276B2 (en) * 2006-07-07 2011-11-01 International Business Machines Corporation Operating system thread scheduling for optimal heat dissipation
JP5046322B2 (ja) 2006-11-09 2012-10-10 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2010066785A (ja) * 2006-12-08 2010-03-25 Nec Corp 半導体集積回路、半導体集積回路制御装置、負荷分散方法、負荷分散プログラムおよび電子装置
US8615767B2 (en) 2007-02-06 2013-12-24 International Business Machines Corporation Using IR drop data for instruction thread direction
JP2009025950A (ja) * 2007-07-18 2009-02-05 Koyo Electronics Ind Co Ltd Cpu搭載電子装置のcpu冷却方法および該cpu搭載電子装置
US7729296B1 (en) * 2007-09-07 2010-06-01 Force 10 Networks, Inc. Distributed BPDU processing for spanning tree protocols
JP2009193385A (ja) * 2008-02-15 2009-08-27 Nec Corp コンピュータシステム
US8275825B2 (en) * 2009-06-03 2012-09-25 International Business Machines Corporation Thermal management using distributed computing systems
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
JP5392848B2 (ja) * 2010-01-06 2014-01-22 エヌイーシーコンピュータテクノ株式会社 情報処理装置及びその制御方法
US20110225593A1 (en) * 2010-03-11 2011-09-15 International Business Machines Corporation Interface-based environmentally sustainable computing
JP5895840B2 (ja) * 2010-05-26 2016-03-30 日本電気株式会社 マルチプロセッサシステム、実行制御方法、実行制御プログラム
US9697009B2 (en) * 2010-06-25 2017-07-04 AVG Netherlands B.V. Method for improving the performance of computers
US8843774B2 (en) * 2010-08-20 2014-09-23 Qualcomm Incorporated Method and apparatus for managing battery power in response to an indication of an application being scheduled for immediate execution
KR101181803B1 (ko) 2010-09-10 2012-09-11 에스비리모티브 주식회사 이차 전지
US9152218B2 (en) 2010-12-22 2015-10-06 Intel Corporation Framework for runtime power monitoring and management
KR101885857B1 (ko) 2012-01-04 2018-08-06 삼성전자주식회사 온도 관리 회로, 이를 포함하는 시스템 온 칩 및 온도 관리 방법
JP5962304B2 (ja) * 2012-07-31 2016-08-03 富士通株式会社 電源装置、処理装置、情報処理システム、及び電源制御方法
JP6256904B2 (ja) * 2013-04-18 2018-01-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 処理の要求を振り分ける装置及び方法
US9411642B2 (en) * 2014-01-17 2016-08-09 Nvidia Corporation Using high priority thread to boost CPU clock rate
JP5820001B2 (ja) * 2014-02-24 2015-11-24 ファナック株式会社 Cpuの異常検出機能を備えた制御装置
WO2015151548A1 (ja) * 2014-04-03 2015-10-08 ソニー株式会社 電子機器および記録媒体
US9652022B2 (en) * 2014-08-28 2017-05-16 Qualcomm Incorporated System and method for providing dynamic quality of service levels based on coprocessor operation
CN105760280B (zh) * 2014-12-18 2020-11-06 深圳富泰宏精密工业有限公司 耗电监控系统及方法
WO2016132586A1 (ja) * 2015-02-17 2016-08-25 三菱電機株式会社 電力変換システム
US9921754B2 (en) * 2015-07-28 2018-03-20 Futurewei Technologies, Inc. Dynamic coding algorithm for intelligent coded memory system
KR102465543B1 (ko) 2016-02-19 2022-11-10 삼성전자 주식회사 어플리케이션 및 컴포넌트를 제어하는 방법 및 전자장치
WO2017179537A1 (ja) * 2016-04-15 2017-10-19 日本電気株式会社 ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラムが格納された記録媒体
JP6724635B2 (ja) * 2016-07-28 2020-07-15 富士通株式会社 プログラム、管理方法、管理装置および情報処理システム
CN106642883B (zh) * 2016-11-23 2019-05-03 青岛海尔股份有限公司 冰箱及其制冷方法
CN109062759B (zh) * 2018-07-20 2021-07-16 郑州云海信息技术有限公司 一种温度获取方法、装置、设备及介质
US10831502B2 (en) * 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions
KR102649351B1 (ko) * 2018-11-06 2024-03-20 삼성전자주식회사 세분화된 상태들에 기초한 그래픽스 프로세서 및 그래픽스 처리 방법
US10831503B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction
US10831478B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
CN112752315B (zh) * 2019-10-31 2022-12-27 北京小米移动软件有限公司 降低终端温度的方法、降低终端温度的装置及存储介质
US11281474B2 (en) * 2020-03-31 2022-03-22 International Business Machines Corporation Partial computer processor core shutoff
JPWO2022230116A1 (ja) * 2021-04-28 2022-11-03

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635871A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd マルチプロセッサシステム
JPH0816531A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd プロセススケジュール方式
US5727221A (en) * 1994-12-22 1998-03-10 Texas Instruments Incorporated Computer system power management interconnection circuitry and systems
US5692197A (en) 1995-03-31 1997-11-25 Sun Microsystems, Inc. Method and apparatus for reducing power consumption in a computer network without sacrificing performance
JPH09311839A (ja) * 1996-05-21 1997-12-02 Hitachi Ltd データ共用方式
US5859838A (en) * 1996-07-30 1999-01-12 Qualcomm Incorporated Load monitoring and management in a CDMA wireless communication system
US5923830A (en) 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
JPH11296488A (ja) * 1998-04-09 1999-10-29 Hitachi Ltd 電子機器
US6091255A (en) * 1998-05-08 2000-07-18 Advanced Micro Devices, Inc. System and method for tasking processing modules based upon temperature
JP3570905B2 (ja) 1998-10-06 2004-09-29 日本電気株式会社 マルチプロセッサ及びマルチプロセッサの制御方法
JP3275871B2 (ja) * 1999-02-24 2002-04-22 日本電気株式会社 プリンタシステム及びそれに用いるプリンタ
JP4240695B2 (ja) 1999-11-12 2009-03-18 株式会社日立製作所 機器間協調制御方法及びシステム
JP2001290697A (ja) * 2000-04-06 2001-10-19 Hitachi Ltd 情報処理システム
JP2002108839A (ja) * 2000-09-28 2002-04-12 Mitsubishi Electric Corp 通信ネットワークシステム、ジョブ割当方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
JP2002304232A (ja) 2001-04-03 2002-10-18 Sony Corp 演算処理システム及び演算処理制御方法、並びに記憶媒体
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue
US7086058B2 (en) * 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
JP2004126968A (ja) * 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
JP4027219B2 (ja) 2002-12-19 2007-12-26 理研計器株式会社 赤外線式ガス検知装置
JP4224690B2 (ja) 2002-12-27 2009-02-18 ソニー株式会社 記録方法、記録装置、再生方法、再生装置および撮像装置
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
JP4465598B2 (ja) * 2004-07-05 2010-05-19 ソニー株式会社 集積回路およびその処理制御方法、並びに、プログラム
US7895455B2 (en) * 2007-06-25 2011-02-22 Hewlett-Packard Development Company, L.P. Dynamic converter control for efficient operation

Also Published As

Publication number Publication date
KR20060049835A (ko) 2006-05-19
TW200613999A (en) 2006-05-01
EP1615134A2 (en) 2006-01-11
CN100383707C (zh) 2008-04-23
CN1760804A (zh) 2006-04-19
EP1615134A3 (en) 2011-11-30
US20060005097A1 (en) 2006-01-05
TWI289764B (en) 2007-11-11
US20090083557A1 (en) 2009-03-26
US8086880B2 (en) 2011-12-27
US7536229B2 (en) 2009-05-19
JP2006018758A (ja) 2006-01-19

Similar Documents

Publication Publication Date Title
JP4465598B2 (ja) 集積回路およびその処理制御方法、並びに、プログラム
JP5490093B2 (ja) ストレージシステムおよびその制御方法
US8074110B2 (en) Enhancing reliability of a many-core processor
JP4380986B2 (ja) クロック制御装置及びその記録媒体
CN1097228C (zh) 信息处理系统
CN1742249B (zh) 多处理器计算系统及其计算组件内的电源管理方法
JP5545108B2 (ja) ストレージシステム、制御装置および制御方法
JP5385458B2 (ja) 計算機システムおよびその更改方法
US20050283673A1 (en) Information processing apparatus, information processing method, and program
JP6130520B2 (ja) 多重系システムおよび多重系システム管理方法
JP4717922B2 (ja) 情報処理システム、情報処理システムにおける制御方法、および、管理装置
CN1097236C (zh) 信息处理系统
JP2007286975A (ja) 計算機システム及びストレージシステム並びにボリューム割り当て方法
JP2009037403A (ja) マルチコアプロセッサにおけるコアメモリの有効活用方法
JP5704176B2 (ja) プロセッサ処理方法、およびプロセッサシステム
JP2008243049A (ja) 情報処理装置および同装置のメモリ制御方法
JP2008165318A (ja) 計算機システム
JP2010009551A (ja) 管理サーバ、仮想記憶領域利用方法、仮想記憶領域利用プログラム及びメモリー領域管理プログラム
JP5942014B2 (ja) 管理計算機及び更改方法
JP2010198464A (ja) 論理ユニット管理方法、プログラムおよびディスク装置
JP2013257915A (ja) 管理計算機
JP5746397B2 (ja) 管理計算機及び更改方法
JP5729084B2 (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP2019028934A (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070704

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100128

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100210

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees