[1.ネットワークシステムおよび情報処理装置の基本的構成その1]
図1は、この発明のネットワークシステムの一例を示し、ネットワーク9を介して複数の情報処理装置1,2,3および4が接続されたものである。
(1−1.情報処理装置および情報処理コントローラ)
情報処理装置1,2,3および4は、それぞれ後述のような各種のAV(Audio and Visual)機器やポータブル機器である。
情報処理装置1について示すと、情報処理装置1は、コンピュータ機能部として情報処理コントローラ11を備える。情報処理コントローラ11は、メインプロセッサ21−1、サブプロセッサ23−1,23−2および23−3、DMAC(ダイレクトメモリアクセスコントローラ)25−1、およびDC(ディスクコントローラ)27−1を有する。
メインプロセッサ21−1は、サブプロセッサ23−1,23−2および23−3によるサブプロセッサプログラムの実行(データ処理)のスケジュール管理と、情報処理コントローラ11(情報処理装置1)の全般的な管理とを行う。ただし、メインプロセッサ21−1内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ21−1はサブプロセッサとしても機能することになる。メインプロセッサ21−1は、LS(ローカルストレージ)22−1を有する。
サブプロセッサは、1つでもよいが、望ましくは複数とする。この例は、複数の場合である。
各サブプロセッサ23−1,23−2および23−3は、メインプロセッサ21−1の制御によって並列的かつ独立に、サブプロセッサプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ21−1内のプログラムがサブプロセッサ23−1,23−2または23−3内のサブプロセッサプログラムと連携して動作するように構成することもできる。後述する機能プログラムもメインプロセッサ21−1内で動作するプログラムである。各サブプロセッサ23−1,23−2および23−3も、LS(ローカルストレージ)24−1,24−2および24−3を有する。
DMAC25−1は、情報処理コントローラ11に接続されたDRAM(ダイナミックRAM)などからなるメインメモリ26−1に格納されているプログラムおよびデータにアクセスするものであり、DC27−1は、情報処理コントローラ11に接続された外部記録部28−1および28−2にアクセスするものである。
外部記録部28−1および28−2は、固定ディスク(ハードディスク)でも、リムーバブルディスクでもよく、また、MO,CD±RW,DVD±RWなどの光ディスク、メモリディスク、SRAM(スタティックRAM)、ROMなど、各種のものを用いることができる。したがって、DC27−1は、ディスクコントローラと称するが、外部記録部コントローラである。
図1の例のように、情報処理コントローラ11に対して外部記録部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として割り当てられる。
情報処理コントローラ11は、ワンチップIC(集積回路)として構成することが望ましい。
他の情報処理装置2、3および4も、同様に構成される。ここで、親番号が同一であるユニットは、枝番号が異なっていても、特に断りがない限り、同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
(1−2.各サブプロセッサからメインメモリへのアクセス)
上述したように、1つの情報処理コントローラ内の各サブプロセッサ23は、独立にサブプロセッサプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ26内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ23からメインメモリ26へのアクセスは、以下のような手順によって行う。
図2(A)に示すように、メインメモリ26は、アドレス指定可能な複数のメモリロケーション0〜Mによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメント0〜Mが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述のアクセスキー0〜Mも割り振られる。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も、アドレス指定可能な複数のメモリロケーション0〜Lによって構成される。各メモリロケーションに対しては、同様に追加セグメント0〜Lが割り振られる。追加セグメントは、ビジービットを含むものとされる。
サブプロセッサ23がメインメモリ26内のデータを自身のLS24のメモリロケーションに読み出すときには、読み出し先のメモリロケーションに対応するビジービットを1に設定して予約する。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。LS24のメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
図2(A)に示すように、さらに、各情報処理コントローラに接続されたメインメモリ26には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ26内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ23に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ23は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。
メインメモリ26は、複数のメモリロケーション0〜Mから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。すなわち、1つのサンドボックスは、1つまたは複数のメモリロケーションから構成される。
さらに、メインメモリ26の排他的な制御を実現するために、図2(C)に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のSRAMのような比較的高速のメモリに格納され、DMAC25と関連付けられる。
キー管理テーブル内には、情報処理コントローラ内のサブプロセッサの数と同数のエントリが存在し、各エントリには、サブプロセッサIDおよび、それに対応するサブプロセッサキーおよびキーマスクが関連付けられて格納される。
サブプロセッサ23がメインメモリ26を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ23はDMAC25に、読み出しまたは書き込みのコマンドを送信する。このコマンドには、自身のサブプロセッサIDと、アクセス要求先であるメインメモリ26のアドレスが含まれる。
DMAC25は、このコマンドを実行する前に、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ23のサブプロセッサキーを調べる。次に、DMAC25は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ26内の図2(A)に示したメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、上記のコマンドを実行する。
図2(C)に示したキー管理テーブル上のキーマスクは、その任意のビットが1になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが0または1になることができる。
例えば、サブプロセッサキーが1010であるとする。通常、このサブプロセッサキーによって1010のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが0001に設定されている場合には、キーマスクのビットが1に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー1010によって、アクセスキーが1010または1011のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ26のサンドボックスの排他性が実現される。すなわち、1つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ26の所定アドレスにアクセスできるようになり、データを保護することができる。
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のサブプロセッサプログラムと連携動作するものとする。第1のサブプロセッサにより実行された処理結果データを一旦、メインメモリ26に格納し、第2のサブプロセッサに送信したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的な処理を可能にする。
より具体的には、他の情報処理装置からのデータ→第1のサブプロセッサによる処理→第1のメインメモリ領域→第2のサブプロセッサによる処理→第2のメインメモリ領域、という手順で多段階処理が行われるときには、
第1のサブプロセッサのサブプロセッサキー:0100、
第1のメインメモリ領域のアクセスキー :0100、
第2のサブプロセッサのサブプロセッサキー:0101、
第2のメインメモリ領域のアクセスキー :0101、
のような設定のままだと、第2のサブプロセッサは第1のメインメモリ領域にアクセスすることができない。そこで、第2のサブプロセッサのキーマスクを0001にすることにより、第2のサブプロセッサによる第1のメインメモリ領域へのアクセスを可能にすることができる。
(1−3.ソフトウェアセルの生成および構成)
図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には、当該の情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、後述のハードディスクレコーダ、テレビ受信装置、ポータブルCD(Compact Disc)プレーヤなどである。また、情報処理装置種別IDは、映像音声記録、映像音声再生など、情報処理装置の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別IDを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
MS(マスター/スレーブ)ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが0に設定されている場合にはマスター装置として動作していることを示し、1に設定されている場合にはスレーブ装置として動作していることを示す。
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ21の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ21で現在動作している全てのプログラムについての、メインプロセッサ21での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるMIPSを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ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に対して一組設定され、当該の情報処理コントローラに接続されている外部記録部28の数の組数だけ設定される。すなわち、1つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部IDが割り当てられ、外部記録部種別ID、外部記録部総容量および外部記録部使用量も別々に管理される。
(1−4.ソフトウェアセルの実行)
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ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つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
[2.情報処理装置間の分散処理の例その1]
ソフトウェアセルの使用による分散処理の結果、図5の上段に示すようにネットワーク9に接続されている複数の情報処理装置1,2,3および4は、図5の下段に示すように、仮想的な1台の情報処理装置7として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
(2−1.システムのソフトウェア構成とプログラムのロード)
図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によって処理される機能プログラムと連携動作する。
図3のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムIDとして割り当てられる。機能プログラムIDは、機能プログラムの作成の段階で、作成日時や情報処理装置IDなどから決定される。
サブプロセッサプログラムにもサブプロセッサプログラムIDが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムIDは、連携動作の相手となる機能プログラムの機能プログラムIDと関連性のある識別子、例えば機能プログラムIDを親番号とした上で最後尾に枝番号を付加させた識別子でもよいが、連携動作の相手となる機能プログラムの機能プログラムIDとは関連性のない識別子でもよい。
いずれにしても、機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムIDを自プログラム内に記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは、その複数個のサブプロセッサプログラムのサブプロセッサプログラムIDを全て記憶しておく。
メインプロセッサ21は、自身が動作する情報処理装置の装置情報(装置の種別、能力、動作状態、装置が有する資源などの、装置に関する情報)を格納するための領域をメインメモリ26に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、具体的には、図4に示した情報処理装置ID以下の各情報である。
(2−2.システムにおけるマスター/スレーブの決定)
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ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の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
(2−3.能力交換による装置情報の取得)
メインプロセッサ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マネージャおよび能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
(2−4.情報処理装置がネットワークから切断された場合)
マスター装置およびスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、ネットワーク9に接続されている情報処理装置の主電源が遮断され、またはネットワーク9から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリから削除する。
さらに、このようにネットワーク9から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
具体的に、例えば、ネットワーク9から切断されていない情報処理装置は、それぞれ、自装置および他装置の情報処理装置IDを数値に置き換えて、自装置の情報処理装置IDを他装置の情報処理装置IDと比較し、自装置の情報処理装置IDがネットワーク9から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、MSステータスを0に設定し、マスター装置として、上述したように、ネットワーク9に接続されている全ての他装置(各スレーブ装置)の装置情報を取得して、メインメモリ26に記録する。
(2−5.装置情報に基づく情報処理装置間の分散処理)
図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に機能プログラムを送信してもよい。
機能プログラムには、その実行単位ごとに必要となる、図4に示した各情報として表される情報処理装置種別ID、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの、装置に関する要求スペックが規定されている。
マスター装置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は、ステップ81で、その操作情報をマスター装置1に送信する。
マスター装置1は、ステップ72で、その操作情報を受信し、さらにステップ73に進んで、自装置のメインメモリ26−1に記録されている自装置および他装置の装置情報テーブルから、各情報処理装置の動作状態などを調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Bが選択される場合である。
次に、マスター装置1は、ステップ74で、その選択したスレーブ装置Bに対して機能プログラムの実行を要求する。
スレーブ装置Bは、ステップ95で、その実行要求を受信し、さらにステップ96に進んで、実行要求された機能プログラムを実行する。
以上のように、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1,2,3および4を仮想的な1台の情報処理装置7として動作させることができる。
(2−6.各情報処理装置およびシステムの具体例)
ネットワーク9を介して互いに接続される情報処理装置1,2,3および4は、基本的に上記のような情報処理コントローラ11,12,13および14によって情報処理を行うものであれば、どのようなものでもよいが、図9に、その一例を示す。
この例では、情報処理コントローラ11を備える情報処理装置1は、ハードディスクレコーダで、図10に示すように、ハードウェア構成としては、図1に示した外部記録部28−1として、ハードディスクを内蔵し、図1に示した外部記録部28−2として、DVD±R/RW、CD±R/RW、Blu−rayDisc(登録商標)などの光ディスクを装着できるとともに、情報処理コントローラ11のバス29−1に接続されたバス31−1に、放送受信部32−1、映像入力部33−1、音声入力部34−1、映像出力部35−1、音声出力部36−1、操作パネル部37−1、リモコン(遠隔操作)受光部38−1、ネットワーク接続部39−1、および表示駆動部41−1が接続され、表示駆動部41−1に、液晶表示部42−1が接続されたものである。
放送受信部32−1、映像入力部33−1および音声入力部34−1は、放送信号を受信し、または情報処理装置1の外部から映像信号および音声信号を入力し、それぞれ所定フォーマットのデジタルデータに変換して、情報処理コントローラ11での処理のためにバス31−1に送出するものであり、映像出力部35−1および音声出力部36−1は、情報処理コントローラ11からバス31−1に送出された映像データおよび音声データを処理して、デジタルデータのまま、またはアナログ信号に変換して、情報処理装置1の外部に送出するものであり、リモコン受光部38−1は、リモコン送信器43−1からのリモコン赤外線信号を受信するものである。
また、液晶表示部42−1は、ハードディスクレコーダである情報処理装置1の操作状況などを表示するとともに、後述のようにネットワーク9の接続状況やネットワークシステム全体の状態を表示するものである。
図9の例の、情報処理コントローラ12を備える情報処理装置2も、ハードディスクレコーダで、図10において括弧内に参照番号を付して示すように、情報処理装置1と同様に構成されたものである。
それぞれハードディスクレコーダである情報処理装置1および2のソフトウェア構成としては、制御プログラムとして、図6に示したように、MSマネージャおよび能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、素材検索、番組録画予約などのためのプログラムを備え、デバイスドライバとして、放送受信、映像入力、音声入力、映像出力、音声出力、外部記録部入出力、ネットワーク入出力などのためのプログラムを備える。
図9の例の、情報処理コントローラ13を備える情報処理装置3は、テレビ受信装置で、図11に示すように、ハードウェア構成としては、図1に示した外部記録部28−5として、メモリカードディスクを装着できるとともに、情報処理コントローラ13のバス29−3に接続されたバス51に、放送受信部52、映像出力部53、音声出力部54、操作パネル部55、リモコン受光部56、ネットワーク接続部57、およびLED(発光ダイオード)駆動部58が接続され、映像出力部53に、液晶ディスプレイやプラズマディスプレイなどの映像表示部45が接続され、音声出力部54に、左右のスピーカ46および47が接続され、LED駆動部58に、LED48が接続されたものである。
放送受信部52は、放送信号を受信して、その映像信号および音声信号を、それぞれ所定フォーマットのデジタルデータに変換して、情報処理コントローラ13での処理のためにバス51に送出するものであり、映像出力部53は、情報処理コントローラ13からバス51に送出された映像データを処理して、映像表示部45に出力するものであり、音声出力部54は、情報処理コントローラ13からバス51に送出された音声データを処理して、スピーカ46および47に出力するものであり、リモコン受光部56は、リモコン送信器59からのリモコン赤外線信号を受信するものである。
また、LED48は、後述のようにネットワーク9の接続状況やネットワークシステム全体の状態を表示するものである。
なお、図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を有する。
テレビ受信装置である情報処理装置3のソフトウェア構成としては、制御プログラムとして、図6に示したように、MSマネージャおよび能力交換プログラムを備え、機能プログラムとして、映像音声処理などのプログラムを備え、デバイスドライバとして、放送受信、映像出力、音声出力、ネットワーク入出力などのためのプログラムを備える。
図9の例の、情報処理コントローラ14を備える情報処理装置4は、ポータブルCDプレーヤで、図12に示すように、ハードウェア構成としては、図1に示した外部記録部28−6として、CD(Compact Disc)を装着できるとともに、情報処理コントローラ14のバス29−4に接続されたバス61に、表示駆動部62、音声出力部64、操作ボタン部65、およびネットワーク接続部66が接続され、表示駆動部62に、液晶表示部63が接続されたものである。
液晶表示部63は、ポータブルCDプレーヤである情報処理装置4の選曲操作用に曲名などを表示するとともに、後述のようにネットワーク9の接続状況やネットワークシステム全体の状態を表示するものである。
なお、図1では内部を省略した情報処理コントローラ14は、メインプロセッサ21−4、サブプロセッサ23−10,23−11および23−12、DMAC(ダイレクトメモリアクセスコントローラ)25−4、DC(ディスクコントローラ)27−4、およびバス29−4を備え、そのメインプロセッサ21−4は、LS(ローカルストレージ)22−4を有し、各サブプロセッサ23−10,23−11および23−12は、LS(ローカルストレージ)24−10,24−11および24−12を有する。
ポータブルCDプレーヤである情報処理装置4のソフトウェア構成としては、制御プログラムとして、図6に示したように、MSマネージャおよび能力交換プログラムを備え、機能プログラムとして、音楽再生などのためのプログラムを備え、デバイスドライバとして、音声出力、CD制御、ネットワーク入出力などのためのプログラムを備える。
以上のような図9の例のネットワークシステムは、外観上は、図13のように構成される。
それぞれハードディスクレコーダである情報処理装置1および2には、正面部に上記の液晶表示部42−1および42−2が設けられ、テレビ受信装置である情報処理装置3には、映像表示部45の左右にスピーカ46および47が設けられ、スピーカ46および47の周辺に上記のLED48が設けられ、ポータブルCDプレーヤである情報処理装置4には、上記の液晶表示部63が設けられる。LED48は、後述のように複数のLEDからなるものである。
このような図9〜図13の例のシステムにおいて、情報処理装置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内の装置情報テーブルを更新する。
このような状態で、ユーザによってスレーブ装置である情報処理装置(テレビ受信装置)3で2時間の放送番組の録画予約の操作が行われた場合を示す。
この場合、スレーブ装置である情報処理装置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〜図13の例のネットワークシステムにおいても、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1,2,3および4を仮想的な1台の情報処理装置7として動作させることができる。
[3.ネットワークシステムの状況の呈示その1]
上述したシステムでは、ユーザは、システムの外観などから、複数の情報処理装置が、ネットワークシステムを構成していることや、連携動作中であることなどを、容易に知ることができない。
そこで、この発明では、以下に示すように、複数の情報処理装置が、ネットワークシステムを構成していることや、連携動作中であることなどを、システムの外観などから、ユーザが容易かつ確実に知ることができるようにする。
(3−1.システム構成)
図9〜図13の例のシステムでは、図13に示したように、それぞれハードディスクレコーダである情報処理装置1および2には液晶表示部42−1および42−2を設け、テレビ受信装置である情報処理装置3にはLED48を設け、ポータブルCDプレーヤである情報処理装置4には液晶表示部63を設ける。LED48としては、例えば、緑色LED、赤色LEDおよび青色LEDを、スピーカ46および47の周辺に複数配置する。
また、各情報処理装置1,2,3および4は、それぞれ日時(日付および時刻)を計測する機能を備えるとともに、ネットワーク9を介して接続された情報処理装置の間では、マスター装置に設定されている情報処理装置によって、それぞれの日時が一致するように制御されるものとする。
情報処理装置1,2,3および4のソフトウェア構成としては、図14に示すように、制御プログラムとして、図6に示したMSマネージャおよび能力交換プログラムのほかに接続マネージャを用意し、機能プログラムおよびデバイスドライブとして、上述したように各情報処理装置に応じたものを用意する。
接続マネージャは、MSマネージャによるMSステータス(マスター装置では0、スレーブ装置では1)の設定後の、能力交換プログラムによる能力交換(マスター装置およびスレーブ装置における自装置および他装置の装置情報の取得)後、起動させるもので、能力交換によって得られた装置情報をもとに、呈示用情報として点滅表示用情報を生成し、その点滅表示用情報によって、各情報処理装置の呈示用の発光表示部、すなわち図9〜図13の例では、情報処理装置1および2の液晶表示部42−1および42−2、情報処理装置3のLED48、および情報処理装置4の液晶表示部63を点滅表示させて、ネットワーク9の接続状況やネットワークシステム全体の状態をユーザに呈示するものである。
接続状況などの呈示用の装置情報は、例えば、図15に示すように、図4に示した情報処理装置ID以下の各情報から、サブプロセッサ数やサブプロセッサステータスなどの、サブプロセッサに関する情報を除き、必要に応じて、これに特記詳細情報を加えたものとする。
特記詳細情報は、ネットワーク9に接続されている情報処理装置の台数を示す情報や、2台以上の情報処理装置がネットワーク9に接続されている場合に、その複数の情報処理装置が連携動作中であることを示す情報などであり、図15に示される装置情報以外の装置情報から生成する。
この呈示用の装置情報から生成する点滅表示用情報は、例えば、図16に示すように、点滅開始日時、点滅終了日時、表示色、点滅周期、点滅時間比率、光量変化、点滅位相、および拡張情報からなるものとする。
点滅開始日時および点滅終了日時は、図17に示すような時刻tsから時刻teまでの間の期間、点滅表示することを指示するものである。ただし、点滅終了日時の代わりに、点滅開始日時から10秒間というように、点滅期間の時間幅を指示するようにしてもよい。
表示色(点灯色)は、第1に緑色、第2に赤色、第3に青色、というように、複数の色から、後述のように1つを選択して指定する。
点滅周期は、図17に示すように1回の点灯時間と1回の消灯時間の和で、第1に1.0秒、第2に0.5秒、というように、複数通りから、後述のように1つを選択して指定する。
点滅時間比率は、1回の点灯時間と1回の消灯時間との比率で、第1に50:50、第2に30:70、というように、複数通りから、後述のように1つを選択して指定する。
光量変化は、点灯時間内で点灯光量を変化させるか否かを示すもので、第1には、図17において即時モードや位相シフトモードとして示すように、点灯光量が一定の光量一定モードとし、第2には、図17において光量変化モードとして示すように、一点滅周期内で、光量が最大値からゼロまで漸減した後、ゼロから最大値まで漸増する光量変化モードとし、これら光量一定モードおよび光量変化モードのうちから、後述のように1つを選択して指定する。
ただし、図17に示すような光量変化モードでは、実際上、光量ゼロの消灯時間が一瞬となり、上記の点滅時間比率は50:50というような比率にならないが、光量変化モードでは、光量が最大値からゼロまで漸減する期間を消灯期間、光量がゼロから最大値まで漸増する期間を点灯期間とし、または、光量が最大値の1/2以上の期間を点灯期間、光量が最大値の1/2未満の期間を消灯期間として、点滅時間比率を定義するとともに、例えば、その点滅時間比率を50:50に固定する。
図16の点滅表示用情報中の点滅位相は、上記のように指定した点滅開始日時から、直ちに点滅表示するか、ある時間遅らせて点滅表示するかを指示するもので、例えば、図17に示すような、即時モード(遅延時間はゼロ)、第1位相シフトモードD1(遅延時間は一点滅周期の1/4の時間d1)、第2位相シフトモードD2(遅延時間は一点滅周期の1/2の時間d2)、および第3位相シフトモードD3(遅延時間は一点滅周期の3/4の時間d3)のうちから、後述のように各情報処理装置につき選択する。
点滅表示用情報中の拡張情報は、
(u)ネットワーク9に接続されている情報処理装置の台数に応じて、図17の時刻tsから時刻teまでの点滅期間内の点滅回数を指示し、
(v)表示色として、あらかじめユーザが指定した複数色、または接続マネージャがランダムに選択した複数色を使用し、ユーザが指定した色順、または接続マネージャがランダムに決定した色順で、点滅表示することを指示する、
などである。
上述したシステムでは、点滅表示の表示色につき、ユーザが、あらかじめ、
(a)特定の1色を指定する、
(b)1色を指定するが、色の選択はシステム(接続マネージャ)に委ねる、
(c)特定の複数色を指定し、色順も指定する、
(d)特定の複数色を指定するが、色順の決定はシステムに委ねる、
(e)2色以上の色数を指定するが、色の選択および色順の決定はシステムに委ねる、
という設定を選択的に行うことができるように、システムを構成する。
(a)または(b)の場合には、接続マネージャは、図16の点滅表示用情報中の表示色として、ユーザが指定した特定の色、または自身がランダムに選択した色を記述するが、(c)(d)または(e)の場合には、接続マネージャは、図16の点滅表示用情報中の拡張情報として、上記(v)のように、ユーザが指定し、または自身がランダムに選択決定した複数色および色順を記述する。
(3−2.呈示方法)
上述したように、情報処理装置1,3および4がネットワーク9に接続され、情報処理装置1がマスター装置に設定され、情報処理装置3および4がスレーブ装置に設定されている状態で、新たに情報処理装置2がネットワーク9に接続された場合につき、上述した点滅表示用情報の生成、およびこれによる点滅表示の方法を示す。
このとき、上述したように、新たに追加された情報処理装置2は、自装置をスレーブ装置に設定するとともに、マスター装置に設定されている情報処理装置1は、新たに追加された情報処理装置2を含む各情報処理装置の装置情報を収集して、メインメモリ26−1内の装置情報テーブルを更新する。
さらに、その後、各情報処理装置1,2,3および4のメインプロセッサ21は、接続マネージャを起動し、図18に示すような呈示処理を実行する。
すなわち、能力交換(装置情報テーブルの更新)後、スレーブ装置に設定されている情報処理装置2,3および4、およびマスター装置に設定されている情報処理装置1は、それぞれ、ステップ101および111で、接続マネージャを起動する。
次に、スレーブ装置に設定されている情報処理装置2,3および4は、それぞれ、ステップ102で、マスター装置に設定されている情報処理装置1に対して、呈示用情報要求コマンドを送信する。
この呈示用情報要求コマンドは、図19(A)に示すように、送信元ID(この場合は情報処理装置2,3または4の情報処理装置ID)、送信先ID(この場合は情報処理装置1の情報処理装置ID)、および応答先ID(この場合は情報処理装置2,3または4の情報処理装置ID)を有し、DMAコマンドとして、呈示用情報要求コマンド本体を含むものとする。
図18に示すように、マスター装置に設定されている情報処理装置1は、ステップ113で、この呈示用情報要求コマンドを受信し、さらにステップ114に進んで、メインメモリ26−1内の、自装置(情報処理装置1)および他装置(情報処理装置2,3および4)の装置情報テーブル内の、それぞれ図15に示したような装置情報から、それぞれ呈示用情報として、自装置および他装置のそれぞれに対する図16に示したような点滅表示用情報を生成する。
次に、マスター装置に設定されている情報処理装置1は、ステップ115で、その生成した他装置(情報処理装置2,3および4)のそれぞれに対する点滅表示用情報を、呈示用情報返信コマンドによって他装置のそれぞれに対して送信する。
この呈示用情報返信コマンドは、図19(B)に示すように、送信元ID(この場合は情報処理装置1の情報処理装置ID)、送信先ID(この場合は情報処理装置2,3または4の情報処理装置ID)、および応答先ID(この場合は情報処理装置2,3または4の情報処理装置ID)を有し、DMAコマンドとして、呈示用情報返信コマンド本体および生成した点滅表示用情報を含むものとする。
図18に示すように、マスター装置に設定されている情報処理装置1は、次にステップ116で、自装置に対する点滅表示用情報を、自装置の点滅表示モジュールに送信し、さらにステップ117に進んで、その点滅表示モジュールによって点滅表示を行う。
一方、スレーブ装置に設定されている情報処理装置2,3および4は、それぞれ、ステップ106で、自装置宛の呈示用情報返信コマンドを受信して、それに含まれる自装置に対する点滅表示用情報を、自装置の点滅表示モジュールに送信し、さらにステップ107に進んで、その点滅表示モジュールによって点滅表示を行う。
情報処理装置1,2,3および4の点滅表示モジュールは、それぞれ、点滅表示用プログラムおよび発光表示部(ハードウェア部)によって構成され、情報処理装置1,2,3および4では、それぞれ、その点滅表示用プログラムによって点滅表示用情報が解析処理され、その発光表示部が点滅表示される。
発光表示部は、情報処理装置1では、図10および図13に示した液晶表示部42−1であり、情報処理装置2では、図10および図13に示した液晶表示部42−2であり、情報処理装置3では、図11および図13に示したLED48であり、情報処理装置4では、図12および図13に示した液晶表示部63である。
(3−3.呈示態様)
以下に、各種の場合において生成される点滅表示用情報の内容、および各種の場合における点滅表示の態様を示す。
<3−3−1>
第1は、図15に示した呈示用の装置情報として、特記詳細情報を記述せず、かつ、図16に示した点滅表示用情報として、拡張情報を記述しないで、全ての情報処理装置につき、例えば、表示色は緑色、点滅周期は1.0秒、点滅時間比率は50:50、光量変化は無し(光量一定)、点滅位相は即時(時間遅れ無し)とする場合である。
この場合には、情報処理装置1では、液晶表示部42−1の表示画面全体が緑色で点滅し、情報処理装置2では、液晶表示部42−2の表示画面全体が緑色で点滅し、情報処理装置3では、LED48中の緑色LEDが点滅し、情報処理装置4では、液晶表示部63の表示画面全体が緑色で点滅する。
したがって、ユーザは、システムの外観から、情報処理装置1,2,3および4がネットワークシステムを構成していることを、容易かつ確実に知ることができる。
<3−3−2>
第2は、マスター装置に設定されている情報処理装置とスレーブ装置に設定されている情報処理装置とで、点滅周期または表示色を変える場合である。
上述した例では、情報処理装置1がマスター装置に設定され、情報処理装置2,3および4がスレーブ装置に設定されているので、(2a)表示色は、同じ色、例えば緑色にして、情報処理装置1については、点滅周期を0.5秒とし、情報処理装置2,3および4については、点滅周期を1.0秒とする、(2b)点滅周期は、同じ時間、例えば1.0秒にして、情報処理装置1については、表示色を赤色とし、情報処理装置2,3および4については、表示色を緑色とする、(2c)情報処理装置1については、点滅周期を0.5秒、表示色を赤色とし、情報処理装置2,3および4については、点滅周期を1.0秒、表示色を緑色とする、などである。
これによれば、ユーザは、システムの外観から、情報処理装置1,2,3および4がネットワークシステムを構成していることだけでなく、情報処理装置1がマスター装置に設定され、情報処理装置2,3および4がスレーブ装置に設定されていることを、容易かつ確実に知ることができる。
<3−3−3>
第3は、点滅位相を各情報処理装置の情報処理装置IDの順に遅らせる場合である。すなわち、上記の例で、情報処理装置IDを数値に置き換えたとき、例えば、情報処理装置1の次順位が情報処理装置2、情報処理装置2の次順位が情報処理装置3、情報処理装置3の次順位が情報処理装置4となる(より大きいものがないときは最小のものに戻る)とすると、情報処理装置1については、図17に示したような即時モードとし、情報処理装置2については、図17に示したような第1位相シフトモードD1とし、情報処理装置3については、図17に示したような第2位相シフトモードD2とし、情報処理装置4については、図17に示したような第3位相シフトモードD3とする。
これによれば、ユーザは、システムの外観から、情報処理装置1,2,3および4がネットワークシステムを構成していることだけでなく、各情報処理装置の順番を、容易かつ確実に知ることができる。
<3−3−4>
第4は、図15に示した呈示用の装置情報中に、特記詳細情報として、ネットワーク9に接続されている情報処理装置の台数を記述し、図16に示した点滅表示用情報中に、拡張情報として、上記(u)のように点滅期間内の点滅回数を記述する場合である。
上記の例では、4台の情報処理装置1,2,3および4がネットワーク9に接続されているので、例えば、それぞれの情報処理装置1,2,3および4につき、図17の時刻tsから時刻teまでの点滅期間内において、4回点滅させた後、1回分(一点滅周期)は点滅を休止して消灯状態とするパターンで、それぞれの情報処理装置1,2,3および4を点滅させる。
これによれば、ユーザは、システムの外観から、複数の情報処理装置がネットワークシステムを構成していることだけでなく、何台の情報処理装置がネットワーク9に接続されているかを、容易かつ確実に知ることができる。
<3−3−5>
第5は、図16に示した点滅表示用情報中に、拡張情報として、上記(v)のように、ユーザが指定し、またはシステム(マスター装置に設定されている情報処理装置1の接続マネージャ)がランダムに選択決定した複数色および色順を記述する場合である。
この場合、上記の例では、例えば、情報処理装置1が赤色で、情報処理装置2が緑色で、情報処理装置3が青色で、情報処理装置4が黄色で、それぞれ点滅する。
これによれば、ユーザは、システムの外観から、複数の情報処理装置がネットワークシステムを構成していることだけでなく、何台の情報処理装置がネットワーク9に接続されているかなどを、容易かつ確実に知ることができる。
なお、情報処理装置3では、例えば、図13に示したLED48中の緑色LEDおよび赤色LEDを近接して配置し、その緑色LEDおよび赤色LEDを同時に点滅させることによって、情報処理装置3を黄色で点滅させることができる。
<3−3−6>
第6は、図15に示した呈示用の装置情報中に、特記詳細情報として、ネットワークシステムが連携動作中であることを記述し、それを、図16に示した点滅表示用情報中の、いずれかの項目に反映させる場合である。
例えば、上述したように、情報処理装置1,3および4がネットワーク9に接続されている状態で、新たに情報処理装置2がネットワーク9に接続されたとき、ユーザが情報処理装置3で行った操作に応じた処理が、情報処理装置1,3または4で実行されている場合は、当該ネットワークシステムは連携動作中である。
そして、例えば、このように連携動作中である場合は、表示色を青色とし、連携動作中ではない場合は、表示色を緑色とする。または、例えば、連携動作中である場合は、点滅周期を0.5秒とし、連携動作中ではない場合は、点滅周期を1.0秒とする。
これによれば、ユーザは、システムの外観から、複数の情報処理装置がネットワークシステムを構成していることだけでなく、現に連携動作中であるか否かを、容易かつ確実に知ることができる。
<3−3−7>
第7は、図15に示した呈示用の装置情報中の、メインプロセッサ、メインメモリまたは外部記録部に関する情報を、図16に示した点滅表示用情報中の、いずれかの項目に反映させる場合である。
例えば、メインプロセッサ使用率が一定値以上になっている情報処理装置については、ユーザに注意を喚起するために、点滅周期を通常の1.0秒の1/2の0.5秒とし、または表示色を通常の緑色ではなく赤色とする。
また、メインメモリ総容量とメインメモリ使用量とからメインメモリ使用率を算出し、このメインメモリ使用率が一定値以上になっている情報処理装置については、ユーザに注意を喚起するために、点滅周期を通常の1.0秒の1/2の0.5秒とし、または表示色を通常の緑色ではなく赤色とする。
また、外部記録部種別IDから外部記録部としてハードディスクが用いられているか否かを判断し、ハードディスクが用いられている情報処理装置(上記の例では情報処理装置1および2)については、そのハードディスクの総容量と使用量とから使用率を算出し、このハードディスク使用率が一定値以上になっている情報処理装置については、ユーザに注意を喚起するために、点滅周期を通常の1.0秒の1/2の0.5秒とし、または表示色を通常の緑色ではなく赤色とする。
なお、メインプロセッサ使用率、メインメモリ使用率、またはハードディスク使用率が高いほど、点滅周期を短くするように、メインプロセッサ使用率、メインメモリ使用率、またはハードディスク使用率に応じて、点滅周期を連続的に変化させてもよい。
<3−3−8>
第8は、ネットワークに接続されている情報処理装置に異常や問題がある場合、図15に示した呈示用の装置情報中に、特記詳細情報として、そのことを記述し、そのことを、図16に示した点滅表示用情報中の、いずれかの項目に反映させる場合である。
この場合、ネットワークに接続されている各情報処理装置、または異常や問題がある情報処理装置について、ユーザに注意を喚起するために、点滅周期を通常の1.0秒より短い0.5秒とし、または表示色を通常の緑色ではなく赤色とする。
<他の呈示態様>
上述した呈示態様以外に、または上述した呈示態様に加えて、例えば、上記の例のシステムで、それぞれハードディスクレコーダである情報処理装置1および2については、図20または図21に示すような呈示態様とすると、好適である。
図20の例では、情報処理装置1のみがネットワーク9に接続されている場合には、「単独接続」として示すように、液晶表示部42−1に、2つのリング131および132を、交差させて点滅表示(または点灯表示)する。表示色としては、例えば、リング131および132は輝度の高い黄色とし、リング131および132の内側部分133および134、リング131および132の交差部分135、およびリング131および132の周辺部分136は、それぞれ黒色とする。
情報処理装置1と他の情報処理装置がネットワーク9に接続されているが、連携動作中ではない場合には、「連携可能状態」として示すように、内側部分133および134を青色とし、交差部分135をリング131および132と同じ黄色として、単独接続の場合より画面全体の輝度を高くする。
情報処理装置1と他の情報処理装置がネットワーク9に接続されていて、かつ連携動作中である場合には、「連携動作中」として示すように、内側部分133および134を緑色として、連携可能状態の場合より画面全体の輝度を高くする。
上記の例のシステムでは、ポータブルCDプレーヤである情報処理装置4は、ネットワーク9から切断される可能性が高いのに対して、ハードディスクレコーダである情報処理装置1および2は、一定の場所に据え置かれ、ネットワーク9から切断される可能性が低く、ユーザは、システムの状態を見るとき、ハードディスクレコーダである情報処理装置1または2に注目することが多い。
したがって、この例の呈示態様によれば、ユーザは、システムの各状態を、容易かつ確実に判断することができる。
図21の例では、情報処理装置1のみがネットワーク9に接続されている場合には、「単独接続」として示すように、液晶表示部42−1に、1つのリング141を点滅表示(または点灯表示)し、情報処理装置1と他の1台の情報処理装置がネットワーク9に接続されている場合には、「2台接続」として示すように、液晶表示部42−1に、2つのリング142および143を、交差させて点滅表示(または点灯表示)し、情報処理装置1と他の2台の情報処理装置がネットワーク9に接続されている場合には、「3台接続」として示すように、液晶表示部42−1に、3つのリング144,145および146を、順次交差させて点滅表示(または点灯表示)する。
この例によれば、ユーザは、システムの外観から、何台の情報処理装置がネットワークに接続されているかを、容易かつ確実に知ることができる。
(3−4.他の呈示方法および呈示態様)
図20および図21に「単独接続」として示したように、ある情報処理装置のみがネットワークに接続され、マスター装置に設定された場合にも、そのマスター装置が、自装置の装置情報から自装置に対する呈示用情報を生成し、上述したような点滅表示(または点灯表示)を行うように、システムを構成することができる。
また、上述した例のように、ある情報処理装置がネットワークに接続され、マスター装置に設定されている状態で、新たに別の情報処理装置がネットワークに接続された場合にも、各スレーブ装置が、上述した例のようにマスター装置に要求するのではなく、それぞれ、自装置の装置情報、または自装置および他装置の装着情報から、自装置に対する呈示用情報を生成し、上述したような点滅表示(または点灯表示)を行うように、システムを構成することもできる。
さらに、複数の情報処理装置がネットワークに接続されている状態で、そのうちの一部の情報処理装置がネットワークから切断された場合にも、上述した方法および態様と同様の方法および態様によって、ネットワークから切断されていない各情報処理装置(切断されていない情報処理装置が1台であるときは、その1台の情報処理装置)で、そのときのネットワークシステムの状況を呈示するように、システムを構成することもできる。
この場合には、ユーザは、システムの外観から、ある情報処理装置がネットワークから切断されたことによってネットワークシステムの状況が変化したことを、容易かつ確実に知ることができる。
さらに、上述した例は、情報処理装置の発光表示部を点滅または点灯させて、ネットワークシステムの状況を呈示する場合であるが、音声アナウンスによって、ネットワークシステムの状況を呈示するように、システムを構成してもよい。
この場合、具体的に、各情報処理装置には、スピーカなどの音声出力手段を設けるとともに、音声アナウンスのためのプログラムおよびテキストデータを用意し、上述した装置情報から、テキスト音声合成によって、音声アナウンスの音声データを生成し、これをアナログ音声信号に変換して、スピーカなどの音声出力手段に送出するように、各情報処理装置を構成すればよい。
具体的に、上述した例のように、ある情報処理装置がネットワークに接続され、マスター装置に設定されている状態で、新たに別の情報処理装置がネットワークに接続された場合には、各情報処理装置で、「機器が追加されました」「機器が4台に増加しました」「ハードディスクレコーダが追加されました」「4台の機器で連携動作中です」などの音声アナウンスによって、そのときのネットワークシステムの状況を呈示し、複数の情報処理装置がネットワークに接続されている状態で、そのうちの一部の情報処理装置がネットワークから切断された場合には、ネットワークから切断されていない各情報処理装置(切断されていない情報処理装置が1台であるときは、その1台の情報処理装置)で、「機器が切断されました」「機器が3台に減少しました」「CDプレーヤが切断されました」「マスターが切断され、別の機器がマスターになりました」などの音声アナウンスによって、そのときのネットワークシステムの状況を呈示する。
[4.ネットワークシステムおよび情報処理装置の基本的構成その2]
図22は、この発明のネットワークシステムの他の例を示し、ネットワーク1009を介して複数の情報処理装置1001,1002,1003および1004が接続されたものである。
(4−1.情報処理装置および情報処理コントローラ)
情報処理装置1001,1002,1003および1004は、それぞれ後述のような各種のAV(Audio and Visual)機器やポータブル機器である。
情報処理装置1001について示すと、情報処理装置1001は、コンピュータ機能部として情報処理コントローラ1011を備える。情報処理コントローラ1011は、メインプロセッサ1021−1、サブプロセッサ1023−1,1023−2および1023−3、DMAC(ダイレクトメモリアクセスコントローラ)1025−1、コントロールレジスタ1028−1、ワークメモリ1029−1、およびDC(ディスクコントローラ)1030−1を有する。
メインプロセッサ1021−1は、サブプロセッサ1023−1,1023−2および1023−3によるサブプロセッサプログラムの実行(データ処理)のスケジュール管理と、情報処理コントローラ1011(情報処理装置1001)の全般的な管理とを行う。ただし、メインプロセッサ1021−1内で管理のためのプログラム以外のプログラムが動作するように構成することもできる。その場合には、メインプロセッサ1021−1はサブプロセッサとしても機能することになる。メインプロセッサ1021−1は、LS(ローカルストレージ)1022−1を有する。
サブプロセッサは、1つでもよいが、望ましくは複数とする。この例は、複数の場合である。
各サブプロセッサ1023−1,1023−2および1023−3は、メインプロセッサ1021−1の制御によって並列的かつ独立に、サブプロセッサプログラムを実行し、データを処理する。さらに、場合によってメインプロセッサ1021−1内のプログラムがサブプロセッサ1023−1,1023−2または1023−3内のサブプロセッサプログラムと連携して動作するように構成することもできる。後述する機能プログラムも、メインプロセッサ1021−1内で動作するプログラムである。各サブプロセッサ1023−1,1023−2および1023−3も、LS(ローカルストレージ)1024−1,1024−2および1024−3を有する。
DMAC1025−1は、それぞれ情報処理コントローラ1011に接続された、DRAM(ダイナミックRAM)などからなるメインメモリ1026−1およびSRAM(スタティックRAM)などからなるサブメモリ1027−1に格納されているプログラムおよびデータにアクセスするためのものである。DMAC1025−1を介すことにより、各サブプロセッサとメインメモリ1026−1との間ではDMA方式によりデータ転送を行うことができ、高速化を実現することができる。
コントロールレジスタ1028−1は、情報処理コントローラ1011内で処理されるべきサブプロセッサプログラムを、どのサブプロセッサが、さらにはサブプロセッサ内に複数個存在する後述のプレセッシングスレッドのいずれが、処理するかを決定するとともに、サブプロセッサによるサブプロセッサプログラム実行の進捗を管理するために使用される。
ワークメモリ1029−1は、情報処理コントローラ1011内に含まれるSRAMなどからなる作業用メモリであり、メインプロセッサ1021−1、およびサブプロセッサ1023−1,1023−2および1023−3によってアクセスされる。
DC1030−1は、情報処理コントローラ1011に接続された外部記録部1031−1および1031−2にアクセスするものである。
外部記録部1031−1および1031−2は、固定ディスク(ハードディスク)でも、リムーバブルディスクでもよく、また、MO,CD±RW,DVD±RWなどの光ディスク、メモリディスク、SRAM(スタティックRAM)、ROMなど、各種のものを用いることができる。したがって、DC1030−1は、ディスクコントローラと称するが、外部記録部コントローラである。
図22の例のように、情報処理コントローラ1011に対して外部記録部1031を複数接続できるように、情報処理コントローラ1011を構成することができる。
メインプロセッサ1021−1、各サブプロセッサ1023−1,1023−2および1023−3、DMAC1025−1、コントロールレジスタ1028−1、ワークメモリ1029−1、およびDC1030−1は、バス1032−1によって接続される。
情報処理コントローラ1011には、当該の情報処理コントローラ1011を備える情報処理装置1001をネットワーク全体を通して一意的に識別できる識別子が、情報処理装置IDとして割り当てられる。
メインプロセッサ1021−1、および各サブプロセッサ1023−1,1023−2および1023−3に対しても同様に、それぞれを特定できる識別子が、メインプロセッサIDおよびサブプロセッサIDとして割り当てられる。
情報処理コントローラ1011は、ワンチップIC(集積回路)として構成することが望ましい。
他の情報処理装置1002,1003および1004も、同様に構成される。ここで、親番号が同一であるユニットは、枝番号が異なっていても、特に断りがない限り、同じ働きをするものとする。また、以下の説明において枝番号が省略されている場合には、枝番号の違いにいる差異を生じないものとする。
(4−2.各サブプロセッサからメインメモリへのアクセス)
上述したように、1つの情報処理コントローラ内の各サブプロセッサ1023は、独立にサブプロセッサプログラムを実行し、データを処理するが、異なるサブプロセッサがメインメモリ1026内の同一領域に対して同時に読み出しまたは書き込みを行った場合には、データの不整合を生じ得る。そこで、サブプロセッサ1023からメインメモリ1026へのアクセスは、以下のような手順によって行う。
サブメモリ1027およびワークメモリ1029についても同様に、異なるサブプロセッサが同一領域に対して同時にアクセスすることが考えられるが、ここでは、メインメモリ1026について示す。
図23(A)に示すように、メインメモリ1026は、アドレス指定可能な複数のメモリロケーション0〜Nによって構成される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメント0〜Nが割り振られる。追加セグメントは、F/Eビット、サブプロセッサIDおよびLSアドレス(ローカルストレージアドレス)を含むものとされる。また、各メモリロケーションには、後述のアクセスキー0〜Nも割り振られる。F/Eビットは、以下のように定義される。
F/Eビット=0は、サブプロセッサ1023によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、読み出し不可であることを示す。また、F/Eビット=0は、当該メモリロケーションにデータ書き込み可能であることを示し、書き込み後に1に設定される。
F/Eビット=1は、当該メモリロケーションのデータがサブプロセッサ1023によって読み出されておらず、未処理の最新データであることを示す。当該メモリロケーションのデータは読み出し可能であり、サブプロセッサ1023によって読み出された後に0に設定される。また、F/Eビット=1は、当該メモリロケーションがデータ書き込み不可であることを示す。
さらに、上記F/Eビット=0(読み出し不可/書き込み可)の状態において、当該メモリロケーションについて読み出し予約を設定することは可能である。F/Eビット=0のメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ1023は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報として当該サブプロセッサ1023のサブプロセッサIDおよびLSアドレスを書き込む。
その後、データ書き込み側のサブプロセッサ1023によって、読み出し予約されたメモリロケーションにデータが書き込まれ、F/Eビット=1(読み出し可/書き込み不可)に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれたサブプロセッサIDおよびLSアドレスに読み出される。
複数のサブプロセッサによってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出し/書き込みを制御することによって、前段階の処理を行うサブプロセッサ1023が、処理済みのデータをメインメモリ1026内の所定アドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ1023が前処理後のデータを読み出すことが可能となる。
図23(B)に示すように、各サブプロセッサ1023内のLS1024も、アドレス指定可能な複数のメモリロケーション0〜Lによって構成される。各メモリロケーションに対しては、同様に追加セグメント0〜Lが割り振られる。追加セグメントは、ビジービットを含むものとされる。
サブプロセッサ1023がメインメモリ1026内のデータを自身のLS1024のメモリロケーションに読み出すときには、読み出し先のメモリロケーションに対応するビジービットを1に設定して予約する。ビジービットが1であるメモリロケーションには、他のデータは格納することができない。LS1024のメモリロケーションに読み出し後、ビジービットは0になり、任意の目的に使用できるようになる。
図23(A)に示すように、さらに、各情報処理コントローラと接続されたメインメモリ1026には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ1026内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ1023に割り当てられ、そのサブプロセッサが排他的に使用することができる。すなわち、各々のサブプロセッサ1023は、自身に割り当てられたサンドボックスを使用できるが、この領域を超えてデータのアクセスを行うことはできない。
メインメモリ1026は、複数のメモリロケーション0〜Nから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。すなわち、1つのサンドボックスは、1つまたは複数のメモリロケーションから構成される。
さらに、メインメモリ1026の排他的な制御を実現するために、図23(C)に示すようなキー管理テーブルが用いられる。キー管理テーブルは、情報処理コントローラ内のSRAMのような比較的高速のメモリに格納され、DMAC1025と関連付けられる。ただし、キー管理テーブルは、ワークメモリ1029に格納されてもよい。
キー管理テーブル内には、情報処理コントローラ内のサブプロセッサの数と同数のエントリが存在し、各エントリには、サブプロセッサIDおよび、それに対応するサブプロセッサキーおよびキーマスクが関連付けられて格納される。
サブプロセッサ1023がメインメモリ1026を使用する際のプロセスは、以下のとおりである。まず、サブプロセッサ1023はDMAC1025に、読み出しまたは書き込みのコマンドを送信する。このコマンドには、自身のサブプロセッサIDと、アクセス要求先であるメインメモリ1026内のアドレスが含まれる。
DMAC1025は、このコマンドを実行する前に、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ1023のサブプロセッサキーを調べる。次に、DMAC1025は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ1026内の図23(A)に示したメモリロケーションに割り振られたアクセスキーとを比較して、2つのキーが一致した場合にのみ、上記のコマンドを実行する。
図23(C)に示したキー管理テーブル上のキーマスクは、その任意のビットが1になることによって、そのキーマスクに関連付けられたサブプロセッサキーの対応するビットが0または1になることができる。
例えば、サブプロセッサキーが1010であるとする。通常、このサブプロセッサキーによって1010のアクセスキーを持つサンドボックスへのアクセスだけが可能である。しかし、このサブプロセッサキーと関連付けられたキーマスクが0001に設定されている場合には、キーマスクのビットが1に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ、このサブプロセッサキー1010によって、アクセスキーが1010または1011のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
以上のようにして、メインメモリ1026のサンドボックスの排他性が実現される。すなわち、1つの情報処理コントローラ内の複数のサブプロセッサによってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサと、後段階の処理を行うサブプロセッサのみが、メインメモリ1026内の所定アドレスにアクセスできるようになり、データを保護することができる。
例えば、以下のように使用することが考えられる。まず、情報処理装置の起動直後においては、キーマスクの値は全てゼロである。メインプロセッサ内のプログラムが実行され、サブプロセッサ内のサブプロセッサプログラムと連携動作するものとする。第1のサブプロセッサにより実行された処理結果データを一旦、メインメモリ1026に格納し、第2のサブプロセッサに送信したいときには、該当するメインメモリ領域は、当然どちらのサブプロセッサからもアクセス可能である必要がある。そのような場合に、メインプロセッサ内のプログラムは、キーマスクの値を適切に変更し、複数のサブプロセッサからアクセスできるメインメモリ領域を設けることにより、サブプロセッサによる多段階的の処理を可能にする。
より具体的には、他の情報処理装置からのデータ→第1のサブプロセッサによる処理→第1のメインメモリ領域→第2のサブプロセッサによる処理→第2のメインメモリ領域、という手順で多段階処理が行われるときには、
第1のサブプロセッサのサブプロセッサキー:0100、
第1のメインメモリ領域のアクセスキー :0100、
第2のサブプロセッサのサブプロセッサキー:0101、
第2のメインメモリ領域のアクセスキー :0101、
のような設定のままだと、第2のサブプロセッサは第1のメインメモリ領域にアクセスすることができない。そこで、第2のサブプロセッサのキーマスクを0001にすることにより、第2のサブプロセッサによる第1のメインメモリ領域へのアクセスを可能にすることができる。
(4−3.各サブプロセッサからメインメモリおよびサブメモリへのアクセス)
1つの情報処理コントローラ内の各サブプロセッサ1023は、メインメモリ1026に対してと同様に、サブメモリ1027に対しても、読み出しまたは書き込みが可能であるが、そのコマンドには、いくつかの種類が考えられ、優先度の高低があることもあり得る。そこで以下に、各サブプロセッサ1023が正確にメインメモリ1026およびサブメモリ1027を使用するための構成および手順を示す。
図24に示すように、DMAC1025は内部に、メインメモリコントロールレジスタ1033およびサブメモリコントロールレジスタ1034を有する。メインメモリコントロールレジスタ1033は、メインメモリ1026にアクセスするためのものであり、サブメモリコントロールレジスタ1034は、サブメモリ1027にアクセスするためのものである。
メインメモリコントロールレジスタ1033は、以下の4つのブロックから構成され、以下のように各々がメインメモリ1026にアクセスするためのコマンドを格納する。
優先コマンドブロックには、優先度の高いコマンドを複数個格納する。そのコマンドは優先的に処理される。
通常コマンドブロック1には、通常のコマンドを複数個格納し、通常コマンドブロック2にも、通常のコマンドを複数個格納する。通常コマンドブロック1と通常コマンドブロック2との間には、機能的な差はないが、例えば、メインメモリ1026へのアクセス実行前のコマンドを一方のブロックに格納し、実行後のコマンドを他方のブロックに格納することにより、実行前と実行後のコマンドを、それぞれ集中的および連続的に処理することができる効果がある。
オーダーコマンドブロックには、正しい順番で処理される必要のあるコマンドを複数個格納する。すなわち、各サブプロセッサ1023からのコマンドを、受信した順番に、コマンド送信元のサブプロセッサのサブプロセッサIDと共に格納する。これにより、受信した順番にコマンドを処理し、かつ同じ順番でコマンド送信元サブプロセッサに実行結果を返信することができる。
サブメモリコントロールレジスタ1034も、以下の4つのブロックから構成され、以下のように各々がサブメモリ1027にアクセスするためのコマンドを格納する。
優先コマンドブロックには、優先度の高いコマンドを複数個格納する。そのコマンドは優先的に処理される。
リードコマンドブロックには、リードコマンドを複数個格納し、ライトコマンドブロックには、ライトコマンドを複数個格納する。
待ちコマンドブロックには、サブメモリ1027内の任意の領域に対してアクセスを試みたが、対象領域がロックされていてアクセス不可であったコマンドを複数個格納する。ロック解除時には、そのコマンドは優先コマンドブロックに移動する。
各サブプロセッサ1023は、例えば、図25に示すような構造のコマンドによって、メインメモリ1026またはサブメモリ1027にアクセスする。アクセス実行後のメインメモリ1026またはサブメモリ1027からの実行結果のレスポンスも、同一構造とされる。
このコマンド/レスポンス構造において、コマンドタイプとしては、リードとライトがある。優先コマンド識別子は、当該コマンドが優先度の高いコマンドであることを示す。通常コマンド識別子は、メインメモリ1026へのアクセス時のものであり、当該コマンドが通常コマンドブロック1または通常コマンドブロック2に格納されることを示す。
チェーンコマンド識別子も、メインメモリ1026へのアクセス時のものであり、当該コマンドが直前または直後のコマンドと共に連続的なアクセスが必要であることを示す。または、連続するコマンド列の通し番号でもよい。チェーンコマンド識別子がセットされたコマンドは、オーダーコマンドブロックに格納されるが、処理の優先度は、優先コマンドブロック内のコマンドより高いものとする。
ここでのアドレスは、コマンドを実行するメインメモリ1026またはサブメモリ1027内のアドレスを示す。または、ワークメモリ1029内のアドレスでもよい。
サブプロセッサ識別子は、コマンド送信元のサブプロセッサのサブプロセッサIDである。プレセッシングスレッド識別子は、コマンド送信元の後述するプレセッシングスレッドの識別子である。
OK/NGは、コマンドの成功/失敗を示す。ここでのデータは、リードコマンド実行時にレスポンスに含まれる読み出されたデータ、またはライトコマンド実行時にコマンドに含まれる書き込まれるデータである。
図24に示すように、DMAC1025内には、上述した各サブプロセッサ1023がメインメモリ1026に正確にアクセスするためのメインメモリコントロールレジスタ1033、および各サブプロセッサ1023がサブメモリ1027に正確にアクセスするためのサブメモリコントロールレジスタ1034のほかに、メインプロセッサ1021がメインメモリ1026またはサブメモリ1027にアクセスするためのリードコマンドおよびライトコマンドをそれぞれ複数個格納できるメインプロセッサ用リードコマンドブロック1035およびメインプロセッサ用ライトコマンドブロック1036を設けることもできる。アドレス変換レジスタ1037については、後述する。
さらに、複数のサブプロセッサがDMAC1025に対して、優先度の同じメモリアクセスコマンドを同じタイミングで送信した場合には、以下の手順に従うものとする。すなわち、DMAC1025は、内部にメモリアクセスに成功した最後のサブプロセッサを示すポインタを有するものとし、複数のサブプロセッサから優先度の同じメモリアクセスコマンドを同じタイミングで受信したときには、当該ポインタより値が大きく、かつ当該ポインタとの差分が最も小さいコマンドを優先させるものとする。この場合、一番大きいポインタ値の次は、一番小さいポインタ値とする。
(4−4.各サブプロセッサからメインメモリに正確にアクセスするためのサブメモリへのアクセス)
DRAMなどにより構成されるメインメモリ1026、およびSRAMなどにより構成されるサブメモリ1027は、当然のことながら、各々の素子の構造が異なるため、使用目的も異なってくる。
そこで、メインメモリ1026とサブメモリ1027を組み合わせて使用する方法の一例として、各サブプロセッサ1023がメインメモリ1026にアクセスするときのアドレス変換をサブメモリ1027が担うことが考えられる。そのための構成および手順を、図26を用いて示す。
前述したように、メインメモリ1026は、複数のメモリロケーションによって構成され、さらに1つのサンドボックスは、1つまたは複数のメモリロケーションから構成される。そして、各サブプロセッサ1023は、自身に割り当てられたサンドボックスを排他的に使用することができる。
例えば、図26(A)に示すように、あるサブプロセッサ1023に、メインメモリ1026内のサンドボックス1,2,3が割り当てられているものとする。サンドボックス1は0x800〜0x8FF、サンドボックス2は0x200〜0x2FF、サンドボックス3は0xF00〜0xFFFとし、各サンドボックスは先頭アドレスによって識別されるものとする。すなわち、割り当てられる各サンドボックスは、アドレスが連続していなくてもよい。
当該のサブプロセッサ1023は、これらサンドボックス1,2,3からデータを読み出すときには、まず、DMAC1025内のアドレス変換レジスタ1037にアクセスする。
アドレス変換レジスタ1037は、サブプロセッサ1023と、当該サブプロセッサ1023に割り当てられたサンドボックスとを関連付けるレジスタであり、サブプロセッサ1023の数と同数のエントリから構成される。ここでは、Q1で示されるエントリが当該サブプロセッサ1023に対応するものとする。
このとき、サブプロセッサ1023は、自身に対応するQ1の値を読み出す。さらに、読み出されたQ1の値(0x80)で示される、サブメモリ1027内の第1のアドレスから、データ(0x20)を読み出す。
サンドボックス1の領域は、Q1の値に基づいて特定される。例えば、Q1の値を16倍した値がサンドボックス1の先頭アドレスを示し、その先頭アドレスに255を加算した値がサンドボックス1の終了アドレスを示す。したがって、上記のようにQ1の値が0x80であるときには、サンドボックス1の領域は0x800〜0x8FFである。
また、サブプロセッサ1023は、上記の第1のアドレスから読み出されたデータ(0x20)で示される、同じサブメモリ1027内の第2のアドレスから、データ(0xF0)を読み出す。
サンドボックス2の領域は、この第2のアドレスから読み出されたデータに基づいて特定される。具体的に、サンドボックス1と同様に、第2のアドレスから読み出されたデータの値を16倍した値がサンドボックス2の先頭アドレスを示し、その先頭アドレスに255を加算した値がサンドボックス2の終了アドレスを示す。したがって、上記のように第2のアドレスから読み出されたデータが0xF0であるときには、サンドボックス2の領域は0x200〜0x2FFである。
さらに、サブプロセッサ1023は、上記の第2のアドレスから読み出されたデータ(0xF0)で示される、同じサブメモリ1027内の第3のアドレスから、データ(0x00)を読み出す。0x00は、割り当てられたサンドボックスの終了を示す。
サンドボックス3の領域は、この第3のアドレスから読み出されたデータに基づいて特定される。具体的に、サンドボックス1,2と同様に、第3のアドレスから読み出されたデータの値を16倍した値がサンドボックス3の先頭アドレスを示し、その先頭アドレスに255を加算した値がサンドボックス3の終了アドレスを示す。したがって、上記のように第3のアドレスから読み出されたデータが0x00であるときには、サンドボックス3の領域は0xF00〜0xFFFである。
以上のように、各サブプロセッサ1023は、自身に割り当てられたサンドボックスのアドレスが非連続であっても、割り当てられたサンドボックスに正確にアクセスすることができ、割り当てられたサンドボックスからデータを確実に読み出すことができる。
次に、同じサブプロセッサ1023が、メインメモリ1026内の新たなサンドボックスにデータを書き込み、当該サンドボックスをアドレス変換レジスタ1037内の自身に対応したエントリで管理されるサンドボックスグループに追加するための手順を、図26(B)を用いて示す。
当該サブプロセッサ1023が、メインメモリ1026内の0x000〜0x0FFの領域であるサンドボックス4にデータを書き込んだとする。このとき、当該サブプロセッサ1023は、まず、Q1の値(Q1の初期値、例えば上記のように0x80)を読み出す。
次に、当該サブプロセッサ1023は、新たにデータを書き込んだサンドボックス4を特定できるサブメモリ1027内のアドレスに、先に読み出したQ1の値(0x80)を書き込む。例えば、今回は0x000〜0x0FFの領域にデータを書き込んだので、先頭アドレスである0x000を16で割った0x00で示されるサブメモリ1027内のアドレスにQ1の値(0x80)を書き込む。さらに、Q1の値(0x80)を書き込んだサブメモリ1027内のアドレス(0x00)を新たなQ1の値として、アドレス変換レジスタ1037内のQ1に書き込む。
以上のようにして、各サブプロセッサ1023は、新たなサンドボックスを既存のサンドボックスグループに追加することができる。この場合も、各サンドボックスのアドレスが非連続であってもよい。また、既存のサンドボックスグループが存在せず、最初のサンドボックスをサブメモリ1027およびアドレス変換レジスタ1037と関連付ける際にも、上記の方法を用いることができる。
(4−5.メインプロセッサおよび各サブプロセッサからワークメモリへのアクセス)
前述したように、メインメモリ1026は、DRAMなどにより構成され、さらにDMA方式によりデータが転送されるため、各サブプロセッサ1023は、大容量のメインメモリ1026を高速に使用することができる。また、サブメモリ1027は、SRAMなどにより構成され、同様に高速に使用することができる。
さらに、メインプロセッサ1021および各サブプロセッサ1023が、情報処理コントローラに接続されたメインメモリ1026およびサブメモリ1027と共に、情報処理コントローラ内に含まれるワークメモリ1029を作業用メモリとして共有して使用できれば、さらなる高速化を実現することができる。
また、当該ワークメモリ1029により簡単な数値演算ができれば、効率的である。ワークメモリ1029は、前述したようにSRAMなどにより構成されるため、DRAMのような大容量化は期待できないものの、非常に高速である。
以下に、メインプロセッサ1021および各サブプロセッサ1023がワークメモリ1029にアクセスする場合の構成および手順を示す。
図27に示すように、ワークメモリ1029は、コントローラ1038とRAM1039とから構成される。RAM1039としては、SRAMを用いることができるが、それに限定されるものではない。RAM1039は、複数のブロックから構成される。各ブロックには、アドレスが割り当てられ、データが記憶される。
メインプロセッサ1021および各サブプロセッサ1023は、コントローラ1038を介してRAM1039にアクセスする。具体的に、メインプロセッサ1021および各サブプロセッサ1023は、コントローラ1038にコマンド、アドレスまたはデータなどを送信し、コントローラ1038は、それに従ってRAM1039にアクセスする。
処理実行後、コントローラ1038は、コマンド送信元のメインプロセッサ1021またはサブプロセッサ1023にコマンド実行結果を返信する。
各サブプロセッサ1023がワークメモリ1029にアクセスするときのコマンドは、例えば図25に示したような、メインメモリ1026またはサブメモリ1027へのアクセス時に用いるものと同じである。処理実行後のワークメモリ1029からの実行結果のレスポンスも、同一構造である。
ただし、ワークメモリ1029にアクセスする場合には、図25に示したコマンド中の優先コマンド識別子、通常コマンド識別子、チェーンコマンド識別子、プレセッシングスレッド識別子は、基本的に使用しない。しかし、ワークメモリ1029が、これらの識別子に対応可能であれば、使用してもよい。コマンドタイプしては、以下に示すような、いくつかが考えられる。
第1は、リードコマンドである。これは、ワークメモリ1029内のデータを読み出すために使用される。メインプロセッサ1021および各サブプロセッサ1023は、リードコマンドと共に、所望のデータを記憶するRAM1039内のブロックのアドレスも送信する。コントローラ1038からは、実行結果として、リードコマンドの成功/失敗を示すOK/NGと、読み出されたデータが返信される。
第2は、ライトコマンドである。これは、ワークメモリ1029内にデータを書き込むために使用される。メインプロセッサ1021および各サブプロセッサ1023は、ライトコマンド、データ、当該データを記憶させるRAM1039内のブロックのアドレスを送信する。コントローラ1038からは、実行結果として、ライトコマンドの成功/失敗を示すOK/NGが返信される。
第3は、加算コマンドである。これは、ワークメモリ1029内のデータを加算するために使用される。メインプロセッサ1021および各サブプロセッサ1023は、加算コマンド、加算させるデータを記憶するRAM1039内のブロックのアドレスを送信する。コントローラ1038は、受信したアドレスのブロックにおけるデータに1を加算し、上書きする。実行結果として、加算コマンドの成功/失敗を示すOK/NGが返信される。
第4は、セットコマンドである。これは、ワークメモリ1029内のデータをビット単位で操作するために使用される。メインプロセッサ1021および各サブプロセッサ1023は、セットコマンド、操作するデータを記憶するRAM1039内のブロックのアドレス、およびマスクデータを送信する。
これに対して、コントローラ1038は、受信したマスクデータと、受信したアドレスのブロックにおけるデータとを比較し、マスクデータにおいて値が1であるビットと同じ位置の、データにおけるビットの値を1にする。実行結果として、セットコマンドの完了を示すCompletedが返信される。このとき、セットコマンド実行前のデータも返信することにより、コマンドの成功/失敗を確認できるようにしてもよい。
第5は、クリアコマンドである。これも、ワークメモリ1029内のデータをビット単位で操作するために使用される。メインプロセッサ1021および各サブプロセッサ1023は、クリアコマンド、操作するデータを記憶するRAM1039内のブロックのアドレス、およびマスクデータを送信する。
これに対して、コントローラ1038は、受信したマスクデータと、受信したアドレスのブロックにおけるデータとを比較し、マスクデータにおいて値が1であるビットと同じ位置の、データにおけるビットの値を0にする。実行結果として、クリアコマンドの完了を示すCompletedが返信される。このとき、クリアコマンド実行前のデータも返信することにより、コマンドの成功/失敗を確認できるようにしてもよい。
以上のように、メインプロセッサ1021および各サブプロセッサ1023は、大容量のメインメモリ1026および高速のサブメモリ1027に加えて、ワークメモリ1029を併用することができる。さらに、ワークメモリ1029をメインメモリ1026またはサブメモリ1027のキャッシュとして利用すれば、さらなる高速化を期待することができる。
(4−6.各サブプロセッサ内のプレセッシングスレッド)
前述したように、1つの情報処理コントローラ内の各サブプロセッサ1023は構造上独立している。したがって、各々のサブプロセッサ1023が独立にサブプロセッサプログラムを実行し、データを処理することができる。さらに、各サブプロセッサ1023が内部に、仮想的に独立した複数のプレセッシングスレッドを有することも考えられる。その構造を図28に示す。
サブプロセッサ1023は、内部に有するアービタ1040を介して、バス1032と接続される。サブプロセッサ1023内には、また、LS(ローカルストレージ)1024とプレセッシングスレッド1041,1042,1043および1044が含まれ、アービタ1040は、外部からの信号を適切なプレセッシングスレッドに通知する役割を担う。
図28では各プレセッシングスレッド1041,1042,1043および1044を独立に示しているが、あくまで仮想的な独立である。プレセッシングスレッド1041,1042,1043および1044は、それぞれプレセッシングスレッド識別子が割り当てられ、独立かつ並列に動作可能である。
各プレセッシングスレッド1041,1042,1043および1044は、メインメモリ1026、サブメモリ1027またはワークメモリ1029に対して独立にアクセスを行うため、コマンド送信元のプレセッシングスレッドに確実にレスポンスが返信されるようにする必要がある。そのための手順を以下に示す。
各プレセッシングスレッド1041,1042,1043および1044が各々のメモリにアクセスするときのコマンドは、例えば図25に示したような、各サブプロセッサ1023がメモリにアクセスする時に用いるものと同じである。処理実行後の各メモリからの実行結果のレスポンスも、同一構造である。
図25のコマンド/レスポンス構造については前述したが、サブプロセッサ識別子はコマンド送信元のサブプロセッサのサブプロセッサIDであり、さらにプレセッシングスレッド識別子は、当該サブプロセッサ内のいずれのプレセッシングスレッドがコマンド送信元であるかを識別するためのものである。
メインメモリ1026、サブメモリ1027またはワークメモリ1029からのレスポンスは、まず、サブプロセッサ識別子に基づいて、コマンド送信元のサブプロセッサ1023に返信される。さらに、プレセッシングスレッド識別子に基づいて、サブプロセッサ1023内のアービタ1040により、コマンド送信元のプレセッシングスレッドに返信される。
ただし、同じ処理を行うようなときなど、サブプロセッサ内の複数のプレセッシングスレッド中のいずれでもよい場合には、プレセッシングスレッド識別子に基づかずに、処理負荷の軽いプレセッシングスレッドに返信するようにしてもよい。また、メインメモリ1026、サブメモリ1027またはワークメモリ1029からレスポンスを受信するたびに、複数のプレセッシングスレッド中の1つを順繰りに選択し、その選択されたプレセッシングスレッドに当該レスポンスを返信するようにしてもよい。
以上のように、各サブプロセッサ1023内の複数のプレセッシングスレッドが、メインメモリ1026、サブメモリ1027またはワークメモリ1029に対して独立にアクセスを行う場合でも、コマンド送信元のプレセッシングスレッドに確実にレスポンスが返信されるようにすることができる。
(4−7.コントロールレジスタによるサブプロセッサプログラムの管理)
1つの情報処理コントローラ内に複数のサブプロセッサ1023が存在し、さらに各サブプロセッサ1023内に複数のプレセッシングスレッドを有する場合に、情報処理コントローラ内で処理されるべきサブプロセッサプログラムを、どのプレセッシングスレッドに処理させるかを決定することは、情報処理コントローラの高速化を実現する上で重要である。
そこで以下に、図22に示したコントロールレジスタ1028を使用することにより、各プレセッシングスレッドに対して適切にサブプロセッサプログラムの処理を割り当て、情報処理コントローラを効率的に動作させる構成および手順を示す。
図29に示すように、コントロールレジスタ1028は、処理待ちサブプロセッサプログラムレジスタ1045とサブプロセッサプログラム処理進捗レジスタ1046とから構成される。
処理待ちサブプロセッサプログラムレジスタ1045について示すと、メインプロセッサ1021は、情報処理コントローラ内で処理されるべきサブプロセッサプログラムが発生した場合には、処理待ちサブプロセッサプログラムレジスタ1045内に、当該サブプロセッサプログラムまたはこれに関連するデータが格納されているメインメモリ1026、サブメモリ1027、ワークメモリ1029、またはLS(ローカルストレージ)1022または1024におけるアドレスを書き込む。
処理されるべきサブプロセッサプログラムが存在しない状態では、処理待ちサブプロセッサプログラムレジスタ1045の値はゼロである。全てのプレセッシングスレッドは、自身が何もサブプロセッサプログラムを実行していない間は、定期的または非定期的に処理待ちサブプロセッサプログラムレジスタ1045の値を読み出し、その結果、ゼロでない値を読み出したプレセッシングスレッドが処理を行うものとする。
これとともに、当該プレセッシングスレッドは、処理待ちサブプロセッサプログラムレジスタ1045にゼロの値を書き込む。処理を行うプレセッシングスレッドは、読み出した処理待ちサブプロセッサプログラムレジスタ1045の値に基づいて、処理対象となるサブプロセッサプログラムまたは関連データを読み出し、処理する。このとき、サブプロセッサプログラムは既に当該プレセッシングスレッドを有するサブプロセッサ1023に読み出されており、サブプロセッサプログラムの読み出しは不要であることも考えられる。
このようにして、サブプロセッサプログラムを実行していない、処理能力に余裕のあるプレセッシングスレッドに迅速にサブプロセッサプログラムの処理を割り当てることができ、情報処理コントローラを効率的に動作させることができる。
サブプロセッサプログラム処理進捗レジスタ1046は、サブプロセッサプログラムの処理を割り当てられたプレセッシングスレッドが、処理進捗状況を書き込むための2ビット(x,y)のレジスタである。例えば、(0,0)は未処理を示し、(0,1)は処理中の段階1を示し、(1,0)は処理中の段階2を示し、(1,1)は処理完了を示す。さらに、この2ビットとともに、プロセッシングスレッド識別子を書き込むことにより、処理を割り当てられたプレセッシングスレッドを示すようにしてもよい。
または、図29にプレセッシングスレッド0,1,2,3として示すように、情報処理コントローラ内の各プロセッシングスレッドごとに、サブプロセッサプログラムの処理進捗状況を書き込むためのレジスタを設けてもよい。
サブプロセッサプログラム処理進捗レジスタ1046は、情報処理コントローラ内のメインプロセッサ1021、全てのサブプロセッサ1023および全てのプレセッシングスレッドがアクセス可能であり、これにより、サブプロセッサプログラムの処理進捗状況を的確に把握することができる。さらに、各プロセッシングスレッドごとに処理進捗レジスタを設ける場合には、複数のサブプロセッサプログラムが同時に実行される場合にも処理進捗状況の把握が可能となる。
以上が、各サブプロセッサ1023が内部に、仮想的に独立した複数のプレセッシングスレッドを有する場合のプレセッシングスレッド管理方法の例である。
なお、以下においては、サブプロセッサが何らかの処理を行う場合には、当該サブプロセッサ内部のいずれのプレセッシングスレッドが処理を行っても構わないものとし、プレセッシングスレッドの違いによる実行結果の差異は生じないものとする。したがって、サブプロセッサの処理内容につき、サブプロセッサ内部の複数のプレセッシングスレッドがどの様に処理を分担するかについては説明を省略する。
(4−8.ソフトウェアセルの生成および構成)
図22のネットワークシステムでは、情報処理装置1001,1002,1003および1004の間での分散処理のために、情報処理装置1001,1002,1003および1004の間でソフトウェアセルが伝送される。すなわち、ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ1021は、コマンド、プログラムおよびデータを含むソフトウェアセルを生成し、ネットワーク1009を介して他の情報処理装置に送信することによって、処理を分散することができる。
図3に、ソフトウェアセルの構成の一例を示す。この例のソフトウェアセルは、全体として、送信元ID、送信先ID、応答先ID、セルインターフェース、DMAコマンド、プログラム、およびデータによって構成される。
送信元IDには、ソフトウェアセルの送信元である情報処理装置のネットワークアドレスおよび情報処理装置ID、さらに、その情報処理装置内の情報処理コントローラが備えるメインプロセッサ1021および各サブプロセッサ1023の識別子(メインプロセッサIDおよびサブプロセッサID)が含まれる。
送信先IDおよび応答先IDには、それぞれ、ソフトウェアセルの送信先である情報処理装置、およびソフトウェアセルの実行結果の応答先である情報処理装置についての、同じ情報が含まれる。
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルID、必要なサブプロセッサの情報、サンドボックスサイズ、および前回のソフトウェアセルIDから構成される。
グローバルIDは、ネットワーク全体を通して当該のソフトウェアセルを一意的に識別できるものであり、送信元ID、およびソフトウェアセルの作成または送信の日時(日付および時刻)に基づいて作成される。
必要なサブプロセッサの情報は、当該ソフトウェアセルの実行に必要なサブプロセッサの数が設定される。サンドボックスサイズは、当該ソフトウェアセルの実行に必要なメインメモリ1026内およびサブプロセッサ1023のLS1024内のメモリ量が設定される。
前回のソフトウェアセルIDは、ストリーミングデータなどのシーケンシャルな実行を要求する1グループのソフトウェアセル内の、前回のソフトウェアセルの識別子である。
ソフトウェアセルの実行セクションは、DMAコマンド、プログラムおよびデータから構成される。DMAコマンドには、プログラムの起動に必要な一連のDMAコマンドが含まれ、プログラムには、サブプロセッサ1023によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
さらに、DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、およびステータス返信コマンドが含まれる。
ロードコマンドは、メインメモリ1026内の情報をサブプロセッサ1023内のLS1024にロードするコマンドであり、ロードコマンド自体のほかに、メインメモリアドレス、サブプロセッサIDおよびLSアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ1026内の所定領域のアドレスを示す。サブプロセッサIDおよびLSアドレスは、情報のロード先であるサブプロセッサ1023の識別子およびLS1024のアドレスを示す。
キックコマンドは、サブプロセッサプログラムの実行を開始するコマンドであり、キックコマンド自体のほかに、サブプロセッサIDおよびプログラムカウンタを含む。サブプロセッサIDは、キック対象のサブプロセッサ1023を識別し、プログラムカウンタは、サブプロセッサプログラム実行用プログラムカウンタのためのアドレスを与える。
機能プログラム実行コマンドは、後述のように、ある情報処理装置が他の情報処理装置に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した情報処理装置内の情報処理コントローラは、後述の機能プログラムIDによって、起動すべき機能プログラムを識別する。
ステータス要求コマンドは、送信先IDで示される情報処理装置の現在の動作状態(状況)に関する装置情報を、応答先IDで示される情報処理装置宛に送信することを要求するコマンドである。機能プログラムについては後述するが、図6に示す情報処理装置のメインメモリ1026が記憶するソフトウェアの構成図において機能プログラムにカテゴライズされるプログラムである。機能プログラムは、メインメモリ1026にロードされ、メインプロセッサ1021により実行される。
ステータス返信コマンドは、上記のステータス要求コマンドを受信した情報処理装置が、自身の装置情報を当該ステータス要求コマンドに含まれる応答先IDで示される情報処理装置に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
図4に、DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す。
情報処理装置IDは、情報処理コントローラを備える情報処理装置を識別するための識別子であり、ステータス返信コマンドを送信する情報処理装置のIDを示す。情報処理装置IDは、電源投入時、その情報処理装置内の情報処理コントローラに含まれるメインプロセッサ1021によって、電源投入時の日時、情報処理装置のネットワークアドレスおよび情報処理装置内の情報処理コントローラに含まれるサブプロセッサ1023の数などに基づいて生成される。
情報処理装置種別IDには、当該の情報処理装置の特徴を表す値が含まれる。情報処理装置の特徴とは、例えば、後述のハードディスクレコーダ、テレビ受信装置、ポータブルCD(Compact Disc)プレーヤなどである。また、情報処理装置種別IDは、映像音声記録、映像音声再生など、情報処理装置の機能を表すものであってもよい。情報処理装置の特徴や機能を表す値は予め決定されているものとし、情報処理装置種別IDを読み出すことにより、当該情報処理装置の特徴や機能を把握することが可能である。
MS(マスター/スレーブ)ステータスは、後述のように情報処理装置がマスター装置またはスレーブ装置のいずれで動作しているかを表すもので、これが0に設定されている場合にはマスター装置として動作していることを示し、1に設定されている場合にはスレーブ装置として動作していることを示す。
メインプロセッサ動作周波数は、情報処理コントローラ内のメインプロセッサ1021の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ1021で現在動作している全てのプログラムについての、メインプロセッサ1021での使用率を表す。メインプロセッサ使用率は、対象メインプロセッサの全処理能力に対する使用中の処理能力の比率を表した値で、例えばプロセッサ処理能力評価のための単位であるMIPSを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。後述のサブプロセッサ使用率についても同様である。
サブプロセッサ数は、当該の情報処理コントローラが備えるサブプロセッサ1023の数を表す。サブプロセッサIDは、当該の情報処理コントローラ内の各サブプロセッサ1023を識別するための識別子である。
サブプロセッサステータスは、各サブプロセッサ1023の状態を表すものであり、unused、reserved、busyなどの状態がある。unusedは、当該のサブプロセッサが現在使用されてなく、使用の予約もされていないことを示す。reservedは、現在は使用されていないが、予約されている状態を示す。busyは、現在使用中であることを示す。
サブプロセッサ使用率は、当該のサブプロセッサで現在実行している、または当該のサブプロセッサに実行が予約されているサブプロセッサプログラムについての、当該サブプロセッサでの使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスがbusyである場合には、現在の使用率を示し、サブプロセッサステータスがreservedである場合には、後に使用される予定の推定使用率を示す。
サブプロセッサID、サブプロセッサステータスおよびサブプロセッサ使用率は、1つのサブプロセッサ1023に対して一組設定され、1つの情報処理コントローラ内のサブプロセッサ1023の数の組数だけ設定される。
メインメモリ総容量およびメインメモリ使用量は、それぞれ、当該の情報処理コントローラに接続されているメインメモリ1026の総容量および現在使用中の容量を表す。
外部記録部数は、当該の情報処理コントローラに接続されている外部記録部1031の数を表す。外部記録部IDは、当該の情報処理コントローラに接続されている外部記録部1031を一意的に識別する情報である。外部記録部種別IDは、当該の外部記録部の種類(例えば、ハードディスク、CD±RW、DVD±RW、メモリディスク、SRAM、ROMなど)を表す。
外部記録部総容量および外部記録部使用量は、それぞれ、外部記録部IDによって識別される外部記録部1031の総容量および現在使用中の容量を表す。
外部記録部ID、外部記録部種別ID、外部記録部総容量および外部記録部使用量は、1つの外部記録部1031に対して一組設定され、当該の情報処理コントローラに接続されている外部記録部1031の数の組数だけ設定される。すなわち、1つの情報処理コントローラに複数の外部記録部が接続されている場合、各々の外部記録部には異なる外部記録部IDが割り当てられ、外部記録部種別ID、外部記録部総容量および外部記録部使用量も別々に管理される。
(4−9.ソフトウェアセルの実行)
ある情報処理装置内の情報処理コントローラに含まれるメインプロセッサ1021は、以上のような構成のソフトウェアセルを生成し、ネットワーク1009を介して他の情報処理装置および当該装置内の情報処理コントローラに送信する。送信元の情報処理装置、送信先の情報処理装置、応答先の情報処理装置、および各装置内の情報処理コントローラは、それぞれ、上記の送信元ID、送信先IDおよび応答先IDによって識別される。
ソフトウェアセルを受信した情報処理装置内の情報処理コントローラに含まれるメインプロセッサ1021は、そのソフトウェアセルをメインメモリ1026に格納する。さらに、送信先のメインプロセッサ1021は、ソフトウェアセルを読み出し、それに含まれるDMAコマンドを処理する。
具体的に、送信先のメインプロセッサ1021は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサIDおよびLSアドレスで特定されるサブプロセッサ内のLS1024の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
次に、メインプロセッサ1021は、キックコマンドを、これに含まれるサブプロセッサIDで指示されたサブプロセッサに、同様にキックコマンドに含まれるプログラムカウンタと共に送信する。
指示されたサブプロセッサは、そのキックコマンドおよびプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ1026に格納した後、実行を完了したことをメインプロセッサ1021に通知する。
なお、送信先の情報処理装置内の情報処理コントローラにおいてソフトウェアセルを実行するプロセッサはサブプロセッサ1023に限定されるものではなく、メインプロセッサ1021がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
この場合には、送信元の情報処理装置は、送信先の情報処理装置宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラムおよびそのメインメモリ用プログラムによって処理されるデータを含み、DMAコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ1026にメインメモリ用プログラムおよびそれによって処理されるデータを記憶させる。
次に、送信元の情報処理装置は、送信先の情報処理装置宛に、送信先の情報処理装置内の情報処理コントローラについてのメインプロセッサID、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムIDなどの識別子、およびプログラムカウンタを含み、DMAコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ1021に当該メインメモリ用プログラムを実行させる。
以上のように、この発明のネットワークシステムでは、送信元の情報処理装置は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先の情報処理装置に送信するとともに、当該サブプロセッサプログラムを送信先の情報処理装置内の情報処理コントローラに含まれるサブプロセッサ1023にロードさせ、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置に実行させることができる。
送信先の情報処理装置内の情報処理コントローラでは、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、当該サブプロセッサプログラムを指定されたサブプロセッサにロードさせる。そして、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。
したがって、ユーザが送信先の情報処理装置を操作しなくても自動的に、当該サブプロセッサプログラムまたは当該メインメモリ用プログラムを送信先の情報処理装置内の情報処理コントローラに実行させることができる。
このようにして情報処理装置は、自装置内の情報処理コントローラがサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワークに接続された他の情報処理装置からそれらを取得することができる。さらに、各サブプロセッサとメインメモリとの間ではDMA方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、1つの情報処理コントローラ内でデータを多段階に処理する必要がある場合でも、高速かつ高セキュリティに処理を実行することができる。
[5.情報処理装置間の分散処理の例その2]
ソフトウェアセルの使用による分散処理の結果、図30の上段に示すようにネットワーク1009に接続されている複数の情報処理装置1001,1002,1003および1004は、図30の下段に示すように、仮想的な1台の情報処理装置1007として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
(5−1.システムのソフトウェア構成とプログラムのロード)
図6に、個々の情報処理コントローラのメインメモリ1026が記憶するソフトウェアの構成を示す。これらのソフトウェア(プログラム)は、情報処理装置に電源が投入される前においては、当該の情報処理コントローラに接続される外部記録部1031に記録されているものである。
各プログラムは、機能または特徴によって、制御プログラム、機能プログラムおよびデバイスドライバにカテゴライズされる。
制御プログラムは、各情報処理コントローラが同じものを備え、各情報処理コントローラのメインプロセッサ1021が実行するもので、後述のMS(マスター/スレーブ)マネージャおよび能力交換プログラムを含む。
機能プログラムは、メインプロセッサ1021が実行するもので、記録用、再生用、素材検索用など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
デバイスドライバは、情報処理コントローラ(情報処理装置)の入出力(送受信)用で、放送受信、モニタ出力、ビットストリーム入出力、ネットワーク入出力など、情報処理コントローラごとに情報処理装置に応じたものが備えられる。
ケーブルの差し込みなどによって情報処理装置が物理的にネットワーク1009に接続された状態で、情報処理装置に主電源が投入され、情報処理装置が電気的・機能的にもネットワーク1009に接続されると、その情報処理装置の情報処理コントローラのメインプロセッサ1021は、制御プログラムに属する各プログラム、およびデバイスドライバに属する各プログラムを、メインメモリ1026にロードする。
ロード手順としては、メインプロセッサ1021は、まず、DC1030に読み出し命令を実行させることによって、外部記録部1031からプログラムを読み出し、次に、DMAC1025に書き込み命令を実行させることによって、そのプログラムをメインメモリ1026に書き込む。
機能プログラムに属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
機能プログラムに属する各プログラムは、ネットワークに接続された全ての情報処理装置の外部記録部1031に記録されている必要はなく、いずれか1つの情報処理装置の外部記録部1031に記録されていれば、前述の方法によって他の情報処理装置からロードすることができるので、結果的に図30の下段に示すように、仮想的な1台の情報処理装置1007として機能プログラムを実行することができる。
また、前述したように、メインプロセッサ1021によって処理される機能プログラムは、サブプロセッサ1023によって処理されるサブプロセッサプログラムと連携動作する場合がある。そこで、メインプロセッサ1021が外部記録部1031から機能プログラムを読み出し、メインメモリ1026に書き込む際、対象となる機能プログラムと連携動作するサブプロセッサプログラムが存在する場合には、当該サブプロセッサプログラムも併せて同じメインメモリ1026に書き込む。この場合、連携動作するサブプロセッサプログラムは、1個である場合もあるが、複数個であることもあり得る。複数個である場合には、全ての連携動作するサブプロセッサプログラムをメインメモリ1026に書き込む。
メインメモリ1026に書き込まれたサブプロセッサプログラムは、その後、サブプロセッサ1023内のLS1024に書き込まれ、メインプロセッサ1021によって処理される機能プログラムと連携動作する。
図3のソフトウェアセルに示したように、機能プログラムには、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムIDとして割り当てられる。機能プログラムIDは、機能プログラムの作成の段階で、作成日時や情報処理装置IDなどから決定される。
サブプロセッサプログラムにもサブプロセッサプログラムIDが割り当てられ、これによりサブプロセッサプログラムを一意的に識別可能である。割り当てられるサブプロセッサプログラムIDは、連携動作の相手となる機能プログラムの機能プログラムIDと関連性のある識別子、例えば機能プログラムIDを親番号とした上で最後尾に枝番号を付加させた識別子でもよいが、連携動作の相手となる機能プログラムの機能プログラムIDとは関連性のない識別子でもよい。
いずれにしても、機能プログラムとサブプロセッサプログラムが連携動作する場合には、両者とも相手の識別子であるプログラムIDを自プログラム内に記憶しておく必要がある。機能プログラムが複数個のサブプロセッサプログラムと連携動作する場合にも、当該機能プログラムは、その複数個のサブプロセッサプログラムのサブプロセッサプログラムIDを全て記憶しておく。
メインプロセッサ1021は、自身が動作する情報処理装置の装置情報(装置の種別、能力、動作状態、装置が有する資源などの、装置に関する情報)を格納するための領域をメインメモリ1026に確保し、当該情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、具体的には、図4に示した情報処理装置ID以下の各情報である。
(5−2.システムにおけるマスター/スレーブの決定)
上述したネットワークシステムでは、ある情報処理装置への主電源投入時、その情報処理装置の情報処理コントローラのメインプロセッサ1021は、マスター/スレーブマネージャ(以下、MSマネージャ)をメインメモリ1026にロードし、実行する。
MSマネージャは、自身が動作する情報処理装置がネットワーク1009に接続されていることを検知すると、同じネットワーク1009に接続されている他の情報処理装置の存在を確認する。ここでの「接続」または「存在」は、上述したように、情報処理装置が物理的にネットワーク1009に接続されているだけでなく、電気的・機能的にもネットワーク1009に接続されていることを示す。
以下では、自身が動作する情報処理装置を自装置、他の情報処理装置を他装置と称する。当該装置も、当該情報処理装置を示すものとする。
MSマネージャが同じネットワーク1009に接続されている他の情報処理装置の存在を確認する方法を、以下に示す。
MSマネージャは、DMAコマンドがステータス要求コマンドであり、送信元IDおよび応答先IDが当該情報処理装置で、送信先IDを特定しないソフトウェアセルを生成して、当該情報処理装置が接続されたネットワーク上に送信し、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば10分とされる。
当該ネットワークシステム上に他の情報処理装置が接続されている場合、その他装置は、上記ステータス要求コマンドのソフトウェアセルを受信し、上記応答先IDで特定されるステータス要求コマンドを発行した情報処理装置に対して、DMAコマンドがステータス返信コマンドで、かつデータとして自身(その他装置)の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも当該他装置を特定する情報(情報処理装置ID、メインプロセッサに関する情報、サブプロセッサに関する情報など)および当該他装置のMSステータスが含まれる。
ステータス要求コマンドを発行した情報処理装置のMSマネージャは、上記ネットワーク接続確認用のタイマーがタイムアウトするまで、当該ネットワーク上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、MSステータス=0(マスター装置)を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるMSステータスを1に設定する。これによって、当該装置はスレーブ装置となる。
一方、上記ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはMSステータス=0(マスター装置)を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるMSステータスを0に設定する。これによって、当該装置はマスター装置となる。
すなわち、いずれの装置もネットワーク1009に接続されていない状態、またはネットワーク1009上にマスター装置が存在しない状態において、新たな情報処理装置がネットワーク1009に接続されると、当該装置は自動的にマスター装置として設定される。一方、ネットワーク1009上に既にマスター装置が存在する状態において、新たな情報処理装置がネットワーク1009に接続されると、当該装置は自動的にスレーブ装置として設定される。
マスター装置およびスレーブ装置のいずれについても、MSマネージャは、定期的にステータス要求コマンドをネットワーク1009上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク1009に接続されている情報処理装置の主電源が遮断され、またはネットワーク1009から情報処理装置が切り離されることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク1009に新たな情報処理装置が接続された場合など、ネットワーク1009の接続状態に変化があった場合には、その情報を後述の能力交換プログラムに通知する。
(5−3.能力交換による装置情報の取得)
メインプロセッサ1021は、MSマネージャから、ネットワーク1009上の他装置の照会および自装置のMSステータスの設定完了の通知を受けると、能力交換プログラムを実行する。
能力交換プログラムは、自装置がマスター装置である場合には、ネットワーク1009に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。
他装置の装置情報の取得は、上述したように、DMAコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、DMAコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能である。
能力交換プログラムは、マスター装置である自装置の装置情報テーブルと同様に、ネットワーク1009に接続されている全ての他装置(各スレーブ装置)の装置情報を格納するための領域を自装置のメインメモリ1026に確保し、これら情報を他装置(スレーブ装置)の装置情報テーブルとして記録する。
すなわち、マスター装置のメインメモリ1026には、自装置を含むネットワーク1009に接続されている全ての情報処理装置の装置情報が、装置情報テーブルとして記録される。
一方、能力交換プログラムは、自装置がスレーブ装置である場合には、ネットワーク1009に接続されている全ての他装置の装置情報、すなわちマスター装置および自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる情報処理装置IDおよびMSステータスを、自装置のメインメモリ1026に記録する。
すなわち、スレーブ装置のメインメモリ1026には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク1009に接続されているマスター装置および各スレーブ装置についての情報処理装置IDおよびMSステータスが、別の装置情報テーブルとして記録される。
また、マスター装置およびスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、新たにネットワーク1009に情報処理装置が接続されたことが通知されたときには、その情報処理装置の装置情報を取得し、上述したようにメインメモリ1026に記録する。
なお、MSマネージャおよび能力交換プログラムは、メインプロセッサ1021で実行されることに限らず、いずれかのサブプロセッサ1023で実行されてもよい。また、MSマネージャおよび能力交換プログラムは、情報処理装置の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
(5−4.情報処理装置がネットワークから切断された場合)
マスター装置およびスレーブ装置のいずれについても、能力交換プログラムは、上記のようにMSマネージャから、ネットワーク1009に接続されている情報処理装置の主電源が遮断され、またはネットワーク1009から情報処理装置が切り離されたことが通知されたときには、その情報処理装置の装置情報テーブルを自装置のメインメモリ1026から削除する。
さらに、このようにネットワーク1009から切断された情報処理装置がマスター装置である場合には、以下のような方法によって、新たにマスター装置が決定される。
具体的に、例えば、ネットワーク1009から切断されていない情報処理装置は、それぞれ、自装置および他装置の情報処理装置IDを数値に置き換えて、自装置の情報処理装置IDを他装置の情報処理装置IDと比較し、自装置の情報処理装置IDがネットワーク1009から切断されていない情報処理装置中で最小である場合、そのスレーブ装置は、マスター装置に移行して、MSステータスを0に設定し、マスター装置として、上述したように、ネットワーク1009に接続されている全ての他装置(各スレーブ装置)の装置情報を取得して、メインメモリ1026に記録する。
(5−5.装置情報に基づく情報処理装置間の分散処理)
図30の下段に示したようにネットワーク1009に接続されている複数の情報処理装置1001,1002,1003および1004を仮想的な1台の情報処理装置1007として動作させるためには、マスター装置がユーザの操作およびスレーブ装置の動作状態を把握する必要がある。
図31に、4台の情報処理装置が仮想的な1台の情報処理装置1007として動作する様子を示す。情報処理装置1001がマスター装置、情報処理装置1002,1003および1004がスレーブ装置A,BおよびCとして、動作しているものとする。
ユーザがネットワーク1009に接続されている情報処理装置を操作した場合、操作対象がマスター装置1001であれば、その操作情報は、マスター装置1001において直接把握され、操作対象がスレーブ装置であれば、その操作情報は、操作されたスレーブ装置からマスター装置1001に送信される。すなわち、ユーザの操作対象がマスター装置1001とスレーブ装置のいずれであるかにかかわらず、その操作情報は常にマスター装置1001において把握される。操作情報の送信は、例えば、DMAコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
そして、マスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、その操作情報に従って、実行する機能プログラムを選択する。その際、必要であれば、マスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、上記の方法によって自装置の外部記録部1031−1または1031−2からメインメモリ1026−1に機能プログラムをロードするが、他の情報処理装置(スレーブ装置)がマスター装置1001に機能プログラムを送信してもよい。
機能プログラムには、その実行単位ごとに必要となる、図4に示した各情報として表される情報処理装置種別ID、メインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件などの、装置に関する要求スペックが規定されている。
マスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、各機能プログラムについて必要となる上記要求スペックを読み出す。また、あらかじめ能力交換プログラムによってメインメモリ1026−1に記録された装置情報テーブルを参照し、各情報処理装置の装置情報を読み出す。ここでの装置情報は、図4に示した情報処理装置ID以下の各情報を示し、メインプロセッサ、サブプロセッサ、メインメモリおよび外部記録部に関する情報である。
マスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、ネットワーク1009上に接続された各情報処理装置の上記装置情報と、機能プログラム実行に必要となる上記要求スペックとを順次比較する。
そして、例えば、機能プログラムが録画機能を必要とする場合には、情報処理装置種別IDに基づいて、録画機能を有する情報処理装置のみを特定して抽出する。さらに、機能プログラムを実行するために必要なメインプロセッサまたはサブプロセッサの処理能力、メインメモリ使用量、外部記録部に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。複数の実行要求候補装置が特定された場合には、そのうちの1つを選択する。
実行要求するスレーブ装置が特定されたら、マスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、その特定されたスレーブ装置について、自装置内の情報処理コントローラ1011に含まれるメインメモリ1026−1に記録されている当該スレーブ装置の装置情報テーブルを更新する。
さらに、マスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、DMAコマンドが機能プログラム実行コマンドであるソフトウェアセルを生成し、当該ソフトウェアセルのセルインターフェースに、当該機能プログラムに関する必要なサブプロセッサの情報およびサンドボックスサイズ(図3参照)を設定して、上記実行要求されるスレーブ装置に対して送信する。
機能プログラムの実行を要求されたスレーブ装置は、その機能プログラムを実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラに含まれるメインプロセッサ1021は、上記の方法によって自装置の外部記録部1031からメインメモリ1026に機能プログラムおよび当該機能プログラムと連携動作するサブプロセッサプログラムをロードする。
機能プログラムの実行を要求されたスレーブ装置の外部記録部1031に、必要な機能プログラムまたは当該機能プログラムと連携動作するサブプロセッサプログラムが記録されていない場合には、他の情報処理装置が当該機能プログラムまたはサブプロセッサプログラムを、その機能プログラム実行要求先スレーブ装置に送信するように、システムを構成すればよい。
サブプロセッサプログラムについては、上記のロードコマンドおよびキックコマンドを利用して他の情報処理装置に実行させることもできる。
機能プログラムの実行終了後、機能プログラムを実行したスレーブ装置内の情報処理コントローラに含まれるメインプロセッサ1021は、終了通知をマスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1に送信するとともに、自装置の装置情報テーブルを更新する。マスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、その終了通知を受信して、機能プログラムを実行したスレーブ装置の装置情報テーブルを更新する。
マスター装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、自装置および他装置の装置情報テーブルの参照結果から、当該の機能プログラムを実行することができる情報処理装置として、自身を選択する場合もあり得る。その場合には、マスター装置1001が当該の機能プログラムを実行する。
図31の例で、ユーザがスレーブ装置A(情報処理装置1002)を操作し、当該操作に応じた機能プログラムを別のスレーブ装置B(情報処理装置1003)が実行する場合につき、図32に以上の分散処理の例を示す。
図32の例では、ユーザがスレーブ装置Aを操作することによって、スレーブ装置Aを含むネットワークシステム全体の分散処理が開始して、まず、スレーブ装置Aは、ステップ1091で、その操作情報をマスター装置1001に送信する。
マスター装置1001は、ステップ1092で、その操作情報を受信し、さらにステップ1093に進んで、自装置のメインメモリ1026−1に記録されている自装置および他装置の装置情報テーブルから、各情報処理装置の動作状態を調べて、受信した操作情報に応じた機能プログラムを実行することができる情報処理装置を選択する。この例は、スレーブ装置Bが選択される場合である。
次に、マスター装置1001は、ステップ1094で、その選択したスレーブ装置Bに対して機能プログラムの実行を要求する。
スレーブ装置Bは、ステップ1095で、その実行要求を受信し、さらにステップ1096に進んで、実行要求された機能プログラムを実行する。
以上のように、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1001,1002,1003および1004を仮想的な1台の情報処理装置1007として動作させることができる。
(5−6.各情報処理装置およびシステムの具体例)
ネットワーク1009を介して互いに接続される情報処理装置1001,1002,1003および1004は、基本的に上記のような情報処理コントローラ1011,1012,1013および1014によって情報処理を行うものであれば、どのようなものでもよいが、図33に、その一例を示す。
この例では、情報処理コントローラ1011を備える情報処理装置1001は、ハードディスクレコーダで、図34に示すように、ハードウェア構成としては、図22に示した外部記録部1031−1として、ハードディスクを内蔵し、図22に示した外部記録部1031−2として、DVD±R/RW、CD±R/RW、Blu−rayDisc(登録商標)などの光ディスクを装着できるとともに、情報処理コントローラ1011のバス1032−1に接続されたバス1051−1に、放送受信部1052−1、映像入力部1053−1、音声入力部1054−1、映像出力部1055−1、音声出力部1056−1、操作パネル部1057−1、リモコン(遠隔操作)受光部1058−1、ネットワーク接続部1059−1、および表示駆動部1061−1が接続され、表示駆動部1061−1に、液晶表示部1062−1が接続されたものである。
放送受信部1052−1、映像入力部1053−1および音声入力部1054−1は、放送信号を受信し、または情報処理装置1001の外部から映像信号および音声信号を入力し、それぞれ所定フォーマットのデジタルデータに変換して、情報処理コントローラ1011での処理のためにバス1051−1に送出するものであり、映像出力部1055−1および音声出力部1056−1は、情報処理コントローラ1011からバス1051−1に送出された映像データおよび音声データを処理して、デジタルデータのまま、またはアナログ信号に変換して、情報処理装置1001の外部に送出するものであり、リモコン受光部1058−1は、リモコン送信器1063−1からのリモコン赤外線信号を受信するものである。
また、液晶表示部1062−1は、ハードディスクレコーダである情報処理装置1001の操作状況などを表示するとともに、後述のようにネットワーク1009の接続状況やネットワークシステム全体の状態を表示するものである。
図33の例の、情報処理コントローラ1012を備える情報処理装置1002も、ハードディスクレコーダで、図34において括弧内に参照番号を付して示すように、情報処理装置1001と同様に構成されたものである。
それぞれハードディスクレコーダである情報処理装置1001および1002のソフトウェア構成としては、制御プログラムとして、図6に示したように、MSマネージャおよび能力交換プログラムを備え、機能プログラムとして、映像音声記録、映像音声再生、素材検索、番組録画予約などのためのプログラムを備え、デバイスドライバとして、放送受信、映像入力、音声入力、映像出力、音声出力、外部記録部入出力、ネットワーク入出力などのためのプログラムを備える。
図33の例の、情報処理コントローラ1013を備える情報処理装置1003は、テレビ受信装置で、図35に示すように、ハードウェア構成としては、図22に示した外部記録部1031−5として、メモリカードディスクを装着できるとともに、情報処理コントローラ1013のバス1032−3に接続されたバス1066に、放送受信部1067、映像出力部1068、音声出力部1069、操作パネル部1071、リモコン受光部1072、ネットワーク接続部1073、およびLED(発光ダイオード)駆動部1070が接続され、映像出力部1068に、液晶ディスプレイやプラズマディスプレイなどの映像表示部1074が接続され、音声出力部1069に、左右のスピーカ1075および1076が接続され、LED駆動部1070に、LED1077が接続されたものである。
放送受信部1067は、放送信号を受信して、その映像信号および音声信号を、それぞれ所定フォーマットのデジタルデータに変換して、情報処理コントローラ1013での処理のためにバス1066に送出するものであり、映像出力部1068は、情報処理コントローラ1013からバス1066に送出された映像データを処理して、映像表示部1074に出力するものであり、音声出力部1069は、情報処理コントローラ1013からバス1066に送出された音声データを処理して、スピーカ1075および1076に出力するものであり、リモコン受光部1072は、リモコン送信器1078からのリモコン赤外線信号を受信するものである。
また、LED1077は、後述のようにネットワーク1009の接続状況やネットワークシステム全体の状態を表示するものである。
なお、図22では内部を省略した情報処理コントローラ1013は、メインプロセッサ1021−3、サブプロセッサ1023−7,1023−8および1023−9、DMAC(ダイレクトメモリアクセスコントローラ)1025−3、DC(ディスクコントローラ)1030−3、およびバス1032−3を備え、そのメインプロセッサ1021−3は、LS(ローカルストレージ)1022−3を有し、各サブプロセッサ1023−7,1023−8および1023−9は、LS(ローカルストレージ)1024−7,1024−8および1024−9を有する。
テレビ受信装置である情報処理装置1003のソフトウェア構成としては、制御プログラムとして、図6に示したように、MSマネージャおよび能力交換プログラムを備え、機能プログラムとして、映像音声処理などのプログラムを備え、デバイスドライバとして、放送受信、映像出力、音声出力、ネットワーク入出力などのためのプログラムを備える。
図33の例の、情報処理コントローラ1014を備える情報処理装置1004は、ポータブルCDプレーヤで、図36に示すように、ハードウェア構成としては、図22に示した外部記録部1031−6として、CD(Compact Disc)を装着できるとともに、情報処理コントローラ1014のバス1032−4に接続されたバス1081に、表示駆動部1086、音声出力部1083、操作ボタン部1084、およびネットワーク接続部1085が接続され、表示駆動部1086に、液晶表示部1082が接続されたものである。
液晶表示部1082は、ポータブルCDプレーヤである情報処理装置1004の選曲操作用に曲名などを表示するとともに、後述のようにネットワーク1009の接続状況やネットワークシステム全体の状態を表示するものである。
なお、図22では内部を省略した情報処理コントローラ1014は、メインプロセッサ1021−4、サブプロセッサ1023−10,1023−11および1023−12、DMAC(ダイレクトメモリアクセスコントローラ)1025−4、DC(ディスクコントローラ)1030−4、およびバス1032−4を備え、そのメインプロセッサ1021−4は、LS(ローカルストレージ)1022−4を有し、各サブプロセッサ1023−10,1023−11および1023−12は、LS(ローカルストレージ)1024−10,1024−11および1024−12を有する。
ポータブルCDプレーヤである情報処理装置1004のソフトウェア構成としては、制御プログラムとして、図6に示したように、MSマネージャおよび能力交換プログラムを備え、機能プログラムとして、音楽再生などのためのプログラムを備え、デバイスドライバとして、音声出力、CD制御、ネットワーク入出力などのためのプログラムを備える。
以上のような図33の例のネットワークシステムは、外観上は、図37のように構成される。
それぞれハードディスクレコーダである情報処理装置1001および1002には、正面部に上記の液晶表示部1062−1および1062−2が設けられ、テレビ受信装置である情報処理装置1003には、映像表示部1074の左右にスピーカ1075および1076が設けられ、スピーカ1075および1076の周辺に上記のLED1077が設けられ、ポータブルCDプレーヤである情報処理装置1004には、上記の液晶表示部1082が設けられる。LED1077は、後述のように複数のLEDからなるものである。
このような図33〜図37の例のシステムにおいて、情報処理装置1001,1003および1004がネットワーク1009に接続され、情報処理装置1001がマスター装置(MSステータス=0)に設定され、情報処理装置1003および1004がスレーブ装置(MSステータス=1)に設定されているものとする。
この状態で、新たに情報処理装置1002がネットワーク1009に接続されると、上述した方法によって、情報処理装置1002内の情報処理コントローラ1012に含まれるメインプロセッサ1021−2で実行されるMSマネージャは、他の情報処理装置1001,1003および1004にMSステータスを照会して、情報処理装置1001が既にマスター装置として存在することを認識し、自装置(情報処理装置1002)をスレーブ装置(MSステータス=1)に設定する。また、マスター装置に設定されている情報処理装置1001は、新たに追加された情報処理装置1002を含む各情報処理装置の装置情報を収集して、メインメモリ1026−1内の装置情報テーブルを更新する。
このような状態で、ユーザによってスレーブ装置である情報処理装置(テレビ受信装置)1003で2時間の放送番組の録画予約の操作が行われた場合を示す。
この場合、スレーブ装置である情報処理装置1003は、ユーザから録画開始時刻、録画終了時刻、録画対象放送チャネル、録画品質などの情報を含む録画予約情報の入力を受け付け、当該録画予約情報およびDMAコマンドとしての録画予約コマンドを含むソフトウェアセルを生成して、マスター装置である情報処理装置(ハードディスクレコーダ)1001に送信する。
DMAコマンドが録画予約コマンドであるソフトウェアセルを受信した情報処理装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、録画予約コマンドを読み出すとともに、メインメモリ1026−1内の装置情報テーブルを参照して、当該録画予約コマンドを実行可能な情報処理装置を特定する。
まず、メインプロセッサ1021−1は、装置情報テーブルに含まれる各情報処理装置1001,1002,1003および1004の情報処理装置種別IDを読み出して、録画予約コマンドに対応する機能プログラムを実行可能な情報処理装置を抽出する。ここでは、録画機能を示す情報処理装置種別IDを有する情報処理装置1001および1002が候補装置として特定され、情報処理装置1003および1004は候補装置から除外される。
次に、マスター装置である情報処理装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、装置情報テーブルを参照して、情報処理装置1001および1002のメインプロセッサまたはサブプロセッサの処理能力、メインメモリに関する情報などの、装置に関する情報を読み出し、情報処理装置1001および1002が録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するか否かを判断する。ここでは、情報処理装置1001および1002が、ともに録画予約コマンドに対応する機能プログラムの実行に必要な要求スペックを満足するものとする。
さらに、メインプロセッサ1021−1は、装置情報テーブルを参照して、情報処理装置1001および1002の外部記録部に関する情報を読み出し、外部記録部の空き容量が当該録画予約コマンドの実行に必要な容量を満足するか否かを判断する。情報処理装置1001および1002はハードディスクレコーダであるので、それぞれハードディスク1031−1および1031−3の、総容量と使用量との差分が、それぞれの空き容量に相当する。
この場合、情報処理装置1001のハードディスク1031−1の空き容量が、録画時間に換算して10分であり、情報処理装置1002のハードディスク1031−3の空き容量が、録画時間に換算して20時間であるとする。
このとき、マスター装置である情報処理装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、当該録画予約コマンドの実行に必要な2時間分の空き容量を確保できる情報処理装置を、実行要求先スレーブ装置として特定する。
その結果、情報処理装置1002のみが実行要求先スレーブ装置として選択され、マスター装置である情報処理装置1001内の情報処理コントローラ1011に含まれるメインプロセッサ1021−1は、ユーザにより操作された情報処理装置1003から送信された録画予約情報を含む当該録画予約コマンドを情報処理装置1002に送信して、上記2時間の放送番組の録画予約の実行を要求する。
情報処理装置1002内の情報処理コントローラ1012に含まれるメインプロセッサ1021−2は、当該録画予約コマンドを解析して、録画に必要な機能プログラムを外部記録部であるハードディスク1031−3からメインメモリ1026−2にロードし、録画予約情報に従って録画を実行する。その結果、録画予約された2時間の放送番組の映像音声データが情報処理装置1002のハードディスク1031−3に記録される。
このように、図33〜図37の例のネットワークシステムにおいても、ユーザは、1台の情報処理装置のみを操作することによって、他の情報処理装置を操作することなく、複数の情報処理装置1001,1002,1003および1004を仮想的な1台の情報処理装置1007として動作させることができる。
[6.ネットワークシステムの状況の呈示その2]
上述したシステムでは、ユーザは、システムの外観などから、複数の情報処理装置が、ネットワークシステムを構成していることや、連携動作中であることなどを、容易に知ることができない。
そこで、この発明では、以下に示すように、複数の情報処理装置が、ネットワークシステムを構成していることや、連携動作中であることなどを、システムの外観などから、ユーザが容易かつ確実に知ることができるようにする。
(6−1.システム構成)
図33〜図37の例のシステムでは、図37に示したように、それぞれハードディスクレコーダである情報処理装置1001および1002には液晶表示部1062−1および1062−2を設け、テレビ受信装置である情報処理装置1003にはLED1077を設け、ポータブルCDプレーヤである情報処理装置1004には液晶表示部1082を設ける。LED1077としては、例えば、緑色LED、赤色LEDおよび青色LEDを、スピーカ1075および1076の周辺に複数配置する。
また、各情報処理装置1001,1002,1003および1004は、それぞれ日時(日付および時刻)を計測する機能を備えるとともに、ネットワーク1009を介して接続された情報処理装置の間では、マスター装置に設定されている情報処理装置によって、それぞれの日時が一致するように制御されるものとする。
情報処理装置1001,1002,1003および1004のソフトウェア構成としては、図38に示すように、制御プログラムとして、図6に示したMSマネージャおよび能力交換プログラムのほかに接続マネージャを用意し、機能プログラムおよびデバイスドライブとして、上述したように各情報処理装置に応じたものを用意する。
接続マネージャは、MSマネージャによるMSステータス(マスター装置では0、スレーブ装置では1)の設定後の、能力交換プログラムによる能力交換(マスター装置およびスレーブ装置における自装置および他装置の装置情報の取得)後、起動させるもので、能力交換によって得られた装置情報をもとに、呈示用情報として点滅表示用情報を生成し、その点滅表示用情報によって、各情報処理装置の呈示用の発光表示部、すなわち図33〜図37の例では、情報処理装置1001および1002の液晶表示部1062−1および1062−2、情報処理装置1003のLED1077、および情報処理装置1004の液晶表示部1082を点滅表示させて、ネットワーク1009の接続状況やネットワークシステム全体の状態をユーザに呈示するものである。
接続状況などの呈示用の装置情報は、例えば、図15に示すように、図4に示した情報処理装置ID以下の各情報から、サブプロセッサ数やサブプロセッサステータスなどの、サブプロセッサに関する情報を除き、必要に応じて、これに特記詳細情報を加えたものとする。
特記詳細情報は、ネットワーク1009に接続されている情報処理装置の台数を示す情報や、2台以上の情報処理装置がネットワーク1009に接続されている場合に、その複数の情報処理装置が連携動作中であることを示す情報などであり、図15に示される装置情報以外の装置情報から生成する。
この呈示用の装置情報から生成する点滅表示用情報は、例えば、図16に示すように、点滅開始日時、点滅終了日時、表示色、点滅周期、点滅時間比率、光量変化、点滅位相、および拡張情報からなるものとする。
点滅開始日時および点滅終了日時は、図17に示すような時刻tsから時刻teまでの間の期間、点滅表示することを指示するものである。ただし、点滅終了日時の代わりに、点滅開始日時から10秒間というように、点滅期間の時間幅を指示するようにしてもよい。
表示色(点灯色)は、第1に緑色、第2に赤色、第3に青色、というように、複数の色から、後述のように1つを選択して指定する。
点滅周期は、図17に示すように1回の点灯時間と1回の消灯時間の和で、第1に1.0秒、第2に0.5秒、というように、複数通りから、後述のように1つを選択して指定する。
点滅時間比率は、1回の点灯時間と1回の消灯時間との比率で、第1に50:50、第2に30:70、というように、複数通りから、後述のように1つを選択して指定する。
光量変化は、点灯時間内で点灯光量を変化させるか否かを示すもので、第1には、図17において即時モードや位相シフトモードとして示すように、点灯光量が一定の光量一定モードとし、第2には、図17において光量変化モードとして示すように、一点滅周期内で、光量が最大値からゼロまで漸減した後、ゼロから最大値まで漸増する光量変化モードとし、これら光量一定モードおよび光量変化モードのうちから、後述のように1つを選択して指定する。
ただし、図17に示すような光量変化モードでは、実際上、光量ゼロの消灯時間が一瞬となり、上記の点滅時間比率は50:50というような比率にならないが、光量変化モードでは、光量が最大値からゼロまで漸減する期間を消灯期間、光量がゼロから最大値まで漸増する期間を点灯期間とし、または、光量が最大値の1/2以上の期間を点灯期間、光量が最大値の1/2未満の期間を消灯期間として、点滅時間比率を定義するとともに、例えば、その点滅時間比率を50:50に固定する。
図16の点滅表示用情報中の点滅位相は、上記のように指定した点滅開始日時から、直ちに点滅表示するか、ある時間遅らせて点滅表示するかを指示するもので、例えば、図17に示すような、即時モード(遅延時間はゼロ)、第1位相シフトモードD1(遅延時間は一点滅周期の1/4の時間d1)、第2位相シフトモードD2(遅延時間は一点滅周期の1/2の時間d2)、および第3位相シフトモードD3(遅延時間は一点滅周期の3/4の時間d3)のうちから、後述のように各情報処理装置につき選択する。
点滅表示用情報中の拡張情報は、
(w)ネットワーク1009に接続されている情報処理装置の台数に応じて、図17の時刻tsから時刻teまでの点滅期間内の点滅回数を指示し、
(x)表示色として、あらかじめユーザが指定した複数色、または接続マネージャがランダムに選択した複数色を使用し、ユーザが指定した色順、または接続マネージャがランダムに決定した色順で、点滅表示することを指示する、
などである。
上述したシステムでは、点滅表示の表示色につき、ユーザが、あらかじめ、
(a)特定の1色を指定する、
(b)1色を指定するが、色の選択はシステム(接続マネージャ)に委ねる、
(c)特定の複数色を指定し、色順も指定する、
(d)特定の複数色を指定するが、色順の決定はシステムに委ねる、
(e)2色以上の色数を指定するが、色の選択および色順の決定はシステムに委ねる、
という設定を選択的に行うことができるように、システムを構成する。
(a)または(b)の場合には、接続マネージャは、図16の点滅表示用情報中の表示色として、ユーザが指定した特定の色、または自身がランダムに選択した色を記述するが、(c)(d)または(e)の場合には、接続マネージャは、図16の点滅表示用情報中の拡張情報として、上記(x)のように、ユーザが指定し、または自身がランダムに選択決定した複数色および色順を記述する。
(6−2.呈示方法)
上述したように、情報処理装置1001,1003および1004がネットワーク1009に接続され、情報処理装置1001がマスター装置に設定され、情報処理装置1003および1004がスレーブ装置に設定されている状態で、新たに情報処理装置1002がネットワーク1009に接続された場合につき、上述した点滅表示用情報の生成、およびこれによる点滅表示の方法を示す。
このとき、上述したように、新たに追加された情報処理装置1002は、自装置をスレーブ装置に設定するとともに、マスター装置に設定されている情報処理装置1001は、新たに追加された情報処理装置1002を含む各情報処理装置の装置情報を収集して、メインメモリ1026−1内の装置情報テーブルを更新する。
さらに、その後、各情報処理装置1001,1002,1003および1004のメインプロセッサ1021は、接続マネージャを起動し、図39に示すような呈示処理を実行する。
すなわち、能力交換(装置情報テーブルの更新)後、スレーブ装置に設定されている情報処理装置1002,1003および1004、およびマスター装置に設定されている情報処理装置1001は、それぞれ、ステップ1101および1111で、接続マネージャを起動する。
次に、スレーブ装置に設定されている情報処理装置1002,1003および1004は、それぞれ、ステップ1102で、マスター装置に設定されている情報処理装置1001に対して、呈示用情報要求コマンドを送信する。
この呈示用情報要求コマンドは、図19(A)に示すように、送信元ID(この場合は情報処理装置1002,1003または1004の情報処理装置ID)、送信先ID(この場合は情報処理装置1001の情報処理装置ID)、および応答先ID(この場合は情報処理装置1002,1003または1004の情報処理装置ID)を有し、DMAコマンドとして、呈示用情報要求コマンド本体を含むものとする。
図39に示すように、マスター装置に設定されている情報処理装置1001は、ステップ1113で、この呈示用情報要求コマンドを受信し、さらにステップ1114に進んで、メインメモリ1026−1内の、自装置(情報処理装置1001)および他装置(情報処理装置1002,1003および1004)の装置情報テーブル内の、それぞれ図15に示したような装置情報から、それぞれ呈示用情報として、自装置および他装置のそれぞれに対する図16に示したような点滅表示用情報を生成する。
次に、マスター装置に設定されている情報処理装置1001は、ステップ1115で、その生成した他装置(情報処理装置1002,1003および1004)のそれぞれに対する点滅表示用情報を、呈示用情報返信コマンドによって他装置のそれぞれに対して送信する。
この呈示用情報返信コマンドは、図19(B)に示すように、送信元ID(この場合は情報処理装置1001の情報処理装置ID)、送信先ID(この場合は情報処理装置1002,1003または1004の情報処理装置ID)、および応答先ID(この場合は情報処理装置1002,1003または1004の情報処理装置ID)を有し、DMAコマンドとして、呈示用情報返信コマンド本体および生成した点滅表示用情報を含むものとする。
図39に示すように、マスター装置に設定されている情報処理装置1001は、次にステップ1116で、自装置に対する点滅表示用情報を、自装置の点滅表示モジュールに送信し、さらにステップ1117に進んで、その点滅表示モジュールによって点滅表示を行う。
一方、スレーブ装置に設定されている情報処理装置1002,1003および1004は、それぞれ、ステップ1106で、自装置宛の呈示用情報返信コマンドを受信して、それに含まれる自装置に対する点滅表示用情報を、自装置の点滅表示モジュールに送信し、さらにステップ1107に進んで、その点滅表示モジュールによって点滅表示を行う。
情報処理装置1001,1002,1003および1004の点滅表示モジュールは、それぞれ、点滅表示用プログラムおよび発光表示部(ハードウェア部)によって構成され、情報処理装置1001,1002,1003および1004では、それぞれ、その点滅表示用プログラムによって点滅表示用情報が解析処理され、その発光表示部が点滅表示される。
発光表示部は、情報処理装置1001では、図34および図37に示した液晶表示部1062−1であり、情報処理装置1002では、図34および図37に示した液晶表示部1062−2であり、情報処理装置1003では、図35および図37に示したLED1077であり、情報処理装置1004では、図36および図37に示した液晶表示部1082である。
(6−3.呈示態様)
以下に、各種の場合において生成される点滅表示用情報の内容、および各種の場合における点滅表示の態様を示す。
<6−3−1>
第1は、図15に示した呈示用の装置情報として、特記詳細情報を記述せず、かつ、図16に示した点滅表示用情報として、拡張情報を記述しないで、全ての情報処理装置につき、例えば、表示色は緑色、点滅周期は1.0秒、点滅時間比率は50:50、光量変化は無し(光量一定)、点滅位相は即時(時間遅れ無し)とする場合である。
この場合には、情報処理装置1001では、液晶表示部1062−1の表示画面全体が緑色で点滅し、情報処理装置1002では、液晶表示部1062−2の表示画面全体が緑色で点滅し、情報処理装置1003では、LED1077中の緑色LEDが点滅し、情報処理装置1004では、液晶表示部1082の表示画面全体が緑色で点滅する。
したがって、ユーザは、システムの外観から、情報処理装置1001,1002,1003および1004がネットワークシステムを構成していることを、容易かつ確実に知ることができる。
<6−3−2>
第2は、マスター装置に設定されている情報処理装置とスレーブ装置に設定されている情報処理装置とで、点滅周期または表示色を変える場合である。
上述した例では、情報処理装置1001がマスター装置に設定され、情報処理装置1002,1003および1004がスレーブ装置に設定されているので、(2a)表示色は、同じ色、例えば緑色にして、情報処理装置1001については、点滅周期を0.5秒とし、情報処理装置1002,1003および1004については、点滅周期を1.0秒とする、(2b)点滅周期は、同じ時間、例えば1.0秒にして、情報処理装置1001については、表示色を赤色とし、情報処理装置1002,1003および1004については、表示色を緑色とする、(2c)情報処理装置1001については、点滅周期を0.5秒、表示色を赤色とし、情報処理装置1002,1003および1004については、点滅周期を1.0秒、表示色を緑色とする、などである。
これによれば、ユーザは、システムの外観から、情報処理装置1001,1002,1003および1004がネットワークシステムを構成していることだけでなく、情報処理装置1001がマスター装置に設定され、情報処理装置1002,1003および1004がスレーブ装置に設定されていることを、容易かつ確実に知ることができる。
<6−3−3>
第3は、点滅位相を各情報処理装置の情報処理装置IDの順に遅らせる場合である。すなわち、上記の例で、情報処理装置IDを数値に置き換えたとき、例えば、情報処理装置1001の次順位が情報処理装置1002、情報処理装置1002の次順位が情報処理装置1003、情報処理装置1003の次順位が情報処理装置1004となる(より大きいものがないときは最小のものに戻る)とすると、情報処理装置1001については、図17に示したような即時モードとし、情報処理装置1002については、図17に示したような第1位相シフトモードD1とし、情報処理装置1003については、図17に示したような第2位相シフトモードD2とし、情報処理装置1004については、図17に示したような第3位相シフトモードD3とする。
これによれば、ユーザは、システムの外観から、情報処理装置1001,1002,1003および1004がネットワークシステムを構成していることだけでなく、各情報処理装置の順番を、容易かつ確実に知ることができる。
<6−3−4>
第4は、図15に示した呈示用の装置情報中に、特記詳細情報として、ネットワーク1009に接続されている情報処理装置の台数を記述し、図16に示した点滅表示用情報中に、拡張情報として、上記(w)のように点滅期間内の点滅回数を記述する場合である。
上記の例では、4台の情報処理装置1001,1002,1003および1004がネットワーク1009に接続されているので、例えば、それぞれの情報処理装置1001,1002,1003および1004につき、図17の時刻tsから時刻teまでの点滅期間内において、4回点滅させた後、1回分(一点滅周期)は点滅を休止して消灯状態とするパターンで、それぞれの情報処理装置1001,1002,1003および1004を点滅させる。
これによれば、ユーザは、システムの外観から、複数の情報処理装置がネットワークシステムを構成していることだけでなく、何台の情報処理装置がネットワーク1009に接続されているかを、容易かつ確実に知ることができる。
<6−3−5>
第5は、図16に示した点滅表示用情報中に、拡張情報として、上記(x)のように、ユーザが指定し、またはシステム(マスター装置に設定されている情報処理装置1001の接続マネージャ)がランダムに選択決定した複数色および色順を記述する場合である。
この場合、上記の例では、例えば、情報処理装置1001が赤色で、情報処理装置1002が緑色で、情報処理装置1003が青色で、情報処理装置1004が黄色で、それぞれ点滅する。
これによれば、ユーザは、システムの外観から、複数の情報処理装置がネットワークシステムを構成していることだけでなく、何台の情報処理装置がネットワーク1009に接続されているかなどを、容易かつ確実に知ることができる。
なお、情報処理装置1003では、例えば、図37に示したLED1077中の緑色LEDおよび赤色LEDを近接して配置し、その緑色LEDおよび赤色LEDを同時に点滅させることによって、情報処理装置1003を黄色で点滅させることができる。
<6−3−6>
第6は、図15に示した呈示用の装置情報中に、特記詳細情報として、ネットワークシステムが連携動作中であることを記述し、それを、図16に示した点滅表示用情報中の、いずれかの項目に反映させる場合である。
例えば、上述したように、情報処理装置1001,1003および1004がネットワーク1009に接続されている状態で、新たに情報処理装置1002がネットワーク1009に接続されたとき、ユーザが情報処理装置1003で行った操作に応じた処理が、情報処理装置1001,1003または1004で実行されている場合は、当該ネットワークシステムは連携動作中である。
そして、例えば、このように連携動作中である場合は、表示色を青色とし、連携動作中ではない場合は、表示色を緑色とする。または、例えば、連携動作中である場合は、点滅周期を0.5秒とし、連携動作中ではない場合は、点滅周期を1.0秒とする。
これによれば、ユーザは、システムの外観から、複数の情報処理装置がネットワークシステムを構成していることだけでなく、現に連携動作中であるか否かを、容易かつ確実に知ることができる。
<6−3−7>
第7は、図15に示した呈示用の装置情報中の、メインプロセッサ、メインメモリまたは外部記録部に関する情報を、図16に示した点滅表示用情報中の、いずれかの項目に反映させる場合である。
例えば、メインプロセッサ使用率が一定値以上になっている情報処理装置については、ユーザに注意を喚起するために、点滅周期を通常の1.0秒の1/2の0.5秒とし、または表示色を通常の緑色ではなく赤色とする。
また、メインメモリ総容量とメインメモリ使用量とからメインメモリ使用率を算出し、このメインメモリ使用率が一定値以上になっている情報処理装置については、ユーザに注意を喚起するために、点滅周期を通常の1.0秒の1/2の0.5秒とし、または表示色を通常の緑色ではなく赤色とする。
また、外部記録部種別IDから外部記録部としてハードディスクが用いられているか否かを判断し、ハードディスクが用いられている情報処理装置(上記の例では情報処理装置1001および1002)については、そのハードディスクの総容量と使用量とから使用率を算出し、このハードディスク使用率が一定値以上になっている情報処理装置については、ユーザに注意を喚起するために、点滅周期を通常の1.0秒の1/2の0.5秒とし、または表示色を通常の緑色ではなく赤色とする。
なお、メインプロセッサ使用率、メインメモリ使用率、またはハードディスク使用率が高いほど、点滅周期を短くするように、メインプロセッサ使用率、メインメモリ使用率、またはハードディスク使用率に応じて、点滅周期を連続的に変化させてもよい。
<6−3−8>
第8は、ネットワークに接続されている情報処理装置に異常や問題がある場合、図15に示した呈示用の装置情報中に、特記詳細情報として、そのことを記述し、そのことを、図16に示した点滅表示用情報中の、いずれかの項目に反映させる場合である。
この場合、ネットワークに接続されている各情報処理装置、または異常や問題がある情報処理装置について、ユーザに注意を喚起するために、点滅周期を通常の1.0秒より短い0.5秒とし、または表示色を通常の緑色ではなく赤色とする。
<他の呈示態様>
上述した呈示態様以外に、または上述した呈示態様に加えて、例えば、上記の例のシステムで、それぞれハードディスクレコーダである情報処理装置1001および1002については、図40または図41に示すような呈示態様とすると、好適である。
図40の例では、情報処理装置1001のみがネットワーク1009に接続されている場合には、「単独接続」として示すように、液晶表示部1062−1に、2つのリング1131および1132を、交差させて点滅表示(または点灯表示)する。表示色としては、例えば、リング1131および1132は輝度の高い黄色とし、リング1131および1132の内側部分1133および1134、リング1131および1132の交差部分1135、およびリング1131および1132の周辺部分1136は、それぞれ黒色とする。
情報処理装置1001と他の情報処理装置がネットワーク1009に接続されているが、連携動作中ではない場合には、「連携可能状態」として示すように、内側部分1133および1134を青色とし、交差部分1135をリング1131および1132と同じ黄色として、単独接続の場合より画面全体の輝度を高くする。
情報処理装置1001と他の情報処理装置がネットワーク1009に接続されていて、かつ連携動作中である場合には、「連携動作中」として示すように、内側部分1133および1134を緑色として、連携可能状態の場合より画面全体の輝度を高くする。
上記の例のシステムでは、ポータブルCDプレーヤである情報処理装置1004は、ネットワーク1009から切断される可能性が高いのに対して、ハードディスクレコーダである情報処理装置1001および1002は、一定の場所に据え置かれ、ネットワーク1009から切断される可能性が低く、ユーザは、システムの状態を見るとき、ハードディスクレコーダである情報処理装置1001または1002に注目することが多い。
したがって、この例の呈示態様によれば、ユーザは、システムの各状態を、容易かつ確実に判断することができる。
図41の例では、情報処理装置1001のみがネットワーク1009に接続されている場合には、「単独接続」として示すように、液晶表示部1062−1に、1つのリング1141を点滅表示(または点灯表示)し、情報処理装置1001と他の1台の情報処理装置がネットワーク1009に接続されている場合には、「2台接続」として示すように、液晶表示部1062−1に、2つのリング1142および1143を、交差させて点滅表示(または点灯表示)し、情報処理装置1001と他の2台の情報処理装置がネットワーク1009に接続されている場合には、「3台接続」として示すように、液晶表示部1062−1に、3つのリング1144,1145および1146を、順次交差させて点滅表示(または点灯表示)する。
この例によれば、ユーザは、システムの外観から、何台の情報処理装置がネットワークに接続されているかを、容易かつ確実に知ることができる。
(6−4.他の呈示方法および呈示態様)
図40および図41に「単独接続」として示したように、ある情報処理装置のみがネットワークに接続され、マスター装置に設定された場合にも、そのマスター装置が、自装置の装置情報から自装置に対する呈示用情報を生成し、上述したような点滅表示(または点灯表示)を行うように、システムを構成することができる。
また、上述した例のように、ある情報処理装置がネットワークに接続され、マスター装置に設定されている状態で、新たに別の情報処理装置がネットワークに接続された場合にも、各スレーブ装置が、上述した例のようにマスター装置に要求するのではなく、それぞれ、自装置の装置情報、または自装置および他装置の装着情報から、自装置に対する呈示用情報を生成し、上述したような点滅表示(または点灯表示)を行うように、システムを構成することもできる。
さらに、複数の情報処理装置がネットワークに接続されている状態で、そのうちの一部の情報処理装置がネットワークから切断された場合にも、上述した方法および態様と同様の方法および態様によって、ネットワークから切断されていない各情報処理装置(切断されていない情報処理装置が1台であるときは、その1台の情報処理装置)で、そのときのネットワークシステムの状況を呈示するように、システムを構成することもできる。
この場合には、ユーザは、システムの外観から、ある情報処理装置がネットワークから切断されたことによってネットワークシステムの状況が変化したことを、容易かつ確実に知ることができる。
さらに、上述した例は、情報処理装置の発光表示部を点滅または点灯させて、ネットワークシステムの状況を呈示する場合であるが、音声アナウンスによって、ネットワークシステムの状況を呈示するように、システムを構成してもよい。
この場合、具体的に、各情報処理装置には、スピーカなどの音声出力手段を設けるとともに、音声アナウンスのためのプログラムおよびテキストデータを用意し、上述した装置情報から、テキスト音声合成によって、音声アナウンスの音声データを生成し、これをアナログ音声信号に変換して、スピーカなどの音声出力手段に送出するように、各情報処理装置を構成すればよい。
具体的に、上述した例のように、ある情報処理装置がネットワークに接続され、マスター装置に設定されている状態で、新たに別の情報処理装置がネットワークに接続された場合には、各情報処理装置で、「機器が追加されました」「機器が4台に増加しました」「ハードディスクレコーダが追加されました」「4台の機器で連携動作中です」などの音声アナウンスによって、そのときのネットワークシステムの状況を呈示し、複数の情報処理装置がネットワークに接続されている状態で、そのうちの一部の情報処理装置がネットワークから切断された場合には、ネットワークから切断されていない各情報処理装置(切断されていない情報処理装置が1台であるときは、その1台の情報処理装置)で、「機器が切断されました」「機器が3台に減少しました」「CDプレーヤが切断されました」「マスターが切断され、別の機器がマスターになりました」などの音声アナウンスによって、そのときのネットワークシステムの状況を呈示する。