JP2005339401A - 情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラム - Google Patents
情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラム Download PDFInfo
- Publication number
- JP2005339401A JP2005339401A JP2004160169A JP2004160169A JP2005339401A JP 2005339401 A JP2005339401 A JP 2005339401A JP 2004160169 A JP2004160169 A JP 2004160169A JP 2004160169 A JP2004160169 A JP 2004160169A JP 2005339401 A JP2005339401 A JP 2005339401A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- sub
- processor
- program
- processing unit
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Storage Device Security (AREA)
Abstract
【課題】 装置内の情報処理コントローラは一部のサブプロセッサを同じ情報処理装置内の他の情報処理ユニットに補助プロセッサとして利用させる。
【解決手段】 情報処理ユニットはサブプロセッサのローカルストレージを自己のアドレス空間にマッピングするとともに、サブプロセッサに実行を依頼するサブプロセッサプログラムを配置する。メインプロセッサは、情報処理ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、並びに割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始、停止、割り込みを行なう。
【選択図】 図16
【解決手段】 情報処理ユニットはサブプロセッサのローカルストレージを自己のアドレス空間にマッピングするとともに、サブプロセッサに実行を依頼するサブプロセッサプログラムを配置する。メインプロセッサは、情報処理ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、並びに割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始、停止、割り込みを行なう。
【選択図】 図16
Description
本発明は、接続された2以上の機器間における動作を連携させる情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムに係り、特に、接続された2以上の機器間における動作を連携させる情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムに関する。
さらに詳しくは、本発明は、接続された複数の機器が協調動作により分散処理を行なうことで、仮想的に1台の機器として動作する情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムに係り、特に、1以上のサブプロセッサと各サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサからなるマルチプロセッサ構成の情報処理コントローラを具備する情報処理装置が、同じ情報処理装置内の他ユニット又は外部の機器と連携動作する情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムに関する。
複数のコンピュータ同士をネットワークで相互接続することにより、情報資源の共有、ハードウェア資源の共有、複数のユーザ間でのコラボレーションが実現することが知られている。コンピュータ間の接続メディアとして、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどさまざまである。
特に最近では、一般家庭内にもコンピュータやネットワークなどの技術が深く浸透してきている。家庭内のパーソナル・コンピュータやPDA(Personal Digital Assistants)などの情報機器、さらにはテレビ受像機やビデオ再生装置などAV機器や、各種の情報家電、CE(Consumer Electronics)機器などがホームネットワーク経由で相互接続されている。また、このようなホームネットワークは、多くの場合、ルータ経由でインターネットを始めとする外部の広域ネットワークに相互接続されている。
ところが、ホームネットワーク上に複数のAV機器が接続されるという利用形態が想定されるが、いままでは、AV機器間で充分な連携がなされていない、という問題がある。
このような問題に対し、最近では、ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するというグリッドコンピューティング技術に関する研究開発が進められている(例えば、特許文献1〜5を参照のこと)。
このグリッドコンピューティング技術によれば、ネットワーク上の複数の情報処理装置が強調動作して分散処理を行ない、ユーザからは仮想的に1台の情報処理装置として動作することができる。
例えば、録画予約機能を持つ複数台の情報処理装置がネットワーク上に接続されている場合、録画予約の連携動作を実現することができる。すなわち、複数台の情報処理装置がホームネットワーク経由で録画予約の動作を連携させている場合、ホームネットワーク上では仮想的に1台の録画機器として動作する。そして、ユーザは、いずれかの機器のユーザ・インターフェースを用いて、ホームネットワークに接続されている任意の機器を用いて録画予約を行なうことができる。
さらにこのような録画予約機能の連携により、予約時間が重複した番組(いわゆる裏番組)を同時録画することが可能である。同様に、記録したコンテンツの再生動作を複数の機器間で連携させ、同時・同期的なコンテンツ再生を実現することができる。このコンテンツ再生機能の連携により、別々の機器で記録されたコンテンツの再生を同時、同期的に進行させることにより、コンテンツ再生においてチャンネル切り換えの概念を導入することができる。
このような仮想的な1台の機器によれば、1台の機器のハードウェア資源や処理能力だけではユーザからの要求に応じることができない場合であっても、ネットワーク上で連携・協調動作する他の機器における余剰の処理能力を活用することで、ユーザの要求に応じることができ、さらに通常の1台の機器では現実的ではないサービスを実現することができる。
グリッドコンピューティングを実現する個々の情報処理装置は、情報処理コントローラを備える。情報処理コントローラには、自己のローカル・メモリ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと、サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサが装備されている。
このような情報処理コントローラにおいては、メインプロセッサは各サブプロセッサが持つ余剰処理能力などの資源管理を行ない、複数の機能を同時並行して実行することができる。例えば、テレビ番組の録画予約や、録画コンテンツの再生や、シーン認識、再エンコード・画質改善などの録画コンテンツに関する付加的な処理を、サブプロセッサを用いて分散処理することができる。
ここで、情報処理コントローラ内で1以上の処理を行なう場合、必ずしもすべてのサブプロセッサを用いて分散処理する必要はなく、一部のサブプロセッサを他の目的で使用することができる。
個々のサブプロセッサは、それぞれ関連付けられたローカルストレージを持ち、ローカルストレージ上に展開されたサブプロセッサプログラムを実行することができる。例えば、上述したような複数の機器が協調動作により分散処理を行なうことで、仮想的に1台の機器として動作するグリッドコンピューティングシステムにおいては、マルチプロセッサ構成の情報処理コントローラが複数のサブプロセッサの一部を、外部の情報処理装置に補助プロセッサとして利用させることにより、上記の分散処理技術が好適に実現される。また、外部の情報処理装置の性能を低く抑えることが可能となり、システム全体として低コストで高い処理性能を実現する可能性がある。
しかしながら、従来の手法では、サブプロセッサプログラムの実行を依頼してから実行が開始されるまでには、複雑な手続きと時間を要し、外部の情報処理装置が簡便に低遅延でサブプロセッサプログラムを実行させることができず、高い処理性能を実現することができない。
また、従来は、他の情報処理装置内の情報処理コントローラに機能プログラムを実行させるためには、高い処理能力と通信装置が必要とされ、このような機能を装備しない情報処理装置は他の情報処理装置内の情報処理コントローラのサブプロセッサを利用することができない。すなわち、他の情報処理装置が持つ情報処理コントローラのサブプロセッサを利用できない情報処理装置は、自らの情報処理コントローラ内にサブプロセッサを装備する必要があり、低コストの機器を実現することができない。
本発明は、上述したような技術的課題を鑑みたものであり、その主な目的は、接続された2以上の機器間における動作を好適に連携させることができる、優れた情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムを提供することにある。
本発明のさらなる目的は、接続された複数の機器が協調動作により分散処理を行なうことで、仮想的に1台の機器として好適に動作することができる、優れた情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムを提供することにある。
本発明のさらなる目的は、1以上のサブプロセッサと各サブプロセッサにプログラムの実行を命令するメインプロセッサからなるマルチプロセッサ構成の情報処理コントローラを備える情報処理装置が外部の機器と好適に連携動作することができる、優れた情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムを提供することにある。
本発明のさらなる目的は、仮想的に1台の機器として動作するグリッドコンピューティングシステムにおいて、マルチプロセッサ構成の情報処理コントローラが一部のサブプロセッサを同じ情報処理装置内の他ユニットに利用させることができる、優れた情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムを提供することにある。
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、ネットワーク接続された複数の情報処理装置が協調動作により分散処理を行なう情報処理システムに含まれる情報処理装置であって、
自己のローカルストレージ上に展開されたプログラムを実行可能な1以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラと、
前記情報処理コントローラにおける一部のサブプロセッサを利用する当該情報処理装置内の情報処理ユニットと、
利用するサブプロセッサのローカルストレージを前記情報処理ユニットのアドレス空間にマッピングするアドレスマッピング手段と、
前記情報処理ユニットが利用するサブプロセッサのローカルストレージ上に前記情報処理ユニットが該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置手段と、
を具備することを特徴とする情報処理装置である。
自己のローカルストレージ上に展開されたプログラムを実行可能な1以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラと、
前記情報処理コントローラにおける一部のサブプロセッサを利用する当該情報処理装置内の情報処理ユニットと、
利用するサブプロセッサのローカルストレージを前記情報処理ユニットのアドレス空間にマッピングするアドレスマッピング手段と、
前記情報処理ユニットが利用するサブプロセッサのローカルストレージ上に前記情報処理ユニットが該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置手段と、
を具備することを特徴とする情報処理装置である。
本発明は、ネットワーク接続された複数の機器が協調動作により分散処理を行なうことで、仮想的に1台の機器として好適に動作する、グリッドコンピューティングを実現する情報処理システムに関する。この種のシステムを構成する少なくとも一部の情報処理装置は、マルチプロセッサ構成の情報処理コントローラを採用し、当該情報処理コントローラは自己のローカル・メモリ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと、サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサが装備されている。
このような情報処理コントローラにおいては、メインプロセッサは各サブプロセッサが持つ余剰処理能力などの資源管理を行ない、複数の機能を同時並行して実行することができる。ここで、必ずしもすべてのサブプロセッサを用いる必要はなく、一部のサブプロセッサを他の目的で使用することができ、例えば同じ情報処理装置内の他ユニットに余剰のサブプロセッサの利用を許可することができる。
本発明によれば、情報処理コントローラは、簡単な手続きと短い時間で、情報処理コントローラ内の一部のサブプロセッサの利用の許可を受けることができる。
すなわち、同じ情報処理装置内の他ユニットは、情報処理コントローラ内の利用するサブプロセッサのローカルストレージを自己のアドレス空間にマッピングするとともに、サブプロセッサに実行を依頼するサブプロセッサプログラムを配置する。そして、情報処理コントローラ内のメインプロセッサに対し、サブプロセッサプログラム実行の開始、停止、割り込みの要求を行なうようにすればよい。情報処理コントローラ内のメインプロセッサは、前記他ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、並びに割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始又は停止、あるいは割り込みを行なうようにする。また、前記メインプロセッサは、前記サブプロセッサからの割り込みを前記他ユニットに通知するようにする。
したがって、本発明によれば、同じ情報処理装置内の他ユニットは、情報処理装置コントローラに対し、簡便に低遅延でサブプロセッサプログラムを実行させることができ、高い処理性能を実現することができる。この結果、前記他ユニットは、自らサブプロセッサを装備することなく、同等の性能を得ることができるので、低コストの機器を実現することができる。
ここで、各サブプロセッサが持つ余剰の処理能力を基に、前記他ユニットが利用するサブプロセッサを決定することができる。
前記他ユニットにおいて、サブプロセッサのストレージをマッピングしたアドレスへのアクセス要求が行なわれた場合には、前記情報処理コントローラにおいて該サブプロセッサのローカルストレージのアドレスへアドレス変換され、アクセスが実現する。
また、前記情報処理コントローラの各サブプロセッサのローカルストレージへの不正アクセスを禁止する保護手段を介していてもよい。
この保護手段は、前記他ユニットが利用していないサブプロセッサのローカルストレージへの前記他ユニットによるアクセス要求は、これを不正アクセスとして禁止する。
また、保護手段は、前記情報処理コントローラのメインプロセッサや他のサブプロセッサからの、前記他ユニットが利用するサブプロセッサのローカルストレージへのアクセス要求があったときには、これを不正アクセスとして禁止するようにする。
また、本発明の第2の側面は、自己のローカルストレージ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと前記サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラの一部のサブプロセッサを情報処理ユニットが利用するための処理を情報処理コントローラ上で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって、
各サブプロセッサを管理する資源管理ステップと、
前記情報処理ユニットが利用するサブプロセッサを決定する利用サブプロセッサ決定ステップと、
前記情報処理ユニットが利用するサブプロセッサのローカルストレージ上に前記情報処理ユニットが該サブプロセッサに実行を依頼する処理サブプロセッサプログラムを配置するサブプロセッサプログラム配置ステップと、
前記情報処理ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、又は割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始、停止、又は割り込みするステップと、
を具備することを特徴とするコンピュータプログラムである。
各サブプロセッサを管理する資源管理ステップと、
前記情報処理ユニットが利用するサブプロセッサを決定する利用サブプロセッサ決定ステップと、
前記情報処理ユニットが利用するサブプロセッサのローカルストレージ上に前記情報処理ユニットが該サブプロセッサに実行を依頼する処理サブプロセッサプログラムを配置するサブプロセッサプログラム配置ステップと、
前記情報処理ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、又は割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始、停止、又は割り込みするステップと、
を具備することを特徴とするコンピュータプログラムである。
また、本発明の第3の側面は、自己のローカルストレージ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと前記サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラの資源を利用するための処理を情報処理ユニット上で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって、
利用するサブプロセッサのローカルストレージを自己のアドレス空間にマッピングするアドレスマッピングステップと、
利用するサブプロセッサのローカルストレージ上に該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置ステップと、
前記メインプロセッサに対し、利用するサブプロセッサによるサブプロセッサプログラム実行の開始、停止、又は割り込みを要求するサブプロセッサプログラム実行要求ステップと、
を具備することを特徴とするコンピュータプログラムである。
利用するサブプロセッサのローカルストレージを自己のアドレス空間にマッピングするアドレスマッピングステップと、
利用するサブプロセッサのローカルストレージ上に該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置ステップと、
前記メインプロセッサに対し、利用するサブプロセッサによるサブプロセッサプログラム実行の開始、停止、又は割り込みを要求するサブプロセッサプログラム実行要求ステップと、
を具備することを特徴とするコンピュータプログラムである。
本発明の第2及び第3の各側面に係るコンピュータプログラムは、情報処理コントローラ又は他ユニット上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータプログラムを定義したものである。換言すれば、本発明の第2及び第3の各側面に係るコンピュータプログラムを情報処理コントローラ又は他ユニットにインストールすることによって、情報処理コントローラ及び他ユニット上では協働的作用が発揮され、動作することにより、情報処理コントローラが持つ一部のサブプロセッサを他ユニットが利用するという連携動作が実現され、本発明の第1の側面に係る情報処理装置と同様の作用効果を得ることができる。
本発明によれば、接続された2以上の機器間における動作を好適に連携させることができる、優れた情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムを提供することができる。
また、本発明によれば、接続された複数の機器が協調動作により分散処理を行なうことで、仮想的に1台の機器として好適に動作することができる、優れた情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムを提供することができる。
また、本発明によれば、1以上のサブプロセッサと各サブプロセッサにプログラムの実行を命令するメインプロセッサからなるマルチプロセッサ構成の情報処理コントローラを備える情報処理装置が外部の機器と好適に連携動作することができる、優れた情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムを提供することができる。
また、本発明によれば、仮想的に1台の機器として動作するグリッドコンピューティングシステムにおいて、マルチプロセッサ構成の情報処理コントローラが一部のサブプロセッサを同じ情報処理装置内の他ユニットに利用させることができる、優れた情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラムを提供することができる。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
以下、図面を参照しながら本発明の実施形態について詳解する。
A.システム構成
本発明は、2以上の情報処理装置間における動作をホームネットワーク経由で好適に連携させることにより、別々の場所に設定されている各機器における録画予約操作を簡易且つ効率的にするものである。ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するためのグリッドコンピューティング技術を活用する。
本発明は、2以上の情報処理装置間における動作をホームネットワーク経由で好適に連携させることにより、別々の場所に設定されている各機器における録画予約操作を簡易且つ効率的にするものである。ネットワーク上の機器同士を連携させるために、機器の協調動作により高い演算性能を実現するためのグリッドコンピューティング技術を活用する。
図1には、グリッドコンピューティングを適用して構成される、ネットワークシステムの構成を模式的に示している。
ネットワークは、インターネットやその他の広域ネットワーク、並びに、広域ネットワークとはゲートウェイなどを介して接続されるLAN(Local Area Network)やホームネットワークなどのプライベートなネットワークで構成される。ホームネットワークは、物理的には、10BaseTや100BaseTX、Giga eatherなどの標準的なネットワークインターフェースで構成することができる。また、ホームネットワーク上で他の機器を発見する仕組みとしてUpnp(Universal Plug and Play)を利用することができる。Upnpによれば、ネットワーク接続された機器間で、XML(eXtended Markup Language)形式で記述された定義ファイルを交換し、アドレッシング処理、ディスカバリ処理、サービス要求処理を経て相互認証を行なう。あるいは同一セグメント内での規定の機器情報を記述したパケットのブロードキャストすることによっても実現可能である。
ネットワーク上には、複数の情報処理装置が接続されている。情報処理装置の例として、DVDレコーダやHDレコーダのような、記録メディアを搭載し録画予約機能を備えたAV機器、あるいはコンパクト・ディスクなどの記録機能を持たない再生専用のAV機器、その他の情報処理装置が挙げられる。また、情報処理装置の他の例は、PDAやパーソナル・コンピュータなどの計算機処理システムを挙げることができる。図1に示す例では、ネットワーク9を介して複数の情報処理装置1、2、3、4が接続されている。
A−1.情報処理装置及び情報処理コントローラ
情報処理装置1、2、3、4は、例えば各種のAV(Audio and Visual)機器やポータブル機器である(後述)。
情報処理装置1、2、3、4は、例えば各種のAV(Audio and Visual)機器やポータブル機器である(後述)。
図示の通り、情報処理装置1は、コンピュータ機能部として情報処理コントローラ11を備える。情報処理コントローラ11は、メインプロセッサ21−1、サブプロセッサ23−1、23−2、23−3、DMAC(ダイレクトメモリアクセスコントローラ)25−1、及びDC(ディスクコントローラ)27−1を備えている。情報処理コントローラ11は、ワンチップIC(集積回路)として構成することが望ましい。
メインプロセッサ21−1は、サブプロセッサ23−1、23−2、23−3によるプログラム実行(データ処理)のスケジュール管理と、情報処理コントローラ11(情報処理装置1)の全般的な管理とを行なう。但し、メインプロセッサ21−1内で管理を行なうためのプログラム以外のプログラムが動作するように構成することもできる。この場合、メインプロセッサ21−1はサブプロセッサとしても機能することになる。メインプロセッサ21−1は、LS(ローカル・ストレージ)22−1を備えている。
1台の情報処理装置に備わるサブプロセッサは1つでもよいが、望ましくは複数とする。図示の例では、複数の場合である。各サブプロセッサ23−1、23−2、23−3は、メインプロセッサ21−1の制御下で、並列的且つ独立にプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ21−1内のプログラムがサブプロセッサ23−1、23−2、23−3内のプログラムと連携して動作することもできる。各サブプロセッサ23−1、23−2、23−3も、それぞれLS(ローカルストレージ)24−1、24−2、24−3を備えている。
DMAC(直接メモリアクセスコントローラ)25−1は、情報処理コントローラ11に接続されたDRAM(ダイナミックRAM)などからなるメインメモリ26−1に格納されているプログラム及びデータにプロセッサの介在なしにアクセスするものである。また、DC(ディスクコントローラ)27−1は、情報処理コントローラ11に接続された外部記録部28−1、28−2へのアクセス動作を制御する。
外部記録部28−1、28−2は、固定ディスク(ハードディスク)、あるいはリムーバブルディスクのいずれの形態でもよい。また、リムーバブルディスクとして、MO(磁気ディスク)、CD±RW、DVD±RWなどの光ディスク、メモリディスク、SRAM(スタティックRAM)、ROMなど各種の記録メディアを用いることができる。DC27−1は、ディスクコントローラと称するが、要するに外部記録部コントローラである。図1に示すように、外部記録部28を複数接続できるように、情報処理コントローラ11を構成することができる。
メインプロセッサ21−1、各サブプロセッサ23−1、23−2、23−3、DMAC25−1、及びDC27−1は、バス29−1によって相互接続されている。
情報処理コントローラ11には、当該情報処理コントローラ11を搭載する情報処理装置1をネットワーク全体を通して一意に識別できる識別子が、情報処理装置IDとして割り当てられている。また、メインプロセッサ21−1及び各サブプロセッサ23−1、23−2、23−3に対しても同様に、それぞれを特定できる識別子が、メインプロセッサID及びサブプロセッサIDとして割り当てられる。
他の情報処理装置2、3、4も同様に構成されるので、ここでは説明を省略する。ここで、親番号が同一であるユニットは枝番号が異なっていても、特に断りがない限り同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いによる差異を生じないものとする。
A−2.各サブプロセッサからメインメモリへのアクセス
上述したように、1つの情報処理コントローラ内の各サブプロセッサ23は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ26内の同一領域に対して同時に読み出し又は書き込みを行なった場合には、データの不整合を生じ得る。そこで、サブプロセッサ23からメインメモリ26へのアクセスは、以下のような手順によって行なう。
上述したように、1つの情報処理コントローラ内の各サブプロセッサ23は、独立にプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ26内の同一領域に対して同時に読み出し又は書き込みを行なった場合には、データの不整合を生じ得る。そこで、サブプロセッサ23からメインメモリ26へのアクセスは、以下のような手順によって行なう。
図2(A)には、メインメモリ26内のロケーションを示している。同図に示すように、メインメモリ26は複数のアドレスを指定できるメモリロケーションによって構成され、各メモリロケーションに対してデータの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、F/Eビット、サブプロセッサID及びLSアドレス(ローカル・ストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述のアクセス・キーも割り振られる。F/Eビットは、以下のように定義される。
F/Eビット=0は、サブプロセッサ23によって読み出されている処理中のデータ、又は空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、F/Eビット=0は、当該メモリ・ロケーションにデータ書き込み可能であることを示し、書き込み後に1に設定される。
F/Eビット=1は、当該メモリロケーションのデータがサブプロセッサ23によって読み出されておらず、未処理の最新データであることを示す。当該メモリ・ロケーションのデータは読み出し可能であり、サブプロセッサ23によって読み出された後に0に設定される。また、F/Eビット=1は、当該メモリ・ロケーションがデータ書き込み不可であることを示す。
さらに、上記F/Eビット=0(読み出し不可/書き込み可)の状態において、当該メモリ・ロケーションについて読み出し予約を設定することは可能である。F/Eビット=0のメモリロケーションに対して読み出し予約を行なう場合には、サブプロセッサ23は、読み出し予約を行なうメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ23のサブプロセッサID及びLSアドレスを書き込む。
その後、データ書き込み側のサブプロセッサ23により、読み出し予約されたメモリ・ロケーションにデータが書き込まれ、F/Eビット=1(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサID及びLSアドレスに読み出される。
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し/書き込みを制御することにより、前段階の処理を行なうサブプロセッサ23が処理済みのデータをメインメモリ26上の所定のアドレスに書き込んだ後に即座に、後段階の処理を行なう別のサブプロセッサ23が前処理後のデータを読み出すことが可能となる。
また、図2(B)には、各サブプロセッサ23内のLS24におけるメモリロケーションを示している。同図に示すように、各サブプロセッサ23内のLS24も、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含むものとされる。
サブプロセッサ23がメインメモリ26内のデータを自身のLS24のメモリロケーションに読み出すときには、対応するビジービットを1に設定して予約する。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。LS24のメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
図2(A)に示すように、さらに、各情報処理コントローラと接続されたメインメモリ26には、メインメモリ26内の領域を画定する複数のサンドボックスが含まれる。メインメモリ26は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。各サンドボックスは、サブプロセッサ23毎に割り当てられ、該当するサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ23は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行なうことはできない。
さらに、メインメモリ26の排他的な制御を実現するために、図2(C)に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のSRAMのような比較的高速のメモリに格納され、DMAC25と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサID、サブプロセッサ・キー及びキーマスクが含まれる。
サブプロセッサ23がメインメモリ26を使用する際のプロセスは、以下の通りである。まず、サブプロセッサ23はDMAC25に、読み出し又は書き込みのコマンドを出力する。このコマンドには、自身のサブプロセッサIDと、使用要求先であるメインメモリ26のアドレスが含まれる。
DMAC25は、このコマンドを実行する前にキー管理テーブルを参照し、使用要求元のサブプロセッサのサブプロセッサキーを調べる。次に、DMAC25は、調べた使用要求元のサブプロセッサキーと、使用要求先であるメインメモリ26内の図2(A)に示したメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、上記のコマンドを実行する。
図2(C)に示したキー管理テーブル上のキーマスクは、その任意のビットが1になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが0又は1になることができる。
例えば、サブプロセッサキーが1010であるとする。通常、このサブプロセッサキーによって1010のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが0001に設定されている場合には、キーマスクのビットが1に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー1010によってアクセスキーが1010又は1011のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ26のサンドボックスの排他性が実現される。すなわち、1つの情報処理コントローラ内に配置された複数のサブプロセッサによってデータを多段階に処理する必要がある場合、前段階の処理を行なうサブプロセッサと、後段階の処理を行なうサブプロセッサのみが、メインメモリ26の所定アドレスにアクセスできるようになり、データを保護することができる。
このようなメモリの排他制御は、例えば以下のように使用することができる。まず、情報処理装置の起動直後においては、キーマスクの値はすべてゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のプログラムと連携動作するものとする。第1のサブプロセッサにより出力された処理結果データを一旦メインメモリに格納し、第2のサブプロセッサに入力したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。このような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的の処理を可能にする。
より具体的には、他の情報処理装置からのデータ→第1のサブプロセッサによる処理→第1のメインメモリ領域→第2のサブプロセッサによる処理→第2のメインメモリ領域、という手順で多段階処理が行なわれるときには、以下のような設定のままでは、第2のサブプロセッサは第1のメインメモリ領域にアクセスすることができない。
第1のサブプロセッサのサブプロセッサ・キー:0100、
第1のメインメモリ領域のアクセス・キー :0100、
第2のサブプロセッサのサブプロセッサ・キー:0101、
第2のメインメモリ領域のアクセス・キー :0101
第1のメインメモリ領域のアクセス・キー :0100、
第2のサブプロセッサのサブプロセッサ・キー:0101、
第2のメインメモリ領域のアクセス・キー :0101
そこで、第2のサブプロセッサのキーマスクを0001にすることにより、第2のサブプロセッサによる第1のメインメモリ領域へのアクセスを可能にすることができる。
A−3.ソフトウェアセルの生成及び構成
図1のネットワークシステムでは、情報処理装置1、2、3、4間での分散処理のために、情報処理装置1、2、3、4間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置に送信することによって、処理を分散することができる。
図1のネットワークシステムでは、情報処理装置1、2、3、4間での分散処理のために、情報処理装置1、2、3、4間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、コマンド、プログラム及びデータを含むソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置に送信することによって、処理を分散することができる。
図3には、ソフトウェアセルの構成の一例を示している。図示のソフトウェアセルは、送信元ID、送信先ID、応答先ID、セルインターフェース、DMAコマンド、プログラム、及びデータによって構成される。
送信元IDには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレス及び当該情報処理装置内の情報処理コントローラの情報処理装置ID、さらに、当該情報処理装置内の情報処理コントローラが備えるメインプロセッサ21及び各サブプロセッサ23の識別子(メインプロセッサID及びサブプロセッサID)が含まれる。
送信先ID及び応答先IDには、ソフトウェアセルの送信先である情報処理装置、及びソフトウェアセルの実行結果の応答先である情報処理装置についての同じ情報がそれぞれ含まれる。
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルID、必要なサブプロセッサの情報、サンドボックスサイズ、及び前回のソフトウェアセルIDで構成される。
グローバルIDは、ネットワーク全体を通して当該のソフトウェアセルを一意的に識別できるものであり、送信元IDと、ソフトウェアセルの作成又は送信の日時(日付及び時刻)に基づいて作成される。
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数が設定される。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ26内及びサブプロセッサ23のLS24内のメモリ量が設定される。
前回のソフトウェアセルIDは、ストリーミングデータなどのシーケンシャルな実行を要求する1グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
ソフトウェアセルの実行セクションは、DMAコマンド、プログラム及びデータで構成される。DMAコマンドには、プログラムの起動に必要な一連のDMAコマンドが含まれ、プログラムには、サブプロセッサ23によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
さらに、DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、及びステータス返信コマンドが含まれる。
ロードコマンドは、メインメモリ26内の情報をサブプロセッサ23内のLS24にロードするコマンドであり、ロードコマンド自体の他に、メインメモリアドレス、サブプロセッサID及びLSアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ26内の所定領域のアドレスを示す。サブプロセッサID及びLSアドレスは、情報のロード先であるサブプロセッサ23の識別子及びLS24のアドレスを示す。
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンド自体の他に、サブプロセッサID及びプログラムカウンタを含む。サブプロセッサIDは、キック対象のサブプロセッサ23を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
機能プログラム実行コマンドは、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである(後述)。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、機能プログラムID(後述)によって、起動すべき機能プログラムを識別する。
ステータス要求コマンドは、送信先IDで示される情報処理装置の現在の動作状態(状況)に関する装置情報を、応答先IDで示される情報処理装置宛に送信要求するコマンドである。機能プログラムについては後述するが、図6に示す情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ26にロードされ、メインプロセッサ21により実行される。
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先IDで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
図4には、DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示している。
情報処理装置IDは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のIDを示す。情報処理装置IDは、電源投入時に、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21によって、電源投入時の日時、情報処理装置のネットワークアドレス及び情報処理装置内の情報処理コントローラに含まれるサブプロセッサ23の数などに基づいて生成される。
情報処理装置種別IDには、当該情報処理装置の特徴を表す値が含まれる。ここで言う情報処理装置の特徴とは、例えば、ハードディスクレコーダ(後述)、PDA(Personal Digital Assistants)、ポータブルCD(Compact Disc)プレーヤなどである。また、情報処理装置種別IDは、映像音声記録、映像音声再生など、情報処理装置が持つ機能を表すものであってもよい、情報処理装置の特徴や機能を表す値はあらかじめ決められているものとし、情報処理装置種別IDを呼び出すことにより当該情報処理装置の特徴や機能を把握することが可能である。
MS(マスター/スレーブ)ステータスは、後述するように情報処理装置がマスター装置又はスレーブ装置のいずれで動作しているかを表すもので、これが0に設定されている場合にはマスター装置として動作していることを示し、1に設定されている場合にはスレーブ装置として動作していることを示す。
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ21の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ21で現在動作しているすべてのプログラムについての、メインプロセッサ21での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるMIPS[Million Instructions Per Second]を単位として算出され、又は単位時間当りのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ23の数を表す。サブプロセッサIDは、当該の情報処理コントローラ内の各サブプロセッサ23を識別するための識別子である。
サブプロセッサステータスは、各サブプロセッサ23の状態を表すものであり、unused、reserved,busyなどの状態がある。unusedは、当該サブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。reservedは、現在は使用されていないが、予約されている状態を示す。busyは、現在使用中であることを示す。
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、又は当該のサブプロセッサに実行が予約されているプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがbusyである場合には、現在の使用率を示し、サブプロセッサステータスがreservedである場合には、後に使用される予定の推定使用率を示す。
サブプロセッサID、サブプロセッサステータス及びサブプロセッサ使用率は、1つのサブプロセッサ23に対して一組設定され、1つの情報処理コントローラ内のサブプロセッサ23に対応する組数が設定される。
メインメモリ総容量及びメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ26の総容量及び現在使用中の容量を表す。
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部28の数を表す。外部記録部IDは、当該の情報処理コントローラに接続されている外部記録部28を一意的に識別する情報である。外部記録部種別IDは、当該の外部記録部の種類(例えば、ハードディスク、CD±RW、DVD±RW、メモリディスク、SRAM、ROMなど)を表す。
外部記録部総容量及び外部記録部使用量は、それぞれ外部記録部IDによって識別される外部記録部28の総容量及び現在使用中の容量を表す。
外部記録部ID、外部記録部種別ID、外部記録部総容量及び外部記録部使用量は、1つの外部記録部28に対して1組設定されるものであり、当該情報処理コントローラに接続されている外部記録部28の数の組数だけ設定される。すなわち、1つの情報処理コントローラに複数の外部記録部が接続されている場合、それぞれの外部記録部には異なる外部記録部IDが割り当てられ、外部記録部種別ID、外部記録部総容量及び外部記録部使用量も別々に管理される。
A−4ソフトウェアセルの実行
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、上述したような構成のソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ID、送信先ID及び応答先IDによって識別される。
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、上述したような構成のソフトウェアセルを生成し、ネットワーク9を介して他の情報処理装置及び当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、及び各装置内の情報処理コントローラは、それぞれ、上記の送信元ID、送信先ID及び応答先IDによって識別される。
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ21は、そのソフトウェアセルをメインメモリ26に格納する。さらに、送信先のメインプロセッサ21は、ソフトウェアセルを読み出し、それに含まれるDMAコマンドを処理する。
具体的には、送信先のメインプロセッサ21は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサID及びLSアドレスで特定されるサブプロセッサ内のLS24の所定領域に情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラム又はデータ、あるいはその他の指示されたデータである。
次に、メインプロセッサ21は、キックコマンドを、これに含まれるサブプロセッサIDで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタとともに出力する。
指示されたサブプロセッサは、そのキックコマンド及びプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ26に格納した後、実行を完了したことをメインプロセッサ21に通知する。
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ23に限定されるものではなく、メインプロセッサ21がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラム及びそのメインメモリ用プログラムによって処理されるデータを含み、DMAコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ26にメインメモリ用プログラム及びそれによって処理されるデータを記憶させる。
次に、送信元の情報処理装置は、送信先の情報処理装置宛てに、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサID、メインメモリ・アドレス、メインメモリ用プログラムを識別するための後述の機能プログラムIDなどの識別子、及びプログラムカウンタを含み、DMAコマンドがキックコマンド又は機能プログラム実行コマンドであるソフトウェアセルを送信し、メインプロセッサ21に当該メインメモリ用プログラムを実行させる。
以上のように、本実施形態に係るネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラム又はメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ23にロードさせ、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラム又はメインメモリ用プログラムを実行させる。
したがって、ユーザが送信先の情報処理装置を操作しなくても、当該サブプロセッサプログラム又は当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラにおいて自動的に実行させることができる。
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラム又は機能プログラムなどのメインメモリ用プログラムを備えていない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。さらに、各サブプロセッサ間ではDMA方式によりデータ転送を行ない、また上述したサンドボックスを使用することにより、1つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速且つ高セキュリティに処理を実行することができる。
A−5.ネットワークシステムとしての分散処理
図5には、複数の情報処理装置が仮想的な1台の情報処理装置として動作している様子を示している。ソフトウェアセルの使用による分散処理の結果、同図の上段に示すように、ネットワーク9に接続されている複数の情報処理装置1、2、3、4は、同図の下段に示すように、仮想的な1台の情報処理装置7として動作する。但し、このような仮想的な動作を実現するためには、以下のような構成によって、以下のような処理が実行される必要がある。
図5には、複数の情報処理装置が仮想的な1台の情報処理装置として動作している様子を示している。ソフトウェアセルの使用による分散処理の結果、同図の上段に示すように、ネットワーク9に接続されている複数の情報処理装置1、2、3、4は、同図の下段に示すように、仮想的な1台の情報処理装置7として動作する。但し、このような仮想的な動作を実現するためには、以下のような構成によって、以下のような処理が実行される必要がある。
A−6.システムのソフトウェア構成とプログラムのロード
図6には、個々の情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成を示している。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前に、当該の情報処理コントローラに接続される外部記録部28に記録されているものである。各プログラムは、機能又は特徴により、制御プログラム、機能プログラム及びデバイスドライバに分類される。
図6には、個々の情報処理コントローラのメインメモリ26が記憶するソフトウェアの構成を示している。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前に、当該の情報処理コントローラに接続される外部記録部28に記録されているものである。各プログラムは、機能又は特徴により、制御プログラム、機能プログラム及びデバイスドライバに分類される。
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ21が実行するもので、後述のMS(マスター/スレーブ)マネージャ及び能力交換プログラムを含む。
機能プログラムは、メインプロセッサ21が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
デバイスドライバは、情報処理コントローラ(情報処理装置)の入出力(送受信)用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラ毎に情報処理装置に応じたものが備えられる。
ケーブルの差し込みなどによって情報処理装置が物理的にネットワーク9に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク9に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ21は、制御プログラムに属する各プログラム、及びデバイスドライバに属する各プログラムを、メインメモリ26にロードする。
プログラムのロード手順としては、メインプロセッサ21は、まず、DC27に読み出し命令を実行させることによって、外部記録部28からプログラムを読み出し、次に、DMAC25に書き込み命令を実行させることによって、そのプログラムをメインメモリ26に書き込む。
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをメモリにロードするように構成してもよく、あるいは他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
機能プログラムに属する各プログラムは、ネットワークに接続されたすべての情報処理装置の外部記録部28に記録されている必要はなく、いずれか1つの情報処理装置の外部記録部28に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図5の下段に示すように、仮想的な1台の情報処理装置7として機能プログラムを実行することができる。
ここで、前述したようにメインプロセッサ21によって処理される機能プログラムは、サブプロセッサ23によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこでメインプロセッサ21が外部記録部28から機能プログラムを読み出し、メインメモリ26に書き込む際に対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ26に書き込むものとする。この場合、連携動作するサブプロセッサプログラムは1個である場合もあるし、複数個であることもあり得る。複数個である場合には、すべての連携動作するサブプロセッサプログラムをメインメモリ26に書き込むことになる。メインメモリ26に書き込まれたサブプロセッサプログラムはその後、サブプロセッサ23内のLS24に書き込まれ、メインプロセッサ21によって処理される機能プログラムと連携動作する。
そして、サブプロセッサプログラムにもサブプロセッサプログラムIDが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムIDは、連携動作する相手となる機能プログラムの機能プログラムIDと関連性のある識別子、例えば機能プログラムIDを親番号とした上で最後尾に枝番号を付加させたものなどであることもあり得るし、連携動作する相手となる機能プログラムの機能プログラムIDとは関連性のない識別子であってもよい。いずれにしても機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムIDを自プログラム内に互いに記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは複数個あるすべてのサブプロセッサプログラムのサブプロセッサプログラムIDを記憶しておくことになる。
図3のソフトウェアセルに示したように、機能プログラムには、プログラム毎にプログラムを一意的に識別できる識別子が機能プログラムIDとして割り当てられる。機能プログラムIDは、機能プログラムの作成の段階で、作成日時や情報処理装置IDなどから決定される。
メインプロセッサ21は、自身が動作する情報処理装置の装置情報(動作状態に関する情報)を格納するための領域をメインメモリ26に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここで言う装置情報は、図4に示したステータス返信コマンドのデータ領域における情報処理装置ID以下の各情報である。
A−7.システムにおけるマスター/スレーブの決定
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ21は、マスター/スレーブマネージャ(以下、MSマネージャ)をメインメモリ26にロードし、実行する。
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ21は、マスター/スレーブマネージャ(以下、MSマネージャ)をメインメモリ26にロードし、実行する。
MSマネージャは、自身が動作する情報処理装置がネットワーク9に接続されていることを検知すると、同じネットワーク9に接続されている他の情報処理装置の存在を確認する。ここでの「接続」又は「存在」は、上述したように、情報処理装置が物理的にネットワーク9に接続されているだけでなく、電気的・機能的にもネットワーク9に接続されていることを示す。
また、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
MSマネージャが同じネットワーク9に接続されている他の情報処理装置の存在を確認する方法について以下に説明する。
MSマネージャは、DMAコマンドがステータス要求コマンドであり、送信元ID及び応答先IDが当該情報処理装置で、送信先IDを特定しないソフトウェアセルを生成し、当該情報処理装置が接続されたネットワーク上に送信し、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば10分である。
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先IDで特定されるステータス要求コマンドを発行した情報処理装置に対して、DMAコマンドがステータス返信コマンドで、且つデータとして自身(その他装置)の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報(情報処理装置ID、メインプロセッサに関する情報、サブプロセッサに関する情報など)、及び当該他装置のMSステータスが含まれる。
ステータス要求コマンドを発行した情報処理装置のMSマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、MSステータス=0(マスター装置)を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるMSステータスを1に設定する。これによって、当該装置はスレーブ装置となる。
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドがまったく受信されなかった場合、又はMSステータス=0(マスター装置)を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるMSステータスを0に設定する。これによって、当該装置はマスター装置となる。
すなわち、いずれの装置もネットワーク9に接続されていない状態、又はネットワーク9上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク9に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク9上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク9に接続されると、当該装置は自動的にスレーブ装置として設定される。
マスター装置及びスレーブ装置のいずれについても、MSマネージャは、定期的にステータス要求コマンドをネットワーク9上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。この結果、ネットワーク9に接続されている情報処理装置の主電源が遮断され、又はネットワーク9から情報処理装置が切り離されることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク9に新たな情報処理装置が接続された場合など、ネットワーク9の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
A−8.マスター装置及びスレーブ装置における装置情報の取得
メインプロセッサ21は、MSマネージャから、ネットワーク9に接続された他の情報処理装置の照会及び自装置のMSステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
メインプロセッサ21は、MSマネージャから、ネットワーク9に接続された他の情報処理装置の照会及び自装置のMSステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク9に接続されている他のすべての情報処理装置についての装置情報、すなわち各スレーブ装置の装置情報を取得する。
他装置の装置情報の取得は、上述したように、DMAコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、DMAコマンドがステータス返信コマンドで、且つデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク9に接続されている他のすべての装置(各スレーブ装置)についての装置情報を格納するための領域を自装置のメインメモリ26に確保し、これら情報を他装置(スレーブ装置)の装置情報テーブルとして記録する。すなわち、マスター装置のメインメモリ26には、自装置を含むネットワーク9に接続されているすべての情報処理装置の装置情報が装置情報テーブルとして記録される。
一方、能力交換プログラムは、自装置がスレーブ装置である場合には、ネットワーク9に接続されている他のすべての装置についての装置情報、すなわちマスター装置及び自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置ID及びMSステータスを、自装置のメインメモリ26に記録する。すなわち、スレーブ装置のメインメモリ26には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク9に接続されているマスター装置及び各スレーブ装置についての情報処理装置ID及びMSステータスが、別の装置情報テーブルとして記録される。
また、マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、新たにネットワーク9に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ26に記録する。
なお、MSマネージャ及び能力交換プログラムは、メインプロセッサ21で実行されることに限らず、いずれかのサブプロセッサ23で実行されてもよい。また、MSマネージャ及び能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
A−9.情報処理装置がネットワークから切断された場合
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、ネットワーク9に接続されている情報処理装置の主電源が遮断され、又はネットワーク9から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ26から削除する。
マスター装置及びスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、ネットワーク9に接続されている情報処理装置の主電源が遮断され、又はネットワーク9から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ26から削除する。
さらに、このようにネットワーク9から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
例えば、ネットワーク9から切断されていない情報処理装置は、それぞれ、自装置及び他装置の情報処理装置IDを数値に置き換え、自装置の情報処理装置IDを他装置の情報処理装置IDと比較し、自装置の情報処理装置IDがネットワーク9から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行し、MSステータスを0に設定し、マスター装置として、上述したように、ネットワーク9に接続されている他のすべての情報処理装置(各スレーブ装置)から装置情報を取得して、メインメモリ26に記録する。
A−10.装置情報に基づく分散処理
図5の下段に示したようにネットワーク9に接続されている複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
図5の下段に示したようにネットワーク9に接続されている複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させるためには、マスター装置がユーザの操作及びスレーブ装置の動作状態を把握する必要がある。
図7には、4台の情報処理装置が仮想的な1台の情報処理装置7として動作する様子を示している。図示の例では、情報処理装置1がマスター装置、情報処理装置2、3、4がスレーブ装置A、B、Cとしてそれぞれ動作しているものとする。
ユーザがネットワーク9に接続されている情報処理装置を操作した場合、操作対象がマスター装置1であれば、その操作情報はマスター装置1において直接把握される。また、操作対象がスレーブ装置であれば、その操作情報は操作されたスレーブ装置からマスター装置1に送信される。すなわち、ユーザの操作対象がマスター装置1とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置1において把握される。操作情報の送信は、例えば、DMAコマンドが操作情報送信コマンドであるソフトウェアセルによって行なわれる。
そして、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、上記の方法によって自装置の外部記録部28−1、28−2からメインメモリ26−1に機能プログラムをロードするが、他の情報処理装置(スレーブ装置)がマスター装置1に機能プログラムを送信してもよい。
機能プログラムには、その実行単位毎に必要となる、情報処理装置種別ID、メインプロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの装置に関する要求スペック(図4を参照のこと)が規定されている。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、各機能プログラムについて必要となる上記の要求スペックを読み出す。また、あらかじめ能力交換プログラムによってメインメモリ26−1に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図4に示した情報処理装置ID以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリ及び外部記録部に関する情報である。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、ネットワーク9上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別IDに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。さらに、機能プログラムを実行するために必要なメインプロセッサ又はサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、当該候補装置から1つの実行要求候補装置を特定して選択する。
実行要求するスレーブ装置が特定されたら、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ11に含まれるメインメモリ26−1に記録されている当該スレーブ装置の装置情報テーブルを更新する。
さらに、マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、DMAコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、当該機能プログラムに関する必要なサブプロセッサの情報及びサンドボックスサイズ(図3を参照のこと)を設定し、上記実行要求されるスレーブ装置に対して送信する。
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ21は、上記の方法によって自装置の外部記録部28からメインメモリ26に機能プログラム及び当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
機能プログラムの実行を要求されたスレーブ装置の外部記録部28に必要な機能プログラム又は当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラム又はサブプロセッサプログラムをその機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
サブプロセッサプログラムについては、前述のロードコマンド及びキックコマンドを利用して他の情報処理装置に実行させることもできる。
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ21は、終了通知をマスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
マスター装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、自装置及び他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置1が当該の機能プログラムを実行する。
図7に示した例で、ユーザがスレーブ装置A(情報処理装置2)を操作し、当該操作に応じた機能プログラムを別のスレーブ装置B(情報処理装置3)が実行する場合の分散処理について、図8を参照しながら説明する。
図8に示す例では、ユーザがスレーブ装置Aを操作することにより、スレーブ装置Aを含むネットワークシステム全体の分散処理が開始し、まず、スレーブ装置Aは、その操作情報をマスター装置1に送信する(ステップ81)。
マスター装置1は、その操作情報を受信し(ステップ72)、さらに自装置のメインメモリ26−1に記録されている自装置及び他装置の装置情報テーブルから各情報処理装置の動作状態を調べ、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する(ステップ73)。図示の例では、スレーブ装置Bが選択される場合を示している。
次に、マスター装置1は、その選択したスレーブ装置Bに対して機能プログラムの実行を要求する(ステップ74)。
スレーブ装置Bは、その実行要求を受信し(ステップ95)、さらに、実行要求された機能プログラムを実行する(ステップ96)。
以上のように、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させることができる。
A−11.各情報処理装置及びシステムの具体例
ネットワーク9を介して互いに接続される情報処理装置1、2、3、4は、上記のような情報処理コントローラ11、12、13、14によって情報処理を行なうものであれば、基本的にはどのような構成でもよい。図9には、情報処理装置の一構成例を示している。
ネットワーク9を介して互いに接続される情報処理装置1、2、3、4は、上記のような情報処理コントローラ11、12、13、14によって情報処理を行なうものであれば、基本的にはどのような構成でもよい。図9には、情報処理装置の一構成例を示している。
情報処理コントローラ11を備える情報処理装置1の一例は、ハードディスクレコーダである。図10並びに図11には、同図中のハードディスクレコーダのハードウェア構成及びソフトウェア構成をそれぞれ示している。ハードディスクレコーダのハードウェア構成としては、図1に示した外部記録部28−1としてハードディスクを内蔵し、図1に示した外部記録部28−2としてDVD±R/RW、CD±R/RW、Bluray−Disc(登録商標)などの光ディスクを装着できるように構成されるとともに、情報処理コントローラ11のバス29−1に接続されたバス31−1に、放送受信部32−1、映像入力部33−1、音声入力部34−1、映像出力部35−1、音声出力部36−1、操作パネル部37−1、リモコン受光部38−1及びネットワーク接続部39−1が接続されている。
放送受信部32−1、映像入力部33−1及び音声入力部34−1は、放送信号を受信し、又は情報処理装置1の外部から映像信号及び音声信号を入力し、それぞれ所定フォーマットのデジタルデータに変換し、情報処理コントローラ11での処理のためにバス31−1に送出する。映像出力部35−1及び音声出力部36−1は、情報処理コントローラ11からバス31−1に送出された映像データ及び音声データを処理して、デジタルデータのまま、又はアナログ信号に変換して、情報処理装置1の外部に送出するものであり、リモコン受光部38−1は、リモコン送信器43−1からのリモコン(遠隔操作)赤外線信号を受信する。
図9及び図10に示すように、情報処理装置(ハードディスクレコーダ)1の映像出力部35−1及び音声出力部36−1には、モニタ表示装置41及びスピーカ装置42が接続される。
図9に例示した情報処理コントローラ12を備える情報処理装置2も、ハードディスクレコーダで、図10において括弧内に参照番号を付して示すように、情報処理装置1と同様に構成される。但し、図9に示すように、情報処理装置(ハードディスクレコーダ)2には、モニタ表示装置及びスピーカ装置は接続されない。
情報処理装置(ハードディスクレコーダ)1及び2、すなわち情報処理コントローラ11及び12のソフトウェア構成としては、図11に示すように、制御プログラムとして、MSマネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、素材検索及び番組録画予約のためのプログラムを備え、デバイスドライバとして、放送受信、映像出力、音声出力、外部記録部入出力及びネットワーク入出力のためのプログラムを備える。
また、情報処理コントローラ13を備える情報処理装置3の他の例は、PDA(Personal Digital Assistants)である。図12には、PDAとして構成される情報処理装置3のハードウェア構成を示している。同図に示す例では、図1に示した外部記録部28−5として、メモリカードディスクを装着できるように構成され、情報処理コントローラ13のバス29−3に接続されたバス51に、液晶表示部52、音声出力部53、カメラ部54、音声入力部55、キーボード部56及びネットワーク接続部57が接続されている。
なお、図1では内部を省略した情報処理コントローラ13は、メインプロセッサ21−3、サブプロセッサ23−7、23−8、23−9、DMAC(ダイレクトメモリアクセスコントローラ)25−3、DC(ディスクコントローラ)27−3及びバス29−3を備え、そのメインプロセッサ21−3は、LS(ローカル・ストレージ)22−3を有し、各サブプロセッサ23−7、23−8、23−9は、LS(ローカル・ストレージ)24−7、24−8、24−9を備えている。
また、図13には、情報処理装置(PDA)3、すなわち情報処理コントローラ13のソフトウェア構成を示している。同図に示すように、制御プログラムとして、MSマネージャ及び能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、電話帳、ワープロ及び表計算のためのプログラム、及びWebブラウザを備え、デバイスドライバとして、映像出力、音声出力、カメラ映像入力、マイク音声入力及びネットワーク入出力のためのプログラムを備えている。
また、情報処理コントローラ14を備える情報処理装置4は、ポータブルCDプレーヤである。図14には、ポータブルCDプレーヤのハードウェア構成を示している。図示の例では、ポータブルCDプレーヤは、図1に示した外部記録部28−6として、CD(Compact Disc)を装着できるように構成され、情報処理コントローラ14のバス29−4に接続されたバス61に、液晶表示部62、音声出力部63、操作ボタン部64及びネットワーク接続部65が接続されている。
なお、図1では内部を省略した情報処理コントローラ14は、メインプロセッサ21−4、サブプロセッサ23−10、23−11、23−12、DMAC25−4、DC27−4及びバス29−4を備え、そのメインプロセッサ21−4は、LS22−4を有し、各サブプロセッサ23−10、23−11、23−12は、LS24−10、24−11、24−12を有する。
図15には、情報処理装置(ポータブルCDプレーヤ)4、すなわち情報処理コントローラ14のソフトウェア構成を示している。図示のように、制御プログラムとして、MSマネージャ及び能力交換プログラムを備え、機能プログラムとして、音楽再生のためのプログラムを備え、デバイスドライバとして、音声出力、CD制御及びネットワーク入出力のためのプログラムを備える。
図9に例示したネットワークシステムでは、情報処理装置1、3及び4がネットワーク9上に接続されており、情報処理装置1がマスター装置(MSステータス=0)として、情報処理装置3及び4がスレーブ装置(MSステータス=1)として、設定されているものとする。
この状態で、新たに情報処理装置2がネットワーク9に接続されると、上述した方法によって、情報処理装置2内の情報処理コントローラ12に含まれるメインプロセッサ21−2で実行されているMSマネージャは、他の情報処理装置1、3及び4にMSステータスを照会して、情報処理装置1が既にマスター装置として存在することを認識し、自装置(情報処理装置2)をスレーブ装置(MSステータス=1)に設定する。また、マスター装置に設定されている情報処理装置1は、新たに追加された情報処理装置2を含む各装置の装置情報を収集して、メインメモリ26−1内の装置情報テーブルを更新する。
このような状態で、ユーザによってスレーブ装置である情報処理装置(PDA)3で2時間の放送番組を録画予約するための操作が行なわれた場合について、以下に説明する。
この場合、スレーブ装置である情報処理装置(PDA)3は、ユーザから録画開始時刻、録画終了時刻、録画対象放送チャネル、録画品質などの情報を含む録画予約情報の入力を受け付け、当該録画予約情報及びDMAコマンドとしての録画予約コマンドを含むソフトウェアセルを生成して、マスター装置である情報処理装置1に送信する。
DMAコマンドが録画予約コマンドであるソフトウェアセルを受信した情報処理装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、録画予約コマンドを読み出すとともに、メインメモリ26−1内の装置情報テーブルを参照し、当該録画予約コマンドを実行可能な情報処理装置を特定する。
まず、メインプロセッサ21−1は、装置情報テーブルに含まれる各情報処理装置1、2、3、4の情報処理装置種別IDを読み出して、録画予約コマンドに対応する機能プログラムを実行可能な情報処理装置を抽出する。ここでは、録画機能を示す情報処理装置種別IDを有する情報処理装置1、2が候補装置として特定され、情報処理装置3、4は候補装置から除外される。
次に、マスター装置である情報処理装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、装置情報テーブルを参照して、情報処理装置1、2のメインプロセッサ又はサブプロセッサの処理能力、メインメモリに関する情報などの装置に関する情報を読み出し、情報処理装置1、2が録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するか否かを判断する。ここでは、情報処理装置1、2とも、録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するものとする。
さらに、メインプロセッサ21−1は、装置情報テーブルを参照して、情報処理装置1、2の外部記録部に関する情報を読み出し、外部記録部の空き容量が当該録画予約コマンドの実行に必要な容量を満足するか否かを判断する。情報処理装置1、2はハードディスクレコーダであるので、それぞれハードディスク28−1、28−3の、総容量と使用量との差分が、それぞれの空き容量に相当する。
この場合、情報処理装置1のハードディスク28−1の空き容量が、録画時間に換算して10分であり、情報処理装置2のハードディスク28−3の空き容量が、録画時間に換算して20時間であるとする。
このとき、マスター装置である情報処理装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、当該録画予約コマンドの実行に必要な2時間分の空き容量を確保できる情報処理装置を、実行要求先スレーブ装置として特定する。
その結果、情報処理装置2のみが実行要求先スレーブ装置として選択され、マスター装置である情報処理装置1内の情報処理コントローラ11に含まれるメインプロセッサ21−1は、ユーザにより操作された情報処理装置3から送信された録画予約情報を含む当該録画予約コマンドを情報処理装置2に送信して、上記2時間の放送番組の録画予約の実行を要求する。
そして、情報処理装置2内の情報処理コントローラ12に含まれるメインプロセッサ21−2は、当該録画予約コマンドを解析して、録画に必要な機能プログラムを外部記録部であるハードディスク28−3からメインメモリ26−2にロードし、録画予約情報に従って録画を実行する。その結果、録画予約された2時間の放送番組の映像音声データが情報処理装置2のハードディスク28−3に記録される。
このように、図9の例のネットワークシステムにおいても、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1、2、3、4を仮想的な1台の情報処理装置7として動作させることができる。
B.同じ情報処理装置内の他ユニットにより一部のサブプロセッサの利用
上述したように、グリッドコンピューティングシステムでは、ネットワーク接続された複数の情報処理装置が協調動作により分散処理を行なうことで、仮想的に1台の機器として動作する。システムを構成する個々の情報処理装置は、情報処理コントローラを備える。情報処理コントローラには、自己のローカル・メモリ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと、サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサが装備されている。
上述したように、グリッドコンピューティングシステムでは、ネットワーク接続された複数の情報処理装置が協調動作により分散処理を行なうことで、仮想的に1台の機器として動作する。システムを構成する個々の情報処理装置は、情報処理コントローラを備える。情報処理コントローラには、自己のローカル・メモリ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと、サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサが装備されている。
ネットワーク接続された個々の情報処理装置は、割り当てられた用途毎に必要となる性能は異なるが、それに応じてサブプロセッサ数の異なる情報処理コントローラを製作するのはコストが高く、難しい。また、ネットワーク上の各情報処理装置に振り分けられた処理負荷は均一ではなく、装置内の情報処理コントローラが必要とするサブプロセッサ数が不均一である。このため、予定された処理を実現するためにサブプロセッサ数が不足する情報処理コントローラ、又はすべてのサブプロセッサを利用しない、すなわち余剰のサブプロセッサを利用しない情報処理コントローラが、情報処理装置内に存在することになりかねない。
それぞれの情報処理コントローラ内では、メインプロセッサは各サブプロセッサが持つ余剰処理能力などの資源管理を行ない、複数の機能を同時並行して実行することができるが、必ずしもすべてのサブプロセッサを用いる必要はない。情報処理コントローラは、一部のサブプロセッサを他の目的で使用することができ、例えば同じ情報処理装置内の他の情報処理ユニットに余剰のサブプロセッサの利用を許可することができる。
そこで、本発明の第2の実施形態では、ネットワークシステムを構成する個々の情報処理装置において、装置内の情報処理コントローラは一部のサブプロセッサを同じ情報処理装置内の他の情報処理ユニットに補助プロセッサとして利用させるようにした。
余剰のサブプロセッサを持つ情報処理コントローラが、当該余剰のサブプロセッサを同じ情報処理装置内の他の情報処理ユニットが簡単な手続きで利用できるようにすることにより、資源の有効利用とシステム全体の性能の向上につながる。
図16には、本発明の第2の実施形態に係る情報処理装置の構成を示している。図示の装置は、メインプロセッサ及び1以上のサブプロセッサが装備されている情報処理コントローラ111と、情報処理ユニット170を備える。情報処理コントローラ111と情報処理ユニット170はそれぞれ、好適には単一の集積回路として構成されることが望ましい。また、情報処理コントローラ111と情報処理ユニット170は、外部バス167及びバスブリッジ168を介して接続されている。バスブリッジ168は保護機構169を有する。保護機構169の目的は、情報処理ユニット170などの他ユニットから情報処理コントローラ111へのアクセス要求について許可/禁止を決定し、情報処理コントローラ111内のサブプロセッサ又はローカルストレージの保護を行なうことである。
後述するように、情報処理コントローラ111は、情報処理ユニット170に一部のサブプロセッサを貸し出し、情報処理ユニット170が情報処理コントローラ111内のサブプロセッサでサブプロセッサプログラムを実行するようになっている。ここで言うサブプロセッサの貸し出しは、常態的な貸し出しと一時的な貸し出しの双方を含むものとする。
まずは、常態的な貸し出しについて説明する。常態的な貸し出しとはすなわち、情報処理装置101内における情報処理コントローラ111が、情報処理ユニット170に対して貸し出すサブプロセッサが装置設計段階から既に決まっている場合である。その結果、情報処理ユニット170が情報処理コントローラ111に対して、決められた手順でアクセス要求しさえすれば、許可されることが確定していることになる。常態的な貸し出しを、静的な貸し出しと言ってもよい。
情報処理コントローラ111は、メインプロセッサ121−1、メインメモリ126−1にアクセスするためのDMAC(ダイレクトメモリアクセスコントローラ)125−1、外部記録部128−1、128−2にアクセスするためのDC(ディスクコントローラ)127−1、複数のサブプロセッサ123−1、123−2、123−3、外部バスIF(インターフェース)166を備えている。
メインプロセッサ121−1は、サブプロセッサ123−1〜3によるサブプロセッサプログラム又はデータの処理のスケジュール管理と情報処理コントローラ111内の全般的管理とを行なう。また、サブプロセッサ123−1〜3は、メインプロセッサ121−1の制御によって並列的且つ独立にサブプロセッサプログラム又はデータの処理を実行する。
メインプロセッサ121−1、及び各サブプロセッサ123−1〜3は、それぞれ専用のLS(ローカルストレージ)122−1、124−1〜3を有しており、LS上に展開された処理プログラムを実行することができる。但し、サブプロセッサ123−1〜3は、メインプロセッサ121−1からの起動命令、停止命令、割り込み命令のみによって、処理プログラムの実行開始、停止、割り込みを行なうことができる。
DMAC125−1は、DRAMなどで構成される情報処理装置101内のメインメモリ126−1に格納されているプログラム又はデータに対する、メインプロセッサ121−1の介在しないアクセス動作を行なう専用コントローラである。また、DC127−1は、情報処理コントローラ111に接続された外部記録部128−1、128−2へのアクセス動作を制御する。
外部バスIF166は、バスブリッジ168を介して情報処理コントローラ111と接続されている情報処理ユニット170へのアクセスを行ない、また情報処理ユニット170からのアクセスを受け付ける。
メインプロセッサ121−1、DMAC125−1、DC127−1、サブプロセッサ123−1〜3、外部バスIF166は、情報処理コントローラ111の内部バス129−1によって相互接続されている。
情報処理ユニット170は外部バスIF166、外部バス167、バスブリッジ168及び外部バスIF174を介して情報処理コントローラ111に接続され、情報処理コントローラ111の外部ユニットとして動作する。情報処理ユニット170は、情報処理コントローラ111と同一のマルチプロセッサ構成でもよいが、これに限定されず、マルチプロセッサ構成である必要はない。図16では、図面の簡素化のため、プロセッサ171と、メインメモリ172と、DMAC173と、情報処理コントローラ111と接続するための外部バスIF174を備えている。本実施形態では、情報処理ユニット170は、割り当てられた用途に必要な性能に対し、プロセッサ処理能力が不足しているものとする。
情報処理コントローラ111と情報処理ユニット170とは、好適には外部バス167及びバスブリッジ168を介して接続されるが、バスブリッジ168を介さないで直接接続されていても良い。情報処理コントローラ111内の外部バスIF166のバスプロトコルと、情報処理ユニット170内の外部バスIF174のバスプロトコルは同じでも異なっていてもよい。バスブリッジ168は、バスプロトコルの相違を吸収し、バス間のインターフェースを実現する。
本実施形態では、外部バスIF166経由で、情報処理コントローラ111内の一部のサブプロセッサが情報処理ユニット170に貸し出される。貸し出されたサブプロセッサのローカルストレージには、情報処理ユニット170側のサブプロセッサプログラムがロードされ、サブプロセッサがこのサブプロセッサプログラムを実行するという形態で、他ユニットによるサブプロセッサの利用が実現する。
このように、外部バスIF166経由で、サブプロセッサのローカルストレージが情報処理ユニット170等の他ユニットに利用されることから、利用が許可されていないサブプロセッサのローカルストレージを、他ユニットによるアクセスから保護する必要がある。また、他ユニットに対して利用が許可されているサブプロセッサのローカルストレージを、情報処理コントローラ111内部からのアクセスから保護しなければならない。
バスブリッジ168は、情報処理ユニット170による外部バス167を介したアクセスからローカルストレージを保護するために、保護機構169を備えている。本実施形態では、保護機構169はアドレス変換テーブルを利用する。
アドレス変換テーブルは、好適にはメインメモリ126−1に配置され、以下の表1に示すように、情報処理コントローラ111内の各ローカルストレージが、エントリとして分割管理される。このテーブルの各エントリは、仮想エントリアドレスを物理エントリアドレスに変換するための両者の対応情報と、該当エントリの有効無効を示す情報(valid bit)、及び該当エントリの属性情報などを含んでいる。物理エントリアドレスとは当該エントリの開始アドレスを示す固有情報であり、仮想エントリアドレスとは他ユニットが当該エントリにアクセスする際に用いられる仮情報である。アドレス変換テーブルは仮想/物理エントリアドレスの他に仮想/物理エントリサイズ、仮想/物理エントリ終了アドレスを含んでいてもよい。アドレス変換テーブルの一部が保護機構169の内部にあってもよい。常態的な、すなわち静的な貸し出しの場合には、物理エントリアドレスと仮想エントリアドレスの対応は基本的には、情報処理装置101の設計段階から既に決まっている。属性情報には読み書き可能、書き込み禁止、読み書き禁止などがある。
情報処理ユニット170が情報処理コントローラ111に対してアクセス要求する場合には、物理エントリアドレスではなく仮想エントリアドレスを用いて行なう。当該アクセス要求は、仮想エントリサイズ、仮想エントリ終了アドレスを伴っていてもよい。物理エントリアドレスから仮想エントリアドレスへの変換は、保護機構169によって行なわれる。すなわち、情報処理ユニット170は、仮想エントリアドレスのみを把握していることになり、情報処理コントローラ111は物理エントリアドレスを他ユニットへ公開する必要がなく、情報処理コントローラ111自体の安全性、機密性を高くすることができる。
情報処理ユニット170からある仮想エントリアドレスへのアクセス要求が行なわれた場合、保護機構169は、アドレス変換テーブルを参照し、仮想エントリアドレスのvalid bitを参照してエントリが有効であるか確認する。この際、仮想エントリサイズ、仮想エントリ終了アドレスの確認を行なうようにしてもよい。エントリが無効であれば、アドレス変換エラーが情報処理ユニット170に通知され、アクセスは拒否される。一方、エントリが有効であれば、エントリに含まれる属性情報が確認される。また、属性情報が書き込み禁止を示していれば書き込みアクセスを、読み出し禁止を示していれば読み出しアクセスを、読み書き禁止を示していれば読み書きアクセスを拒否する。
アドレス変換テーブルなどの保護に関する情報はメインプロセッサ121−1で実行される資源管理プログラムによって設定される。
情報処理コントローラ111のメインプロセッサ121−1で実行される資源管理プログラムは、1つ以上のサブプロセッサと、当該サブプロセッサ内のローカルストレージ(LS)を情報処理ユニット170が利用するために割り当てる機能を持つ。資源管理プログラムは、メインメモリ126−1上に資源管理テーブルを持ち、どのサブプロセッサが利用可能であるかという情報を保持する。
資源管理テーブルは、例えば表2に示すように、情報処理コントローラ111内のサブプロセッサ毎のエントリを用意し、各エントリは、サブプロセッサIDと、関連付けられたサブプロセッサの利用可否情報を持つ。そして、情報処理ユニット170が利用するために割り当てられた(すなわち他ユニットに貸し出された)サブプロセッサは利用不可に設定される。
メインプロセッサ121−1内のプログラム又は他ユニットは、情報処理コントローラ111内のサブプロセッサでサブプロセッサプログラムを実行する場合には、まずサブプロセッサを選択する必要がある。そのために、メインプロセッサ121−1で実行される資源管理プログラムに対して、サブプロセッサ選択要求を送信する。資源管理プログラムは、サブプロセッサ選択要求を受信すると、資源管理テーブルを参照し、選択要求されたサブプロセッサが利用不可である場合には、利用を拒否する旨を返信する。また利用を許可した場合、利用が終了した場合に応じて当該資源管理テーブルを更新する。前述の通り常態的な、すなわち静的な貸し出しの場合には、情報処理ユニット170が情報処理コントローラ111に対して、決められた手順の中の1つとしてサブプロセッサ選択要求を送信すれば、アクセス許可されることになる。また、資源管理プログラムは、前述のアドレス変換テーブルも管理し、当該アドレス変換テーブルの各エントリを適切に設定する。これにより、メインプロセッサ121−1内のプログラムや、他ユニット等の複数のアクセス要求元が、同じ仮想エントリアドレスへのアクセス要求を行った場合でも適切にアクセス許可/拒否を返信し、且つエントリ利用状況に応じて当該アドレス変換テーブルを更新することにより、各エントリの排他性を実現し、アクセスの衝突を回避する。資源管理テーブルは、好適には起動時にあらかじめ与えられている情報によって設定されるが、ユーザの操作によって書き換えられてもよい。
マルチプロセッサチップとしての情報処理コントローラ111は、外部IF166経由で、一部のサブプロセッサを情報処理ユニット170に貸し出す。情報処理ユニット170は、例えば画像処理チップなどであり、所望の画像処理の性能を実現するためにプロセッサ能力が不足するため、情報処理コントローラ111から貸し出されたサブプロセッサを利用する。
図17には、図16に示した情報処理装置101において、情報処理コントローラ111の一部のサブプロセッサ123−3が情報処理ユニット170に貸し出されている様子を図解している。図示の例では、貸し出したサブプロセッサ123−3以外の資源を利用して、オペレーティングシステム、GUI処理、ゲームアプリケーションの実行など、通常の情報処理コントローラ111の動作を実行する。一方、情報処理ユニット170は、当該ユニット自体の資源に加え、情報処理コントローラ111から貸し出されたサブプロセッサ123−3を利用して、画像処理を実行する。
情報処理ユニット170は、貸し出されたサブプロセッサで自由にサブプロセッサプログラムを実行することができる。すなわち、貸し出されたサブプロセッサのローカルストレージには、情報処理ユニット170側のサブプロセッサプログラムがロードされ、サブプロセッサがこのサブプロセッサプログラムを実行する。情報処理コントローラ111側では、貸し出されたサブプロセッサを利用しない。
情報処理コントローラ111によってサブプロセッサが貸し出されると、情報処理ユニット170は、そのローカルストレージへのアクセスが許可される。アクセスが許可されたローカルストレージは、例えば図18に示すように、情報処理ユニット170のアドレス空間上にマッピングされ、情報処理ユニット170のプロセッサ171やDMAC173によって書き込み、読出しが可能である。情報処理ユニット170は、実行させたいサブプロセッサプログラムとそれに関連付けられたデータを、利用するサブプロセッサのローカルストレージに書き込む。
情報処理ユニット170は、貸し出されたサブプロセッサのローカルストレージに自由に書き込み並びに読み出しを行なうことができる。図19には、図16に示した情報処理装置101において、情報処理ユニット170が、アクセスが許可されたローカルストレージへアクセスする様子を図解している。但し、バスブリッジ168内の保護機構169は、情報処理ユニット170からのアクセスに対しメモリ保護を行ない、貸し出されたローカルストレージ以外へのアクセスを禁止する。
サブプロセッサ123−1〜3によるサブプロセッサプログラム実行の開始と停止は、メインプロセッサ121−1からの指示をトリガとして行なわれる。言い換えれば、サブプロセッサ123−1〜3にサブプロセッサプログラム実行を開始させることができるのはメインプロセッサ121−1のみであり、情報処理ユニット170は利用するサブプロセッサを直接起動することはできない。
そこで、情報処理ユニット170は、外部バスの割込み信号や、通知用に書き込みが許可された特定のレジスタあるいはメモリ領域に特定の値を書き込んでメインプロセッサ121−1に通知するという形態で、メインプロセッサ121−1に対し、サブプロセッサによるサブプロセッサプログラムの実行の開始あるいは停止を依頼する。そして、メインプロセッサ121−1は、実行開始あるいは停止の通知に応じて、サブプロセッサのサブプロセッサプログラム実行開始あるいは停止を指示する。このようにメインプロセッサ121−1が必ず、情報処理コントローラ111内の貸し出されたもの含めてすべてのサブプロセッサを制御することにより、情報処理コントローラ111全体の動作を常に確実にすることができる。ここで情報処理ユニット170が、情報処理コントローラ111内のサブプロセッサを利用する際には、前述の仮想エントリアドレス、仮想エントリサイズまたは仮想エントリ終了アドレスを利用することになる。
図20には、図16に示した情報処理装置101において情報処理ユニット170が、貸し出されたサブプロセッサによるサブプロセッサプログラムの実行を行なう様子を図解している。情報処理ユニット170は、割り込みなどの通知手段により、メインプロセッサ121−1に実行開始を依頼する。そして、メインプロセッサ121−1は、この依頼を受け、サブプロセッサに実行開始を指示する。
サブプロセッサによるサブプロセッサプログラムの実行が終了すると、サブプロセッサは割り込みによって、外部バスIF166経由で、情報処理ユニット170に実行終了を通知する。
図21には、図16に示した情報処理装置101において、サブプロセッサ123−3から発生した割り込みを、このサブプロセッサを利用する情報処理ユニット170に転送する様子を図解している。サブプロセッサ123−3は、自身においてサブプロセッサプログラムの実行が終了したことを情報処理ユニット170に通知する。
このようにして、ネットワークシステムを構成する個々の情報処理装置において、装置内の情報処理コントローラは一部のサブプロセッサを同じ情報処理装置内の他ユニットに補助プロセッサとして利用させるメカニズムを実現することができる。
上述したメカニズムによれば、簡易な手続きでサブプロセッサの利用が行なわれる。サブプロセッサを静的に貸し出ししてしまうので、メインプロセッサ121−1のスケジューリング負荷が軽くて済む。
また、サブプロセッサのローカルストレージがこれを利用する他ユニットのバスアドレス空間にマッピングされるので、他ユニットのプログラミングが容易である。すなわち、サブプロセッサプログラムやデータの転送を簡単に行なうことができるとともに、ローカルストレージをポーリングすることもできるので、プログラミングの自由度が高い。
また、図16に示した情報処理装置101では、サブプロセッサを利用する他ユニットにはネットワークインターフェースが不要であり、TCP/IPなどの重いプロトコル処理が不要である。したがって、ネットワーク経由でサブプロセッサの貸し出しを行なう場合に比べ、遅延が小さい。すなわち、短時間でプログラムを転送し、結果を得ることができるので、使い勝手がよく、またオーバーヘッドが少ない分だけ性能も向上する。さらに、情報処理ユニット170が、情報処理コントローラ111内のサブプロセッサを利用する際には仮想エントリアドレス、仮想エントリサイズまたは仮想エントリ終了アドレスのみを把握・利用することにより、情報処理コントローラ111は物理エントリアドレス、物理エントリサイズ又は物理エントリ終了アドレスを他ユニットへ公開する必要がなく、情報処理コントローラ111自体の安全性、機密性を高くすることができる。また、仮想エントリアドレスと物理エントリアドレスの対応、仮想エントリサイズと物理エントリサイズの対応、仮想エントリ終了アドレスと物理エントリ終了アドレスの対応は装置設計段階から決定されているため、装置起動後に上記対応関係を確立するための通信プロトコルが不要であるという効果もある。以上が常態的な貸し出し手順についての記載である。
以下では、一時的な貸し出し手順について説明する。一時的な貸し出しとは、情報処理装置101内における情報処理コントローラ111が、情報処理ユニット170に対して貸し出すサブプロセッサが装置設計段階では決まっておらず、装置全体の処理状況に応じて動的に決定する場合である。一時的な貸し出しとは、動的な貸し出しと言ってもよい。そうなると当然、情報処理ユニット170が情報処理コントローラ111に対してアクセス要求しても、許可されない場合も大いにありえる。
図22には、サブプロセッサの貸し出しを要求する情報処理ユニット170の処理動作をフローチャートの形式で示している。この処理動作は、情報処理ユニット170内のプロセッサ171が所定のプログラムを実行するという形態で実現される。
まず、余剰のサブプロセッサを持つ可能性のある情報処理コントローラ111に対し、外部バス167経由でサブプロセッサ貸し出し要求を伝えるとともに、ローカルストレージをI/O空間のどこに割り当ててほしいかも伝える(ステップS1)。
このサブプロセッサ貸し出し要求コマンドは、パケットで送信してもよいし、情報処理コントローラ111との通信用のメモリ領域にコマンドを書き込んで、割り込みで通知するようにしてもよい。
続いて、要求先となる情報処理コントローラ111から貸し出し要求に対する応答を受け取る(ステップS2)。
この応答は、情報処理コントローラ111からの割り込みで通知されてもよいし、情報処理ユニット170が情報処理コントローラ111側の特定のアドレスをポーリングして検知するようにしてもよい。
そして、この応答に基づいて、情報処理コントローラ111からサブプロセッサ貸し出し要求が認められたかどうかを判別する(ステップS3)。
サブプロセッサ貸し出し要求が認められた場合には、貸し出し要求コマンドで指定したI/Oアドレスを、情報処理ユニット170内のアドレス空間にマッピングする(ステップS4)。図23及び図24には、ローカルストレージが貸し出される前後の情報処理ユニット170内のアドレス空間の様子をそれぞれ示している。
ここで、I/Oアドレスは、情報処理ユニット170の物理アドレスと同じでもよい。この場合、マッピングとは単にソフトウェアが物理アドレスを使用するようになることを指してもよい。あるいは、アドレス変換テーブルを書き換えて、該当する物理アドレスを仮想アドレス空間にマッピングし、ソフトウェアが使用できるようにしてもよい。I/Oアドレスと情報処理ユニット170の物理アドレスを相互に変換する機構がある場合は、その機構を適切に設定し、情報処理ユニット170が貸し出されたローカルストレージのI/Oアドレスをアクセスできるようにする。
一方、サブプロセッサ貸し出し要求が拒否された場合には、所定のエラー処理を行なってから(ステップS5)、本処理ルーチン全体を終了する。
また、図25には、サブプロセッサの貸し出しを要求された情報処理コントローラ111における処理動作をフローチャートの形式で示している。この処理動作は、情報処理コントローラ111内のメインプロセッサ121−1が所定のプログラムを実行するという形態で実現される。
情報処理ユニット170からサブプロセッサ貸し出し要求を受け取ると(ステップS11)、資源管理テーブルを参照し、予約されていないサブプロセッサがあるか否かを調査する(ステップS12)。
そして、予約されていないサブプロセッサが存在する場合には、その中から1つを貸し出すサブプロセッサとして選択する(ステップS13)。例えば、以下の表3に示すような資源管理テーブルの場合、IDが0〜2の3つのサブプロセッサのうちID2のサブプロセッサが未使用となっているので、貸し出すサブプロセッサとして選択される。
そして、資源管理テーブルを表4のように書き換え、選択したサブプロセッサを他ユニットすなわち情報処理ユニット170用に予約する(ステップS14)。
そして、選択したサブプロセッサのローカルストレージに情報処理ユニット170がアクセスできるようにI/Oページテーブルを書き換える(ステップS15)。ローカルストレージに割り当てるI/Oアドレスは、貸し出し要求コマンドで情報処理ユニット170が指定したものとする。
そして、必要であれば、情報処理コントローラ111上のプログラムが選択したサブプロセッサのローカルストレージにアクセスできなくなるように、内部のアドレス変換に使用される主ページテーブルを書き換える(ステップS16)。
一方、すべてのサブプロセッサがすべて予約されている場合には(ステップS12)、要求元である情報処理ユニット170に拒否を通知する(ステップS17)。
例えば、情報処理コントローラ111が図16に示したように3つのサブプロセッサ123−1〜3を備えている場合には、これらのローカルストレージは図26に示すように物理アドレス空間にマッピングされている。そして、いずれのサブプロセッサも外部に貸し出されていない段階では、これらのローカルストレージは図27に示すように仮想アドレス空間にそれぞれマッピングされている。その後、サブプロセッサ123−3が情報処理ユニット170に貸し出されると、図28に示すように、そのローカルストレージは情報処理コントローラ111の仮想アドレス空間から外され、情報処理ユニット170のアドレス空間にマッピングされる(図24を参照のこと)。情報処理コントローラ111では、仮想アドレス空間から消失したサブプロセッサ123−3のローカルストレージにはアクセスできなくなる。
図29には、図16に示した情報処理装置101において、情報処理ユニット170が情報処理コントローラ111のサブプロセッサ123−3にサブプロセッサプログラムを実行させるための動作シーケンスを示している。
情報処理ユニット170は、サブプロセッサ123−3のローカルストレージ124−3に実行させたいサブプロセッサプログラムとプログラムに関連付けられたデータを書き込む(S21)。
サブプロセッサプログラムの書き込み完了後、情報処理ユニット170は、情報処理コントローラ111のメインプロセッサ121−1に対し、サブプロセッサプログラムの実行を依頼する(S22)。
依頼を受けたメインプロセッサ121−1は、サブプロセッサ123−3にプログラム実行を指示する(S23)。
実行を指示されたサブプロセッサ123−3は、サブプロセッサプログラムを実行する。
実行が終了すると、情報処理ユニット170に対し依頼されたサブプロセッサプログラムの実行終了通知を送る(S25)。以上が一時的な、すなわち動的な貸し出し手順についての記載である。一時的な、すなわち動的な貸し出しの場合には、サブプロセッサの利用許可/拒否を、装置全体の処理状況に応じて臨機応変に決定できるという効果がある。
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
本明細書では、情報処理装置内において外部バスを介して接続される情報処理コントローラと情報処理ユニットの間でサブプロセッサの貸し出しを行なう場合を例にとって本発明の実施形態について説明してきたが、本発明の要旨はこれに限定されるものではない。例えば、3つの情報処理コントローラ又は情報処理ユニット間で余剰のサブプロセッサの利用を行なう場合や、外部バス以外に例えばネットワーク経由で接続される複数の情報処理装置の間で余剰のサブプロセッサの利用を行なう場合であっても、同様に本発明を適用することができる。
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
10,11,12…情報処理装置
20…仮想情報処理装置
30…ローカルネットワーク
40…通信ネットワーク
50…サーバ
60…機能情報データベース
61…ソフトウェアデータベース
71…情報処理装置機能データベース
72…機能データベース
73…連携機能データベース
101…情報処理装置
111…情報処理コントローラ
121−1…メインプロセッサ
122−1…メインプロセッサ内LS
123−1〜3…サブプロセッサ
124−1〜3…サブプロセッサ内LS
125−1…DMAC
126−1…メインメモリ
127−1…DC
128−1〜2…外部記録部
166…外部バスIF
167…外部バス
168…バスブリッジ
169…保護機構
170…情報処理ユニット
171…プロセッサ
172…メインメモリ
173…DMAC
174…外部バスIF
20…仮想情報処理装置
30…ローカルネットワーク
40…通信ネットワーク
50…サーバ
60…機能情報データベース
61…ソフトウェアデータベース
71…情報処理装置機能データベース
72…機能データベース
73…連携機能データベース
101…情報処理装置
111…情報処理コントローラ
121−1…メインプロセッサ
122−1…メインプロセッサ内LS
123−1〜3…サブプロセッサ
124−1〜3…サブプロセッサ内LS
125−1…DMAC
126−1…メインメモリ
127−1…DC
128−1〜2…外部記録部
166…外部バスIF
167…外部バス
168…バスブリッジ
169…保護機構
170…情報処理ユニット
171…プロセッサ
172…メインメモリ
173…DMAC
174…外部バスIF
Claims (19)
- ネットワーク接続された複数の情報処理装置が協調動作により分散処理を行なう情報処理システムに含まれる情報処理装置であって、
自己のローカルストレージ上に展開されたプログラムを実行可能な1以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラと、
前記情報処理コントローラにおける一部のサブプロセッサを利用する当該情報処理装置内の情報処理ユニットと、
利用するサブプロセッサのローカルストレージを前記情報処理ユニットのアドレス空間にマッピングするアドレスマッピング手段と、
前記情報処理ユニットが利用するサブプロセッサのローカルストレージ上に前記情報処理ユニットが該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置手段と、
を具備することを特徴とする情報処理装置。 - 各サブプロセッサが持つ余剰の処理能力を基に、前記情報処理ユニットが利用するサブプロセッサを決定する、
ことを特徴とする請求項1に記載の情報処理装置。 - 前記メインプロセッサは、前記情報処理ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、又は割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始、停止、又は割り込みを行なう、
ことを特徴とする請求項1に記載の情報処理装置。 - 自己のローカルストレージ上に展開されたプログラムを実行可能な1以上のサブプロセッサと、前記サブプロセッサにプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラであって、
各サブプロセッサを管理する資源管理手段と、
前記サブプロセッサの一部を利用する情報処理ユニットを接続する接続手段と、
前記情報処理ユニットが利用するサブプロセッサを決定する利用サブプロセッサ決定手段と、
前記情報処理ユニットが利用するサブプロセッサのローカルストレージ上に前記情報処理ユニットが該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置手段と、
を具備することを特徴とする情報処理コントローラ。 - 前記資源管理手段は、各サブプロセッサの余剰の処理能力を管理し、
前記利用サブプロセッサ決定手段は、各サブプロセッサが持つ余剰の処理能力を基に、前記情報処理ユニットが利用するサブプロセッサを決定する、
ことを特徴とする請求項4に記載の情報処理コントローラ。 - 前記メインプロセッサは、前記接続手段経由での前記情報処理ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、又は割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始、停止、割り込みを行なう、
ことを特徴とする請求項4に記載の情報処理コントローラ。 - 自己のローカルストレージ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと、前記サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラの資源を利用する情報処理ユニットであって、
前記情報処理コントローラを接続する接続手段と、
利用するサブプロセッサのローカルストレージを自己のアドレス空間にマッピングするアドレスマッピング手段と、
利用するサブプロセッサのローカルストレージ上に該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置手段と、
前記メインプロセッサに対し、利用するサブプロセッサによるサブプロセッサプログラム実行の開始、停止、又は割り込みを要求するサブプロセッサプログラム実行要求手段と、
を具備することを特徴とする情報処理ユニット。 - 利用するサブプロセッサからの割り込みを、前記接続手段経由で受理する手段をさらに備える、
ことを特徴とする請求項7に記載の情報処理ユニット。 - 自己のローカルストレージ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと、前記サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサを備えた情報処理装置コントローラの一部のサブプロセッサを情報処理ユニットが利用するように処理するための当該情報処理コントローラ及び当該情報処理ユニットを含む情報処理装置の制御方法であって、
各サブプロセッサを管理する資源管理ステップと、
前記情報処理ユニットが利用するサブプロセッサを決定する利用サブプロセッサ決定ステップと、
前記情報処理ユニットが利用するサブプロセッサのローカルストレージ上に前記情報処理ユニットが該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置ステップと、
を具備することを特徴とする情報処理装置の制御方法。 - 前記資源管理ステップでは、各サブプロセッサの余剰の処理能力を管理し、
前記利用サブプロセッサ決定ステップでは、各サブプロセッサが持つ余剰の処理能力を基に、前記情報処理ユニットが利用するサブプロセッサを決定する、
ことを特徴とする請求項9に記載の情報処理装置の制御方法。 - 前記メインプロセッサが、前記情報処理ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、又は割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始、停止、又は割り込みするステップをさらに備える、
ことを特徴とする請求項9に記載の情報処理装置の制御方法。 - 前記情報処理ユニットからサブプロセッサのローカルストレージへの仮想アドレスを用いたアクセス要求を該サブプロセッサのローカルストレージの物理アドレスへ変換するアドレス変換ステップをさらに備える、
ことを特徴とする請求項9に記載の情報処理装置の制御方法。 - 各サブプロセッサのローカルストレージへの不正アクセスを禁止する保護ステップをさらに備える、
ことを特徴とする請求項9に記載の情報処理装置の制御方法。 - 前記保護ステップでは、前記情報処理ユニットによる利用が許可されていないサブプロセッサのローカルストレージへの前記情報処理ユニットからのアクセスを禁止する、
ことを特徴とする請求項13に記載の情報処理装置の制御方法。 - 前記保護ステップでは、前記情報処理ユニットが利用するサブプロセッサのローカルストレージへの当該情報処理コントローラ内部によるアクセスを禁止する、
ことを特徴とする請求項13に記載の情報処理装置の制御方法。 - 自己のローカルストレージ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと前記サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラの資源を利用するための情報処理ユニットの制御方法であって、
利用するサブプロセッサのローカルストレージを自己のアドレス空間にマッピングするアドレスマッピングステップと、
利用するサブプロセッサのローカルストレージ上に該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置ステップと、
前記メインプロセッサに対し、利用するサブプロセッサによるサブプロセッサプログラム実行の開始、停止、又は割り込みを要求するサブプロセッサプログラム実行要求ステップと、
を具備することを特徴とする情報処理ユニットの制御方法。 - 利用するサブプロセッサからの割り込みを、前記接続手段経由で受理するステップをさらに備える、
ことを特徴とする請求項16に記載の情報処理ユニットの制御方法。 - 自己のローカルストレージ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと前記サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラの一部のサブプロセッサを情報処理ユニットが利用するための処理を情報処理コントローラ上で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって、
各サブプロセッサを管理する資源管理ステップと、
前記情報処理ユニットが利用するサブプロセッサを決定する利用サブプロセッサ決定ステップと、
前記情報処理ユニットが利用するサブプロセッサのローカルストレージ上に前記情報処理ユニットが該サブプロセッサに実行を依頼する処理サブプロセッサプログラムを配置するサブプロセッサプログラム配置ステップと、
前記情報処理ユニットからのサブプロセッサプログラム実行開始要求、実行停止要求、又は割り込み要求に応答して、サブプロセッサのサブプロセッサプログラム実行を開始、停止、又は割り込みするステップと、
を具備することを特徴とするコンピュータプログラム。 - 自己のローカルストレージ上に展開されたサブプロセッサプログラムを実行可能な1以上のサブプロセッサと前記サブプロセッサにサブプロセッサプログラムの実行を命令するメインプロセッサを備えた情報処理コントローラの資源を利用するための処理を情報処理ユニット上で実行するようにコンピュータ可読形式で記述されたコンピュータプログラムであって、
利用するサブプロセッサのローカルストレージを自己のアドレス空間にマッピングするアドレスマッピングステップと、
利用するサブプロセッサのローカルストレージ上に該サブプロセッサに実行を依頼するサブプロセッサプログラムを配置するサブプロセッサプログラム配置ステップと、
前記メインプロセッサに対し、利用するサブプロセッサによるサブプロセッサプログラム実行の開始、停止、又は割り込みを要求するサブプロセッサプログラム実行要求ステップと、
を具備することを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004160169A JP2005339401A (ja) | 2004-05-28 | 2004-05-28 | 情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004160169A JP2005339401A (ja) | 2004-05-28 | 2004-05-28 | 情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005339401A true JP2005339401A (ja) | 2005-12-08 |
Family
ID=35492872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004160169A Pending JP2005339401A (ja) | 2004-05-28 | 2004-05-28 | 情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005339401A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007110986A1 (ja) * | 2006-03-28 | 2007-10-04 | Sony Computer Entertainment Inc. | ネットワークコンピューティングシステムおよびマルチプロセッサコンピュータ |
WO2007110987A1 (ja) * | 2006-03-28 | 2007-10-04 | Sony Computer Entertainment Inc. | マルチプロセッサコンピュータおよびネットワークコンピューティングシステム |
JP2010250884A (ja) * | 2009-04-14 | 2010-11-04 | Sony Corp | 情報記録装置、情報配信サーバ、情報記録システム、及び、情報記録方法 |
JP2011048615A (ja) * | 2009-08-27 | 2011-03-10 | Renesas Electronics Corp | データプロセッサ |
US8005887B2 (en) | 2006-07-10 | 2011-08-23 | Hitachi, Ltd. | Gateway apparatus and system |
-
2004
- 2004-05-28 JP JP2004160169A patent/JP2005339401A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007110986A1 (ja) * | 2006-03-28 | 2007-10-04 | Sony Computer Entertainment Inc. | ネットワークコンピューティングシステムおよびマルチプロセッサコンピュータ |
WO2007110987A1 (ja) * | 2006-03-28 | 2007-10-04 | Sony Computer Entertainment Inc. | マルチプロセッサコンピュータおよびネットワークコンピューティングシステム |
JP2007264885A (ja) * | 2006-03-28 | 2007-10-11 | Sony Computer Entertainment Inc | マルチプロセッサコンピュータおよびネットワークコンピューティングシステム |
JP2007264886A (ja) * | 2006-03-28 | 2007-10-11 | Sony Computer Entertainment Inc | ネットワークコンピューティングシステムおよびマルチプロセッサコンピュータ |
US8589551B2 (en) | 2006-03-28 | 2013-11-19 | Sony Corporation | Multiprocessor computer and network computing system processing use and provision of hardware resource via a network |
US8005887B2 (en) | 2006-07-10 | 2011-08-23 | Hitachi, Ltd. | Gateway apparatus and system |
JP2010250884A (ja) * | 2009-04-14 | 2010-11-04 | Sony Corp | 情報記録装置、情報配信サーバ、情報記録システム、及び、情報記録方法 |
JP2011048615A (ja) * | 2009-08-27 | 2011-03-10 | Renesas Electronics Corp | データプロセッサ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1312592C (zh) | 信息处理***及信息处理方法 | |
EP1569114A2 (en) | Network system, distributed processing method and information processing apparatus | |
TW200532466A (en) | Information processing device, information processing method, information processing system and information processing program of accessible media | |
TWI261464B (en) | Information processing system, information processing method, and computer program | |
JP4599923B2 (ja) | 情報処理システム及び情報処理方法、並びにコンピュータプログラム | |
KR20060042399A (ko) | 콘텐츠 처리 시스템 및 콘텐츠 처리 방법과, 컴퓨터 프로그램 | |
KR101119870B1 (ko) | 정보 처리 시스템 및 정보 처리 방법 | |
EP1589753A2 (en) | Content reproduction apparatus, content recording apparatus, network system, and content recording/reproduction method | |
JP2005339401A (ja) | 情報処理装置及びその制御方法、情報処理コントローラ、情報処理ユニット及びその制御方法、並びにコンピュータプログラム | |
KR101096308B1 (ko) | 정보 처리 장치, 정보 처리 방법, 정보 처리 시스템 및 기록 매체 | |
JP2005339174A (ja) | 情報処理システム及び情報処理方法、並びにコンピュータプログラム | |
JP2006033646A (ja) | 情報処理システム及び情報処理方法、並びにコンピュータプログラム | |
JP2005252402A (ja) | コンテンツ記録システム及びコンテンツ記録方法、並びにコンピュータ・プログラム | |
JP2005267150A (ja) | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム | |
JP2005244577A (ja) | 情報処理システム及び情報処理方法、並びにコンピュータ・プログラム | |
JP2005252403A (ja) | コンテンツ記録システム及びコンテンツ記録方法、並びにコンピュータ・プログラム | |
JP2005311479A (ja) | ネットワークシステム、番組録画予約方法および情報処理装置 | |
JP2005251163A (ja) | 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム | |
KR20060071069A (ko) | 정보 처리 장치, 정보 처리 방법, 정보 처리 시스템 및정보 처리용 컴퓨터 프로그램 | |
JP2006018343A (ja) | 情報処理装置、ネットワークシステム、および情報処理装置の機能拡張方法 |