明 細 書 記憶媒体、 情報処理装置および方法 技術分野
本発明は、 記録媒体、 情報処理装置および方法に関し、 特に、 情報 を処理するために必要なハードウエアの変更または改良が容易にでき るようにした記録媒体、 情報処理装置および方法に関する。
また、 より迅速に異常なステートを回復することができるようにし た記録媒体、 情報処理装置および方法に関する。 背景技術
第 1図には、 従来の音楽配信サービスシステムの配信側の装置を構 成するエンコーダ 1 0の機能的構成例 (エンコード処理用のプロダラ ムの構成例) が示されている。 なお、 この音楽配信サービスシステム の配信側の装置は、 このエンコーダ 1 0の他、 エンコーダ 1 0におけ るエンコード処理を制御する制御端末 (図示せず) 、 およびェンコ一 ドされる音楽デ一夕 (以下、 PCM (Pulse Code Modu 1 a t i on)非圧縮 音楽データと称する) をエンコーダ 1 0に供給したり、 エンコーダ 1 0によりエンコードされた音楽データ (以下、 PCM圧縮音楽データ と称する) を記憶し、 音楽配信サービスの利用者 (受信側) に配信す るサーバ (図示せず) から構成されている。
エンコーダ 1 0には、 エンコード処理を制御するための制御デ一夕 が転送されるアラーム LAN (alarm Local Area Network) との通信 を制御するネットワークカード、 PCM非圧縮音楽データおよび PCM圧縮 音楽データ (以下、 これらを個々に区別する必要がない場合、 単に、
音楽データと称する) が転送されるメディアム LAN (med i um LAN)との 通信を制御するネットワークカード、 およびエンコード処理を実行す るエンコードカードなどのハードウエアが設けられている。
第 1図に示すエンコード処理用のプログラムは、 制御データ入出力 プロセス 1 1、 ネッ トワークカードドライバプロセス 1 2、 メイン処 理プロセス 1 3、 ネットワークカードドライバプロセス 1 4、 および エンコードカードドライバプロセス 1 5の 5つのプロセス (図中、 実 線の枠で示されている要素) から構成されている。 なお、 プロセスは 、 実行可能な所定のプログラムで構成され、 データ領域 (バッファや レジス夕など) を管理し、 各処理は、 このプロセス単位で実行される 制御デ一夕入出力プロセス 1 1は、 メイン処理プロセス 1 3と通信 を行う。 制御デ一夕入出力プロセス 1 1は、 ネットワークカードドラ ィバプロセス 1 2を介して、 制御端末から送信されてくる、 ェンコ一 ド処理に関する各種コマンドを受信し、 メイン処理プロセス 1 3に出 力する。 制御デ一夕入出力プロセス 1 1はまた、 メイン処理プロセス 1 3から供給される、 例えば、 エンコード処理が成功したことを示す メッセージやェンコ一ド処理が失敗したことを示すエラーメッセージ などを、 ネッ トワークカードドライバプロセス 1 2を介して制御端末 に出力する。 なお、 以下において、 制御データ入出力プロセス 1 1お よびメイン処理プロセス 1 3との間で授受されるコマンドゃエラーメ ッセージを、 個々に区別する必要がない場合、 単に、 制御データと称 する。
メイン処理プロセス 1 3は、 ネッ トワークカードドライバプロセス 1 4を介して、 サーバ (図示せず) から送信されてくる、 例えば、 P C M非圧縮音楽データを受信し、 エンコードカードドライバプロセス 1
5を介して、 エンコードカードに供給する。 メイン処理プロセス 1 3 はまた、 ェンコ一ドカ一ドドライバプロセス 1 5を介してェンコ一ド カードを制御し、 制御データ入出力プロセス 1 1からの制御データに 基づくェンコ一ド処理をェンコ一ドカ一ドに実行させる。 この例の場 合、 エンコードカードにおいて、 サンプリング周波数が 48KHZである M PEG (Moving Picture Experts Group) 1 layer 2に準拠したェン コード処理 (以下、 MPEG 1対応エンコード処理と称する) 、 またはサ ンプリング周波数が 44. IKHzである ATRAC(adapt ive transform aco ustic coding) 1 (商標) の規格に準拠したエンコード処理 (以下、 ATRAC 1対応エンコード処理と称する) が実行される。
メイン処理プロセス 1 3は、 ェンコ一ド処理を施して得られた PCM 圧縮音楽データを、 エンコードカードドライバプロセス 1 5を介して 、 エンコードカードから受け取り、 それを、 ネッ トワークカードドラ ィバプロセス 14を介してサーバに供給する。
次に、 制御データ入出力プロセス 1 1およびメイン処理プロセス 1 3について説明する。 制御デ一夕入出力プロセス 1 1は、 制御部 2 1 、 ネットワークカード入力 I/F (イン夕一フェース) 22、 およびネッ トワークカード出力 I/F2 3の 3つのプログラム (図中、 点線の枠で 示されている要素) 、 並びにそれらを実行するために必要なデータ領 域を有している。
ネッ トワークカード入力 I/F 22は、 ネッ トワークカードドライバ プロセス 1 2により受信された制御端末からの制御データを受け取り 、 制御部 2 1に出力する。 ネッ トワークカード出力 I/F2 3は、 制御 部 2 1を介して供給される、 メイン処理プロセス 1 3からの、 例えば 、 エラーメッセージを受け取り、 ネッ トワークカードドライバプロセ ス 1 2に出力する。
制御部 2 1は、 ネットワークカード入力 I /F 2 2およびネットヮ一 クカード出力 I /F 2 3を制御するとともに、 メイン処理プロセス 1 3 の制御部 3 1と通信を行う。
次に、 メイン処理プロセス 1 3の構成について説明する。 メイン処 理プロセス 1 3は、 制御部 3 1、 ネットワークカード入出力 I /F 3 2 、 エンコードエンジン入出力 I /F 3 3、 エンコードエンジン入出力 I /F 3 4、 エンコードエンジン 3 5、 エンコードカード入出力 I /F 3 6、 およびエンコードカード入出力 I /F 3 7の 7つのプログラム (図中、 点線の枠で示されている要素) 、 並びにそれらを実行させるために必 要なデータ領域を有している。
ネットワークカード出力 I /F 3 2は、 ネッ卜ワークカードドライバ プロセス 1 4により受信された PCM非圧縮音楽データを受け取り、 制 御部 3 1に出力したり、 制御部 3 1を介して供給される、 PCM圧縮音 楽データを、 ネッ卜ワークカードドライバプロセス 1 4に出力する。 エンコードエンジン入出力 I /F 3 3は、 制御部 3 1を介して入力さ れた PCM非圧縮音楽データのうち、 ATRAC 1対応エンコード処理され る PCM非圧縮音楽データを受け取り、 エンコードエンジン 3 5に出力 する。 エンコードエンジン入出力 I /F 3 3はまた、 エンコードェンジ ン 3 5から入力される ATRAC 1対応ェンコ一ド処理された PCM圧縮音 楽データを、 制御部 3 1に出力する。
エンコードエンジン入出力 I /F 3 4は、 制御部 3 1を介して入力さ れた PCM非圧縮音楽デ一夕のうち、 MPEG 1対応エンコード処理される PCM非圧縮音楽データを受け取り、 エンコードエンジン 3 5に出力す る。 エンコードエンジン入出力 I /F 3 4はまた、 エンコードエンジン 3 5から入力される MEPG 1対応エンコード処理が施された PCM圧縮音 楽データを、 制御部 3 1に出力する。
エンコードカード入出力 I /F 3 6は、 制御部 3 1を介して入力され た P CM非圧縮音楽データのうち、 ATRAC 1対応ェンコ一ド処理される P CM非圧縮音楽データを受け取り、 エンコードカードドライバプロセス 1 5に出力する。 エンコードカード入出力 I /F 3 6はまた、 ェンコ一 ドカードドライバプロセス 1 5から入力される ATRAC 1対応ェンコ一 ド処理された P CM圧縮音楽データを、 制御部 3 1に出力する。
エンコードカード入出力 I /F 3 7は、 制御部 3 1を介して入力され た P CM非圧縮音楽データのうち、 MPEG 1対応エンコード処理される PC M非圧縮音楽データを受け取り、 エンコードカードドライバプロセス 1 5に出力する。 エンコードカード入出力 I /F 3 7はまた、 ェンコ一 ドカードドライバプロセス 1 5から入力される MEPG 1対応ェンコ一ド 処理が施された P CM圧縮音楽データを、 制御部 3 1に出力する。
エンコードエンジン 3 5は、 エンコードエンジン入出力 I /F 3 3、 3 4から供給された PCM非圧縮音楽デ一夕を、 ソフトウェア的に、 ATR AC 1対応エンコード処理、 または MPEG 1対応エンコード処理し、 得ら れた PCM圧縮音楽データを、 それぞれに戻す。
エンコーダ 1 0は以上のように構成されているが、 制御デ一夕入出 力プロセス 1 1乃至ェンコ一ドカードドライバプロセス 1 5を構成す る各プログラムは、 エンコーダ 1 0に設けられた、 ネットワーク力一 ドゃェンコードカ一ドなどの所定のハ一ドウエアに依存して構築され ている。
従って、 例えばインターネット、 デジタル衛星放送、 地上波デジタ ル放送等の伝送媒体に対応して、 エンコーダ 1 0に設けられているネ ットワークカードやエンコードカードを変更したり、 拡張したりする 場合、 各プロセスを再構築する必要があり、 時間および費用がかかる 課題があった。
また、 例えば、 エンコーダ 1 0に設けられたハードウェアとしての ネットワークカードやエンコードカードを制御するィン夕ーフェース プログラム (ネットワークカード入力 I /F 2 2、 ネットワークカード 出力 I /F 2 3、 ネットワークカード入出力 I /F 3 2乃至エンコードカー ド入出力 I /F 3 7 ) およびドライバプログラム (ネットワークカード ドライバプロセス 1 2、 1 4、 およびエンコードカードドライバプロ セス 1 5を構成するプログラム) は、 通常、 エンコーダ 1 0の製造業 者により作成される。
しかしながら、 エンコーダ 1 0の 1つの部品としてのハードウエア の機能がより高性能になると、 部品としてのハードウェアを組み込ん でエンコーダ 1 0を製造する製造業者が、 部品としてのハードウェア のインターフェースプログラムやドライバプログラムを直接作成する ことは、 非効率的となり、 八一ドウエアの製造業者 (部品の製造業者 ) が各プログラムを作成し、 ハードウェアとともにエンコーダ 1 0の 製造業者に提供することが多くなる。
このような場合、 エンコーダ 1 0の製造業者は、 部品としてのハ一 ドウエアの詳細は判らなくなるため、 それを制御する制御部 2 1や制 御部 3 1の作成が困難になり、 ますます、 ハードウェアの変更や拡張 も困難になる課題があった。
更に、 上述のようにエンコーダ 1 0は構成されているが、 プロダラ ムの処理に異常が発生した場合、 プログラムの処理を一旦終了させる ようにしているので、 処理を再開させるのに時間がかかる課題があつ た。 発明の開示
本発明はこのような状況に鑑みてなされたものであり、 ハードゥエ
ァの変更や拡張が容易にできるようにするものである。
更に、 プログラムの処理の異常を迅速に回復することができるよう にするものである。
本発明の記憶媒体に記憶されるプログラムは、 制御部とハードゥエ ァとの間に位置し、 制御部からのメッセージに基づいてハードウェア を制御し、 制御部と通信する第 1のプロセスと、 第 1のハードウェア および第 2のハードウエアと通信可能な第 2のプロセスと、 第 1のプ ロセスおよび第 2のプロセスと通信すると共に、 第 1のハ一ドウエア に対応するィンタ一フェース処理を実行する第 3のプロセスと、 第 1 のプロセスおよび第 2のプロセスと通信すると共に、 第 2のハードウ エアに対応するィンターフェース処理を実行する第 4のプロセスとを 備え、 第 1のプロセスは、 制御部からのメッセージに基づいて、 第 3 のプロセスおよび第 4のプロセスのいずれか一方にメッセージを出力 することを特徵とする。
本発明の記憶媒体に記憶されるプログラムは、 制御部とハードゥエ ァとの間に位置し、 制御部からのメッセージに基づいてハードウエア を制御するカプセル化されたプロセスを含み、 プロセスに異常が生じ たとき、 当該プロセスは、 ハードウェアとのデータの授受に用いられ る第 1のバッファを初期化する第 1のパス、 制御部とのデータの授受 に用いられる第 2のバッファを開放し、 第 2のバッファを確保し、 第 2のバッファを初期化し、 および第 1のバッファの初期化する第 2の パス、 および第 2のバッファを開放し、 および第 1のバッファを開放 する第 3のパスのいずれかにより初期化されることを特徴とする。 図面の簡単な説明
第 1図は、 従来のエンコーダの機能的構成例を示すブロック図、 第
2図は、 本発明を適用した音楽配信サービスシステムの構成例を示す 図、 第 3図は、 第 2図のエンコーダの構成例を示す図、 第 4図は、 サ バイバルタイムを説明する図、 第 5図は、 リアルタイム OSの原理を説 明する図、 第 6図は、 第 2図のエンコーダの機能的構成例を示す図、 第 7図 A〜第 7図 Bは、 第 6図におけるプロセスの ATRACエンコード 処理を説明する図、 第 8図 A〜第 8図 Bは、 第 6図におけるプロセス の MPEGエンコード処理を説明する図、 第 9図は、 第 6図のプロセスの ステートの遷移を説明する図、 第 1 0図は、 正常時における初期化処 理を説明するフローチャート、 第 1 1図 A〜第 1 1図 Cは、 プロセス 間通信用メッセージの構成を説明する図、 第 1 2図 A〜第 1 2図 Bは 、 プロセス間通信用メッセージの他の構成を説明する図、 第 1 3図は 、 プロセスの処理を説明するフローチャート、 第 1 4図は、 第 6図の メインアプリケーションの動作を説明するフローチャート、 第 1 5図 は、 第 6図のェンコ一ド処理マネージャの動作を説明するフ口一チヤ ート、 第 1 6図は、 異常時の初期化処理時におけるプロセスのステ一 トの遷移を説明する図、 第 1 7図は、 異常時の初期化処理を説明する フローチャート、 第 1 8図は、 異常時の初期化処理を説明するアロー チャート、 第 1 9図は、 本発明を適用した音楽配信サービスシステム の他の構成例を示す図、 第 2 0図は、 第 1 9図の端末の構成例を示す ブロック図、 第 2 1図は、 第 1 9図の端末の機能的構成例を示すプロ ック図である。 発明を実施するための最良の形態
第 2図は、 本発明を適用した音楽配信サービスシステムの配信側の 構成例を示している。 この例の場合、 例えば、 1 00BASE-TXイーサネ ット (商標) からなる、 アラーム LAN 1 0 1およびメディアム LAN 1 0
2が設けられている。 アラーム LAN 1 0 1には、 端末 1 1 1およびェ ンコーダ 1 1 2が接続され、 メディアム LAN 1 02には、 エンコーダ 1 1 2およびサーバ 1 1 3が接続されている。
端末 1 1 1は、 エンコーダ 1 1 2を制御するためのプログラムから なる制御プロセス Wを有しており、 その制御プロセス Wに基づいて、 アラーム LAN 1 0 1を介してエンコーダ 1 1 2と通信して、 ェンコ一 ダ 1 1 2を制御し、 所定のエンコード処理を実行させる。。
エンコーダ 1 1 2は、 端末 1 1 1により制御され、 サーバ 1 1 3に 保持されている、 CD-DA(Compact Disc-Digital Audio)などの PCM 非圧縮音楽データを、 メディアム LAN 1 0 2を介して受信し、 ATRAC 1または MPEG 1 audio layer 3、 いわゆる MP 3の規格に準拠したェン コード処理を実行する。 エンコーダ 1 1 2はまた、 エンコードして得 られた PCM圧縮音楽データを、 メディアム LAN 1 02を介して、 サーバ 1 1 3に、 例えば、 ファイル転送ベース ( (ファイル転送プロトコル (ftp:file transfer protocol) ) で転送する。
サーバ 1 1 3は、 PCM非圧縮音楽デ一夕を記録し、 それをェンコ一 ダ 1 1 2に供給したり、 エンコーダ 1 1 2からの PCM圧縮音楽データ を記録し、 要求に応じて、 音楽配信サービスの利用者 (受信側) に配 信する。
このように、 制御デ一夕が転送されるアラーム LAN 1 0 1を、 音楽 データが転送されるメディアム LAN 1 0 2とは別に設けるようにする ことで、 エンコード処理および音楽データの配信処理がより効率的に 行われる。
第 3図は、 エンコーダ 1 1 2の構成例を示している。 CPU (Centra 1 Processing Unit) 1 2 1は、 ROM (Read Only Memory) 1 22 又はハードディスク 1 2 7に記憶されている、 例えば、 エンコード処
理用のプログラムを RAM (Random Access Memory) 1 2 3に展開し 、 それに従ってエンコード処理を実行する。 RAMI 2 3には、 CPU 1 2 1が、 例えば、 エンコード処理を実行する上において必要なデータな どが適宜記憶される。 また、 RAM I 2 3には、 必要なデータバッファ 領域が確保される。
ネットワークカード 1 24は、 アラーム LAN 1 0 1に接続され、 ァ ラーム LAN 1 0 1を介して、 制御データを受信したり、 送信する。 ネットワーク力一ド 1 2 5は、 メディアム LAN 1 0 2に接続され、 メディアム LAN 1 0 2を介して、 サーバ 1 1 3から送信されてくる PCM 非圧縮音楽デ一夕を受信したり、 エンコードカード 1 2 6によりェン コードされた PCM圧縮音楽デ一夕を、 サーバ 1 1 3に送信する。
エンコードカード 1 2 6は、 ネットワークカード 1 2 5により受信 された PCM非圧縮音楽デ一夕を、 ATRAC 1に準拠したエンコード処理 (ATRAC 1対応エンコード処理) 、 または MEPG 1 audio layer 3に準 拠したエンコード処理 (MPEG 1対応エンコード処理) する。
ハードディスク 1 2 7は、 CPU 1 2 1が実行するプログラムの他、 ネットワークカード 1 2 5により受信された PCM非圧縮音楽データや 、 エンコードカード 1 2 6によりェンコ一ドされた PCM圧縮音楽デー 夕を記憶する。
この例の場合、 音楽デ一夕は、 イーサネットであるメディアム LAN 1 0 2上に転送されるので、 PCM非圧縮音楽デ一夕は、 リアルタイム でエンコードされない。 サーバ 1 1 3から供給された PCM非圧縮音楽 データは、 はじめに、 ハードディスク 1 2 7に記憶され、 所定のタイ ミングで、 エンコードカード 1 2 6に供給され、 エンコードされる。 その後、 エンコードされた PCM圧縮音楽データは、 ハードディスク 1 2 7に記憶される。 このように、 ハードディスク 1 2 7を一時バッフ
ァとして利用することより、 PCM非圧縮音楽デ一夕は、 適切にェンコ 一ドされる。
イン夕一フェース 1 2 8は、 ネットワークカード 1 2 4、 ネットヮ —クカード 1 2 5、 エンコードカード 1 2 6、 ハードディスク 1 2 7 と、 CPU 1 2 1との間に配置され、 インターフェース処理を実行する なお、 CPU 1 2 1、 ROM 1 2 2、 RAM 1 2 3 , およびィンターフェ一 ス 1 2 8は、 1つのマザ一ポード 1 2 0に実装されている。
この音楽配信サービスシステムは、 リアルタイム OS (Operating S ystem) に基づき制御される。 リアルタイム OSは、 複数のタスク (プ 口セス) を同時に動作させることが可能なマルチタスク OSである。 非 リアルタイム OSでは、 所定の処理を実行している最中に、 他のィベン ト、 すなわち外部からの要求が発生したとしても、 そのイベントハン ドラが直ちには起動されない場合がある。 これに対してリアルタイム OSでは、 予め設定された所定の時間内に、 イベントハンドラが起動さ れることが保証されている。 すなわち、 第 4図に示されるように、 ク ロックにより定められた所定の時間 (サバイバルタイム) 内において 開始された処理は、 そのサバイバルタイム内において終了される。 第 5図は、 リアルタイム OSの基本的な概念を模式的に表している。 各プロセスは、 生成されると、 動作状態、 待機状態、 および動作可能 状態の 3つの状態のいずれかに順次遷移するように管理される。 各プ ロセスは、 フラグ管理され、 動作状態から待機状態に遷移するとき、 フラグ待ちを指示するコマンド waitFlagが発行され、 待機状態から 動作可能状態へと遷移するとき、 フラグに値をセットするコマンド se tF lagが発行される。
同時に複数のプロセスが存在可能であり、 複数のプロセスのそれぞ
れには、 優先順位が割り当てられる。 リアルタイム OSにより、 動作可 能状態にあるプロセスの中で最も優先順位の高いプロセスに実行権が 渡される。
リアルタイム OSでは、 このようにイベントの発生によって、 動作状 態にあるプロセスを高速に切り換えることができるようになされてい る。
第 6図は、 エンコーダ 1 1 2の機能的構成例 (エンコード処理用の プログラムの構成例) を示している。 このエンコード処理用のプログ ラムは、 カプセルマネージャ 1 5 1、 エンコード制御アプリケーショ ン 1 5 2、 およびメインアプリケーション 1 5 3の 3つのプロセス ( 実施可能なプログラムとそれを実行するために必要なデータ領域を有 している) の他、 所定のプロセスがブロック化 (カプセル化) された 制御デ一夕入出力カプセル 1 5 4、 音楽データ入出力カプセル 1 5 5 、 およびエンコード処理カプセル 1 5 6の 3つのカプセル (図中、 2 重線の枠で示されている要素) から構成されている。 なお、 図中、 実 線の枠で示されている要素は、 プロセスである。
カプセルマネージャ 1 5 1は、 メインアプリケーション 1 5 3を介 して、 エンコード制御アプリケーション 1 5 2、 制御データ入出力力 プセル 1 5 4、 音楽データ入出力カプセル 1 5 5、 およびエンコード 処理カプセル 1 5 6を制御する。
ェンコ一ド制御アプリケーション 1 5 2は、 メインアプリケ一ショ ン 1 5 3と通信して、 例えば、 カプセルマネージャ 1 5 1からの指令 を受信し、 それに基づいて制御データ入出力カプセル 1 5 4を制御す る。 メインアプリケ一ション 1 5 3は、 カプセルマネージャ 1 5 1と 直接通信し、 カプセルマネージャ 1 5 1からの指令に基づいて音楽デ 一夕入出力カプセル 1 5 5およびェンコ一ド処理カプセル 1 5 6を制
御する。
制御データ入出力カプセル 1 5 4は、 エンコード制御マネージャ 1 6 1により管理される。 そのェンコ一ド制御マネージャ 1 6 1は、 ェ ンコード制御アプリケーション 1 5 2からの指令により、 ネッ トヮ一 クカード入力 I /Fプロセス 1 6 2 (以下、 ネッ トワークカード入力 I/F と略称する。 他のプロセスについても同様である) 、 ネットワーク力 ード出力 I /F 1 6 3、 およびネッ トワーク力一ドドライバ (プロセス ) 1 6 4を生成したり、 消去する。
ネッ トワークカード入力 I /F 1 6 2は、 ネッ トワークカード 1 2 4 、 およびネットワークカードドライノ、 1 6 4を介して、 端末 1 1 1の 制御プロセス Wからの制御デ一夕 (コマンド) を受信し、 エンコード 制御マネージャ 1 6 1に出力する。 ネットワーク力一ド出力 I /F 1 6 3は、 エンコード制御アプリケ一ション 1 5 2とエンコード制御マネ —ジャ 1 6 1を介して、 メインアプリケーション 1 5 3からの制御デ 一夕 (メッセージ) を受信し、 ネッ トワークカードドライバ 1 6 4に 出力する。
ネッ トワークカードドライバ 1 6 4は、 ネッ トワークカード 1 2 4 に対して入出力インタ一フェース処理を実行し、 アラーム LAN 1 0 1 上に転送される制御デ一夕 (コマンド) を受信し、 ネッ トワークカー ド入力 I /F 1 6 2に出力したり、 ネッ トワークカード出力 I/F 1 6 3か ら、 制御データ (メッセージ) を受信し、 ネッ トワークカード 1 2 4 に出力する。
音楽データ入出力カプセル 1 5 5は、 デ一夕入出力マネージャ 1 7 1により管理される。 このデータ入出力マネージャ 1 7 1は、 メイン アプリケーション 1 5 3からの指令により、 ネッ トワークカード入出 力 I /F 1 7 2 (プロセス) およびネッ トワークカードドライバ 1 7 3
(プロセス) を生成したり、 消去する。
ネットワークカード入出力 I/F 1 7 2は、 ネッ トワーク力一ド 1 2 5とネッ トワークカードドライバ 1 7 3を介して、 サーバ 1 1 3から PCM非圧縮音楽デ一夕を受信し、 データ入出力マネージャ 1 7 1に出 力したり、 データ入出力マネージャ 1 7 1から、 PCM圧縮音楽データ を受信し、 ネッ トワークカードドライバ 1 7 3に出力する。
ネットワークカードドライバ 1 7 3は、 ネッ 卜ワークカード 1 2 5 に対して入出力イン夕一フェース処理を実行し、 メディアム LAN 1 0 2上に転送された PCM非圧縮音楽デ一夕を受信し、 ネッ トワーク力一 ド出力 I/F 1 7 2に出力する。 ネッ 卜ワークカードドライバ 1 7 3は また、 ネットワークカード入出力 I/F 1 7 2から、 PCM圧縮音楽データ を受信し、 ネッ トワークカード 1 2 5に出力する。
ェンコ一ド処理カプセル 1 5 6は、 ェンコ一ド処理マネージャ 1 8 1により管理される。 このエンコード処理マネージャ 1 8 1は、 メイ ンアプリケーション 1 5 3からの指令により、 エンコードエンジン入 出力 I/F 1 8 2、 エンコードエンジン入出力 I/F 1 8 3、 エンコードェ ンジン 1 84、 エンコードカード入出力 I/F 1 8 5、 エンコードカー ド入出力 I/F 1 8 6、 およびエンコードカードドライバ 1 8 7 (いず れもプロセス) を生成したり、 消去する。 エンコード処理マネージャ 1 8 1はまた、 ソフトウェア (エンコードエンジン 1 84) によるェ ンコードと、 ハードウェア (エンコードカード 1 2 6 ) によるェンコ —ドの識別処理、 並びに、 ATRAC 1対応エンコード処理と MPEG 1対応 ェンコ一ド処理の識別処理を行う。
エンコードエンジン入出力 I/F 1 8 2は、 ェンコ一ド処理マネージ ャ 1 8 1から、 ATRAC 1対応エンコード処理される PCM非圧縮音楽デ —夕を受信し、 エンコードエンジン 1 8 4に出力する。 エンコードェ
ンジン入出力 I /F 1 8 2はまた、 エンコードエンジン 1 8 4から、 ATR AC 1対応エンコード処理された PCM圧縮音楽データを受信し、 ェンコ 一ド処理マネージャ 1 8 1に出力する。
エンコードエンジン入出力 I /F 1 8 3は、 エンコード処理マネージ ャ 1 8 1から、 MPEG 1対応エンコード処理される PCM非圧縮音楽デ一 夕を受信し、 エンコードエンジン 1 8 4に出力する。 エンコードェン ジン入出力 I /F 1 8 3はまた、 エンコードエンジン 1 8 4から、 MEPG 1対応エンコード処理された PCM圧縮音楽データを受信し、 ェンコ一 ド処理マネージャ 1 8 1に出力する。
エンコードエンジン 1 8 4は、 ソフトウェアによる ATRAC 1対応ェ ンコード処理、 またはソフトウエアによる MPEG 1対応ェンコ一ド処理 を、 エンコードエンジン入出力 I /F 1 8 2、 1 8 3から供給された制 御データに基づき実行する。
エンコード力一ド入出力 I /F 1 8 5は、 エンコード処理マネージャ 1 8 1から、 ATRAC 1対応エンコード処理される PCM非圧縮音楽デー 夕を受信し、 エンコードカードドライバ 1 8 7に出力する。 ェンコ一 ドカード入出力 I /F 1 8 5はまた、 エンコードカードドライバ 1 8 7 から、 ATRAC 1対応エンコード処理された PCM圧縮音楽デ一夕を受信 し、 エンコード処理マネージャ 1 8 1に出力する。
エンコードカード入出力 I /F 1 8 6は、 エンコード処理マネージャ 1 8 1力、ら、 MEPG 1対応エンコード処理される PCM非圧縮音楽データ を受信し、 エンコードカードドライバ 1 8 7に出力する。 エンコード カード入出力 I /F 1 8 6はまた、 エンコードカードドライバ 1 8 7力、 ら、 MEPG 1対応エンコード処理された PCM圧縮音楽データを受信し、 エンコード処理マネージャ 1 8 1に出力する。
エンコードカードドライバ 1 8 7は、 エンコードカード 1 2 6に対
して入出力ィンターフェース処理を実行し、 エンコードカード入出力
I /F 1 8 5、 1 8 6から、 PCM非圧縮音楽データを受信し、 エンコード カード 1 2 6に出力したり、 エンコードカード 1 2 6から、 ェンコ一 ド処理された PCM圧縮音楽データを受信し、 エンコードカード入出力 I /F 1 8 5、 1 8 6に出力する。 ハ一ドウエアとしてのエンコード力一 ド 1 2 6は、 ATRAC 1対応エンコード処理するとき、 対応する機能を 有するものに取り替えられ、 MPEG 1対応エンコード処理するとき、 対 応する機能を有するものに取り替えられる。
次に、 第 7図のフローチャートを参照して、 ATRAC 1対応ェンコ一 ド処理を実行する場合における各プロセスの全体的な処理について説 明する。
なお、 電源がオンとされると、 リアルタイム O Sがカプセルマネー ジャ 1 5 1を生成すると共に、 カプセルマネージャ 1 5 1は、 メイン アプリケーション 1 5 3に、 音楽データ入出力カプセル 1 5 5とェン コード処理カプセル 1 5 6を生成させるとともに、 エンコード制御ァ プリケーション 1 5 2に、 制御データ入出力カプセル 1 5 4を生成さ せる。
端末 1 1 1の制御プロセス Wから、 アラーム LAN 1 0 1を介してェ ンコーダ 1 1 2のネットワークカード 1 2 4に ATRAC 1対応ェンコ一 ド処理が指令されると、 この指令は、 制御デ一夕入出力カプセル 1 5 4のネットワークカードドライバ 1 6 4からネットワークカード入力 I /F 1 6 2を介してェンコ一ド制御マネージャ 1 6 1に供給される。 エンコード制御マネージャ 1 6 1は、 この指令を受けると、 ステップ S 1において、 エンコード制御アプリケーション 1 5 2に対して、 AT RAC 1対応エンコード処理の開始を要求する。
ェンコ一ド制御アプリケーション 1 5 2は、 ステツプ S 1 1におい
て、 エンコード制御マネージャ 1 6 1からの要求を受け取る。 この要 求には、 エンコードの種類とエンコードを実行する処理部を特定する コード情報が含まれている。 この例の場合、 エンコードの種類は、 AT RAC 1対応エンコード処理とされ、 エンコードの実行処理部は、 ハー ドウエア (エンコードカード 1 2 6 ) とされる。
ェンコ一ド制御アプリケ一シヨン 1 5 2は、 ェンコ一ド制御マネー ジャ 1 6 1からの要求を受け取ると、 ステップ S 1 2において、 その 要求に基づいて、 ATRAC 1対応ェンコ一ド処理の許可をメインアプリ ケーション 1 5 3に要求する。
メインアプリケーション 1 5 3は、 ステップ S 3 1において、 ェン コード制御アプリケ一ション 1 5 2からの要求を受け取ると、 その要 求に対応する処理を実行できるか否かを判定し、 実行できない場合に は、 その旨をエンコード制御アプリケーション 1 5 2に応答する。 ェ ンコード制御アプリケーション 1 5 2は、 この応答結果を受信した場 合、 対応する応答を、 さらにエンコード制御マネージャ 1 6 1に通知 する。 エンコード制御マネージャ 1 6 1は、 この通知に対応する応答 を、 さらにエンコード制御マネージャ 1 6 1、 ネッ トワークカード出 力 I /F 1 6 3、 ネットワークカードドライバ 1 6 4、 ネッ トワーク力 ード 1 2 4を介して、 端末 1 1 1の制御プロセス Wに通知する。
第 7図の例の場合、 メインアプリケーション 1 5 3は、 ATRAC 1対 応エンコード処理を実行できると判定し、 対応する許可応答を、 ステ ップ S 3 2において、 ェンコ一ド制御アプリケ一ション 1 5 2に通知 する。
ェンコ一ド制御アプリケーション 1 5 2は、 ステツプ S 1 3におい て、 メインアプリケーション 1 5 3からの許可応答を受信すると、 ス テツプ S 1 4において、 エンコード制御マネージャ 1 6 1に、 ATRAC
1対応エンコード処理の開始を示す応答を出力する。 エンコード制御 マネージャ 1 6 1は、 この応答を、 ステップ S 2において受信する。 エンコード制御マネージャ 1 6 1は、 この応答に対応する通知を、 上 述したようにして、 さらに制御プロセス Wに通知する。
メインアプリケーション 1 5 3は、 ステップ S 3 2において、 ATRA C 1対応エンコード処理の許可応答をェンコ一ド制御アプリケーショ ン 1 5 2に出力した後、 ステップ S 3 3において、 音楽データ入出力 カプセル 1 5 5のデ一夕入出力マネージャ 1 7 1に、 ェンコ一ド処理 の対象とされる基データの取得を要求する (基データ取得要求を出力 する) 。 この基データ取得要求には、 その基デ一夕が記憶されている 記憶部のアドレスの他、 取得するデ一夕量等も含まれている。
ステップ S 8 1において、 データ入出力マネージャ 1 7 1は、 メイ ンアプリケーション 1 5 3からの要求を受け取ると、 ステップ S 8 2 において、 その要求に基づいて、 エンコードする基データを、 指定さ れたアドレスから取得する処理を実行する。
例えば、 基データがハードディスク 1 2 7に記憶されている場合、 データ入出力マネージャ 1 7 1は、 ネットワークカード入出力 I /F 1 7 2、 ネットワークカードドライバ 1 7 3、 ネットワークカード 1 2 5を介してハードディスク 1 2 7にアクセスし、 指定されたァドレス から、 指定された量の PCM非圧縮音楽データを取得する。
なお、 データ入出力マネージャ 1 7 1は、 基データが図示せぬ CD-R 等に記録されている場合には、 そこにアクセスし、 基データを取得す る。 また、 デ一夕入出力マネージャ 1 7 1は、 基データがサーバ 1 1 3に記録されている場合には、 アラーム LAN 1 0 1を介してサーバ 1 1 3にアクセスし、 ミディアム LAN 1 0 2を介してサーバ 1 1 3から 基データの転送を受ける。 取得された PCM非圧縮音楽データは、 RAM I
2 3のバッファ領域に、 一時的に格納される。
このようにして、 PCM非圧縮音楽デ一夕が取得されると、 ステップ S 8 3において、 デ一夕入出力マネージャ 1 7 1は、 メインアプリケ ーシヨン 1 5 3に対して、 基デ一夕が取得されたことを表す基デ一夕 取得応答を送信する。
メインアプリケーション 1 5 3は、 ステップ S 3 4において、 デー 夕入出力マネージャ 1 7 1からの基データ取得応答を受信すると、 ス テツプ S 3 5において、 ェンコ一ド処理マネージャ 1 8 1にェンコ一 ド開始を要求する。 この要求には、 エンコードの種類が ATRAC 1対応 エンコード処理であること、 並びにエンコードの実行処理部がェンコ 一ドカ一ド 1 2 6であることを表す情報が含まれている。
エンコード処理マネージャ 1 8 1は、 ステップ S 6 1において、 メ インアプリケーション 1 5 3からのエンコード開始要求を受信すると 、 この要求に対応する処理を実行できるか否かを判定し、 実行できな い場合には、 その旨を表す応答をメインアプリケーション 1 5 3に出 力する。 第 7図の例の場合、 ェンコ一ド処理マネージャ 1 8 1は、 ェ ンコードが実行できると判定し、 ステップ S 6 2において、 ェンコ一 ドを開始することを表す応答をメインアプリケーシヨン 1 5 3に出力 する。
メインアプリケーション 1 5 3は、 エンコード処理マネージャ 1 8 1からのェンコ一ド開始応答を、 ステップ S 3 6において受信する。 これにより、 メインアプリケーション 1 5 3は、 ステップ S 3 5の要 求に対応する処理が、 ェンコ一ド処理マネージャ 1 8 1において受け 入れられたことを知ることができる。
エンコード処理マネージャ 1 8 1は、 ステップ S 6 2において、 メ ィンアプリケ一ション 1 5 3にエンコード開始応答を出力した後、 ス
テツプ S 6 3においてエンコード処理を実行させる。 具体的には、 ェ ンコード処理マネージャ 1 8 1は、 メインアプリケーション 1 5 3か らのエンコード開始要求に基づいて、 エンコードカード入出力 I /F 1 8 5、 エンコードカードドライバ 1 8 7を介してエンコードカード 1 2 6に、 ATRAC 1対応エンコード処理を要求する。 この要求には、 ェ ンコード対象とされる PCM非圧縮音楽デ一夕が保持されている RAM 1 2 3のバッファのアドレスが含まれている。 ェンコ一ドカード 1 2 6は 、 この要求に基づいて、 RAM 1 2 3のバッファ領域に記憶されている P CM非圧縮音楽デ一夕を読み出し、 ATRAC 1対応エンコード処理を実行 する。 エンコードされた PCM圧縮音楽デ一夕は、 RAM I 2 3のバッファ 領域に記憶される。
以上のようにして、 エンコードが終了すると、 ステップ S 6 4にお いて、 エンコード処理マネージャ 1 8 1は、 エンコードが終了したこ とを表すェンコ一ド終了通知を、 メインアプリケーション 1 5 3に出 力する。
メインアプリケーション 1 5 3は、 ステップ S 3 7において、 ェン コード処理マネージャ 1 8 1が出力したエンコード終了通知を受信す ると、 ステップ S 3 8において、 これに対応するエンコード終了応答 を、 ェンコ一ド処理マネージャ 1 8 1に通知する。
エンコード処理マネージャ 1 8 1は、 ステップ S 6 5において、 メ インアプリケーション 1 5 3より出力されたエンコード終了応答を受 信する。 これにより、 エンコード処理マネージャ 1 8 1は、 ェンコ一 ド終了が、 メインアプリケーション 1 5 3に通知されたことを確認す ることができる。
メインアプリケーション 1 5 3は、 ステップ S 3 8において、 ェン コード処理マネージャ 1 8 1にエンコード終了応答を出力した後、 ス
テツプ S 3 9において、 データ入出力マネージャ 1 7 1に対して、 ェ ンコードした結果生成された PCM圧縮音楽データを保存することを要 求する生成データ保存要求を出力する。 この要求には、 データを保存 する媒体のアドレスが含まれている。 例えば、 ハードディスク 1 2 7 に、 このエンコード後の PCM圧縮音楽データを保存する場合、 ハード ディスク 1 2 7のアドレスが含まれている。
データ入出力マネージャ 1 7 1は、 ステップ S 8 4において、 メイ ンアプリケーション 1 5 3からの生成データ保存要求を受け取ると、 ステップ S 8 5において、 その要求に基づいて、 受信したデータを保 存する処理を実行する。 具体的には、 データ入出力マネージャ 1 7 1 は、 例えば、 ハードディスク 1 2 7への保存が要求された場合、 ネッ トワークカード入出力 I /F 1 7 2、 ネットワークカードドライブ 1 7 3、 ネットワークカード 1 2 5を介して、 ハードディスク 1 2 7にァ クセスし、 指定されたアドレスにェンコ一ドされた PCM圧縮音楽デ一 夕を記録させる。
保存先が CD-Rとして指定されている場合には、 ェンコ一ド後の PCM 圧縮音楽データは、 CD-Rの指定されたアドレスに保存される。 また、 保存先がサーバ 1 1 3に指定されている場合、 エンコード後の PCM圧 縮音楽データは、 メディアム LAN 1 0 2を介してサーバ 1 1 3に供給 され、 保存される。
以上のようにして保存が完了したとき、 ステップ S 8 6において、 データ入出力マネージャ 1 7 1は、 データが保存されたことを表す生 成データ保存応答を、 メインアプリケーション 1 5 3に出力する。 メインアプリケーション 1 5 3は、 ステップ S 4 0において、 デ一 夕入出力マネージャ 1 7 1からの生成データ保存応答を受信すると、 ステップ S 4 1において、 ATRAC 1対応ェンコ一ド処理が終了したこ
とを表す終了通知を、 エンコード制御アプリケーション 1 5 2に出力 する。
ェンコ一ド制御アプリケーション 1 5 2は、 ステツプ S 1 5におい て、 メインアプリケーション 1 5 3からの通知を受信すると、 ステツ プ S 1 6において、 エンコード制御マネージャ 1 6 1に、 ATRAC 1対 応エンコード処理が終了したことを通知する。
エンコード処理マネージャ 1 6 1は、 ステップ S 3において、 ェン コード制御アプリケーション 1 5 2からの終了通知を受信すると、 ス テツプ S 4において、 この通知に対応する応答を、 エンコード制御ァ プリケ一シヨン 1 5 2に出力する。
ェンコ一ド制御アプリケーション 1 5 2は、 ステップ S 1 7におい て、 エンコード制御マネージャ 1 6 1からの応答を受信すると、 ステ ップ S 1 8において、 メインアプリケ一ション 1 5 3に対して ATRAC 1対応処理終了応答を送信する。
メインアプリケーション 1 5 3は、 ステップ S 4 2において、 ェン コード制御アプリケーション 1 5 2からの終了応答を受信する。
第 8図は、 MPEG 1対応エンコード処理が実行される場合の処理を表 している。 第 8図のステップ S 1 0 1乃至ステップ S 1 4 2は、 第 7 図の ATRAC 1対応ェンコ一ド処理を実行する場合における、 ステツプ S 1乃至ステップ S 4 2における処理と、 基本的に同様の処理である 。 ただし、 エンコードの種類が、 ATRAC 1対応エンコード処理ではな く、 MPEG 1対応エンコード処理とされている点が異なる。 従って、 第 7図のステップ S 8 2に対応する第 8図のステップ S 1 8 2における 基データ取得処理では、 ATRAC 1対応処理のフォーマツトに基づくデ 一夕の送出量や送出タイミングが、 MPEG 1対応エンコード処理のフォ 一マツ卜に基づくものに変更される。
また、 第 7図のステップ S 6 3の ATRAC 1対応ェンコ一ド処理に対 応する第 8図のステップ S 1 6 3における処理では、 ATRAC 1対応ェ ンコード処理ではなく、 MPEG1対応エンコード処理が実行される。 当 然のことながら、 ATRAC 1と MPEG 1とは、 それぞれ異なるエンコード 方式であるため、 エンコードのデ一夕量の単位、 送出タイミング、 誤 り訂正符号等も異なったものとなる。
このことは、 第 7図のステップ S 8 5に対応する第 8図のステップ S 1 8 5における処理でも同様である。
しかしながら、 これらのエンコードの方式が異なることに起因する 異なる処理は、 全てエンコード処理カプセル 1 5 6内のエンコード処 理マネージャ 1 5 1を中心とする各プロセスや、 音楽デ一夕入出力力 プセル 1 5 5のデータ入出力マネージャ 1 7 1を中心とする各プロセ スが実行する。 従って、 メインアプリケーション 1 5 3、 エンコード 制御アプリケーション 1 5 2等は、 ATRAC 1対応ェンコ一ド処理と MP EG 1対応エンコード処理の違いを微細に認識している必要がない。 すなわち、 メインアプリケーション 1 5 3から見て、 音楽データ入 出力カプセル 1 5 5のデータ入出力マネージャ 1 7 1により実行され るデータ取得処理および保存処理、 並びにェンコ一ド処理カプセル 1 5 6のェンコ一ド処理マネージャ 1 8 1により実行されるェンコ一ド 処理は、 その詳細が隠べいされる。
例えば、 デ一夕入出力マネージャ 1 7 1は、 ハードディスク 1 2 7 からデータを取得する際、 ATA (ADCAdvanced Technology) Attach ment) コマンドを用いるが、 ネットワーク上のサーバ 1 1 3からデ一 夕を取得する際は、 TCP/IP (Transmission Control Protocol/Int ernet Protocol) 上の FTP (File Transfer Protocol) 、 または HT TP (Hyper Text Transport Protocol) を用いる。
また、 CD-Rからデータを取得する場合には、 SCSI (Small Comput er System Interface) インターフェースが用いられ、 CD- Rを用い てデ一夕が取得される場合、 ATAPI (AT Attachment Packet Interf ace) が用いられる。
また、 エンコード処理は、 ATRAC形式のエンコードを高速に行う際 、 エンコードカードドライバ 1 8 7のうち、 ATRACェンコーダドライ バを介して処理が行われるが、 MPEGフォーマツトのェンコードを高速 に行う場合には、 エンコードカードドライバ 1 8 7のうち、 MPEGェン コーダドライバを介して処理が行われる。
このように、 エンコード処理カプセル 1 5 6の内部においては、 様 々なハードウエアドライバプロトコルを用いて処理が行われるが、 メ インアプリケーション 1 5 3は、 データ取得要求、 エンコード開始要 求、 およびデータ保存要求という簡単な 3つのシーケンスだけを有し ていれば良い。
従って、 エンコード処理カプセル 1 5 6や音楽データ入出力カプセ ル 1 5 5は、 これらのプロトコルやデータ取得方法を、 メインアプリ ケ一シヨン 1 5 3に対して隠ぺいするものとなる。
結果的に、 メインアプリケ一ション 1 5 3やエンコード制御アプリ ケーシヨン 1 5 2は、 ただ単に、 エンコードの種類や、 エンコードを 実行する処理が、 ソフトウェアであるのかハードウェアであるのかを 識別するだけでよい。 従って、 メインアプリケーション 1 5 3ゃェン コード制御アプリケーション 1 5 2は、 基本的に、 エンコードの種類 が変更されたり、 拡張されても変更する必要がないか、 変更するにし ても、 わずかで済む。
エンコーダ 1 1 2のエンコード処理用のプログラムは、 以上のよう に構成されるが、 第 6図に示されるプロセス (図中、 実線の枠で示さ
れている要素) のそれぞれは、 第 9図に示す状態遷移図に従ってステ ート (状態) を遷移し、 所定の処理を実行する。
なお、 この第 9図の各ステートは、 第 5図における動作状態を構成 するものである。
第 9図の状態遷移図におけるステートは、 ィグゼキュート (EXECUT E) 、 イニシャライズ 0 (INITIALIZE 0 ) 、 イニシャライズ 1 (INIT IALIZE 1) 、 イニシャライズ 2 (INITIALIZE 2 ) 、 夕一ミネート 1
(TERMINATE 1 ) 、 夕一ミネート 0 (TERMINATEO) 、 エグジット (E XIT) 、 レシーブ (RECEIVE) 、 リプライ (REPLY) 、 マネージ (MANA GE) 、 センド (SEND) 、 およびレディ (READY) の 1 2種類のステー トにより構成されている。
次に、 第 9図の状態遷移図の正常時における場合の状態遷移につい て、 第 1 0図のフローチャートを参照して説明する。
電源がオンされ、 リアルタイム OSが立ち上げられてプロセスが生成 されると、 ステップ S 20 1において、 プロセスは、 ィグゼキュート ステート (EXECUTE) Aとなる。
次に、 ステップ S 202において、 プロセスは、 イニシャライズ 0 ステート (INITIALIZE 0 ) Bに遷移する。 このイニシャライズ 0ス テート (INITIALIZE 0 ) Bにおいては、 カプセル (モジュール) 登 録処理が実行される。 具体的には、 主に、 ハードウェアとのデータの 授受に用いられる第 1のバッファが確保され、 さらに、 その第 1のバ ッファが初期化され (例えば、 0が埋め込まれ) 、 デバイスがオーブ ンになり、 そしてデバイスが正常であるか否かがチェックされる。 こ の処理は、 電源オン時に、 1回だけ必要な処理である。
次に、 ステップ S 20 3において、 プロセスは、 イニシャライズ 0 ステート (INITIALIZE 0 ) Bからイニシャライズ 1ステート (INITI
ALIZE 1 ) Cに遷移し、 カプセル用のリソース確保処理を実行する。 この処理が実行されることより、 主に、 メインアプリケーション 1 5 3との間のデータの授受に用いられる第 2のバッファが確保され、 さ らに、 その第 2のバッファが初期化され、 そしてレジスタが初期化さ れる。
ステップ S 204において、 プロセスは、 イニシャライズ 1ステー ト (INITIALIZE D じから、 イニシャライズ 2ステート (INITIALIZ E2) Dに遷移し、 デバイスを含むカプセルの初期化処理を実行する 。 この初期化処理が実行されることより、 第 1のバッファが再び初期 化される (このとき、 確保処理は行われない) 。
次に、 ステップ S 20 5において、 プロセスは、 イニシャライズ 2 ステート (INITIALIZE 2 ) Dからレディステート (READY) Eに遷移 する。
ステップ S 20 5において、 各プロセスは、 第 9図におけるステー E、 F、 G、 H、 I、 J、 K、 L、 Mのいずれかのステートに遷移 する。 すなわち、 ステップ S 20 6において、 各プロセスは、 終了要 求の処理要求メッセージを受信したか否かを判定し、 終了要求以外の 処理要求メッセージを受信した場合には、 ステップ S 2 0 5に戻り、 対応するステートに遷移する。
ステ一ト E乃至ステ一ト Mのいずれかのステ一トにあるプロセスは 、 ステップ S 20 6において、 終了要求の処理要求メッセージを受信 したと判定した場合、 ステップ S 20 7に進み、 ターミネート 1ステ ート (TERMINATE D Nに遷移し、 ここで、 第 2のバッファの開放処 理が行われる。 次に、 ステップ S 2 08に進み、 プロセスは、 夕一ミ ネート 0ステート (TERMINATEO) 〇に遷移する。 このステートにお いては、 第 1のバッファが開放されるとともに、 デバイスがクローズ
される。
さらに、 ステップ S 2 0 9に進み、 プロセスは、 エグジットステー ト (EXIT) Pに遷移し、 リアルタイム OSが終了され、 電源がオフされ た状態に移行する。
各プロセスは、 他のプロセスと、 プロセス間通信用メッセ一ジを授 受し、 所定のステートから、 第 9図において矢印で示される他のステ 一卜に遷移する。
第 1 1図は、 このプロセス間通信用メッセージのフォーマツトを表 している。 プロセス間通信用メッセージは、 第 1 1図 Aに示すように 、 ヘッダと拡張部分からなり、 それらには、 FTP (File Transfer P rotocol)のフォ一マツトで各データが記載されている。 ヘッダの" u nsigned short type;" には、 第 1 1図 Cに示すように、 メッセージ タイプ (以下、 MSGT(Message Type)と記述する) 、 ファンクション タイプ (以下、 FNCT(Function Type)と記述する) 、 メッセージナン バー (以下、 MSGN(Message number)と記述する) 、 そしてファンク シヨンナンバー (以下、 FNCN( Function Number)と記述する) が設 けられている。
MSGTには、 下記に示すように、 要求するインタラプト、 センド、 レ シ一ブ、 またはリプライの各処理に対応して割り当てられている 0 0 乃至 1 1のデータが格納される。
<処理 > <デ一夕 >
インタラプト(INT (INTERRUPT)) 0 0 B
センド(SND (SEND)) 0 1 B
レシーブ(RCV (RECEIVE)) 1 0 B
リプライ(RPY (REPLY)) 1 1 B
MSGNには、 下記に示すように、 要求する処理に対応して割り当てら
れている所定のデータが格納される。
ぐ処理 > <データ >
クウイ ト(QUT (QUIT)) 0 0 1 B
リセット(RST (RESET)) 0 1 0 B
タ一ミネ一ト(TRM (TERMINATE)) 0 1 I B
リクエスト(REQ (REQUEST)) 1 0 O B
ノーティフアイ (NTF (NOTIFY)) 1 0 I B
リフューズ(RFS (REFUSE)) 1 1 O B
ァクノリッジメント(ACK (ACKNOWLEDGEMENT))
1 1 1 B
FNCTおよび FNCNには、 要求する処理に対応して、 それぞれ下記の 事項を示すデータが格納される。
<FNCT> <FNCN>
エンコード ATRAC 1対応エンコード処理
MPEG 1対応エンコード処理
ファイル転送 put
ge t
ヘッダの" pid— t src— pid" には、 プロセス間通信用メッセージの 送り元(source)のプロセスの IDが、 " pid— t dst_pid" には、 送り 先(destination)のプロセスの IDが、 それぞれ記載される。
プロセス間通信用メッセージの拡張部分には、 例えば、 エンコード される PCM非圧縮音楽データが格納されている場所 (例えば、 ハード ディスク 1 2 7のメモリァドレス) や、 ェンコ一ドされた PCM圧縮音 楽データを格納する場所などが記載されている。
第 1 2図のプロセス間通信用メッセージは、 第 1 1図のプロセス間 通信用メッセージのヘッダのみから構成されている。
次に、 第 1 0図のステップ S 2 0 5、 S 2 0 6における第 9図のス テ一ト E乃至ステート Mの間における状態遷移を説明する。 ここでは 、 端末 1 1 1 (制御プロセス W) からの要求に基づいて、 メインアブ リケ一ション 1 5 3が、 ェンコ一ド処理マネージャ 1 8 1に、 ATRAC 1対応エンコード処理を要求する場合を例として説明する。
なお、 各プロセスは、 第 1 3図に示されるように、 ステップ S 2 2 1において、 処理待ちの状態から、 ステップ S 2 2 2に進み、 所定の 処理を実行し、 その処理が完了すると、 再び、 ステップ S 2 2 1の処 理待ちの状態に戻るようにプログラムされている。 従って、 これから 説明するステートの遷移は、 各プロセスが規定しているものであり、 いずれの方向のステートに遷移するかがステ一トそのものに規定され ているわけではない。 換言すれば、 各プロセスは、 第 9図に矢印で示 されるルートに従って遷移することが予め規則付けられている。
はじめに、 メインアプリケーション 1 5 3の状態遷移を、 第 1 4図 のフローチャートを参照して説明する。 なお、 メインアプリケーショ ン 1 5 3のステ一トは、 第 1 0図のステップ S 2 0 1乃至 S 2 0 5の 処理で、 すでに、 レディステート (READY) Eに遷移しているものと する。
ステップ S 3 1 1において、 メインアプリケーション 1 5 3は、 MS GTに SNDが、 MSGNに REQが、 FNCTにエンコードを示すデータが、 そし て FNCNに ATRAC 1対応エンコード処理を示すデ一夕が、 それぞれ設定 されているヘッダを含むプロセス間通信用メッセ一ジ (以下、 このよ うに MSGTに SNDが、 そして MSGNに REQが設定されているプロセス間通 信用メッセージを、 (SND,REQ) メッセージと記載する。 他のプロセ ス間通信用メッセージの場合も同様とする) を、 エンコード処理マネ —ジャ 1 8 1に送信し、 レディステート (READY) Eからセンドステ
―ト (SEND) Jに遷移する。
なお、 この (SND,REQ) メッセージのヘッダには、 送り元のメイン アプリケーション 1 53の IDが設定された" pid_t src_pid" 、 およ び送り先であるエンコード処理マネージャ 1 8 1の IDが設定された" pid_t dst_pid " が含まれている。 また (SND,REQ) メッセージは 、 第 1 1図に示す構成を有しており、 その拡張部分には、 エンコード される PCM非圧縮音楽データが格納されているハードディスク 1 2 7 のメモリァドレス、 エンコードされた後の PCM圧縮音楽デ一夕が格納 されるハードディスク 1 27のメモリアドレスが記述されている。 また、 第 9図において、 括弧を付加して示すメッセージは、 受信メ ッセージを表し、 括弧を付加しないメッセージは送信メッセージを表 す。
メインアプリケーション 1 5 3はまた、 このとき、 内蔵する夕イマ — tをスタートさせる。
次に、 ステップ S 3 1 2において、 メインアプリケーション 1 53 は、 ステップ S 3 1 1で送信した (SND,REQ) メッセージに応答する プロセス間通信用メッセージ (MSGTに RPYが設定されているメッセ一 ジで、 以下、 このようなメッセージを (RPY,XXX) メッセージと記述 する) が、 エンコード処理マネージャ 1 8 1から受信されるまで待機 し、 受信されたと判定した場合、 ステップ S 3 1 3に進む。 なお、 ( RPY.XXX) メッセージは、 第 1 2図に示した構成を有している。 なお 、 (RPY,XXX) メッセージは、 第 1 2図に示した構成を有している。 すなわち、 ヘッダのみから構成されている。
ステツプ S 3 1 3において、 メインアプリケ一ション 1 5 3は、 ス テツプ S 3 1 2で受信されたと判定された (RPY,XXX) メッセージが 、 (RPY, ACK) メッセージ (MSGTに RPYが、 MSGNに ACKが、 それぞれ
設定されているメッセ一ジ) であるか否かを判定し、 (RPY,ACK) メ ッセージであると判定した場合、 ステップ S 3 1 4に進む。 この例の 場合のように、 エンコード処理が要求されているとき、 エンコード処 理マネージャ 1 8 1は、 エンコード処理が可能であるとき、 (RPY, AC K) メッセージをメインアプリケーション 1 5 3に送信してくる。 ステップ S 3 1 4において、 メインアプリケーション 1 5 3は、 セ ンドステート (SEND) Jからマネージステート (MANAGE) Kに遷移 し、 所定の処理を実行する。 ただし、 いまの場合、 メインアプリケー シヨン 1 5 3は、 特に処理を行わない。 このマネ一ジステート (MANA GE) Kは、 各プロセスに、 必要に応じて所定の処理を実行させること ができるように用意されている。
次に、 ステップ S 3 1 5において、 メインアプリケーション 1 5 3 は、 エンコード終了待ちの (RCV, REQ) メッセージをエンコード処理 マネージャ 1 8 1に送信して、 マネージステート (MANAGE) Kからレ シ一ブステート (RECE I VE) Lに遷移する。 ステップ S 3 1 6におい て、 メインアプリケーション 1 5 3は、 エンコード処理マネージャ 1 8 1から、 エンコード終了待ちメッセージの受領を通知する (SND,NT F) メッセージが受信されるまで待機し、 受信されたと判定した場合 、 ステップ S 3 1 7に進む。
ステップ S 3 1 7において、 メインアプリケーション 1 5 3は、 レ シーブステート (RECE I VE) Lからリプライステート (REPLY) Mに 遷移し、 ステップ S 3 1 6で受信したと判定された (SND, NTF ) メッ セージに応答するための (RPY, NTF ) メッセージをエンコード処理マ ネ一ジャ 1 8 1に送信する。 その後、 ステップ S 3 1 8に進み、 メイ ンアプリケーション 1 5 3は、 リプライステート (REPLY) Mからレ ディステート (READY) Eに遷移し、 処理は終了する。
ェンコ一ド処理マネージャ 1 8 1は、 メインアプリケーション 1 5 3からエンコード要求の (SND, REQ) メッセージを受信した場合、 何 らかの理由によりェンコ一ドを実行することができないとき、 ェンコ ード不可を通知する (RPY, NTF ) メッセージを送信してくる。 そこで 、 この場合、 ステップ S 3 1 3において、 受信された (RPY,XXX) メ ッセージが (RPY,ACK) メッセージではないと判定され、 ステップ S 3 1 4乃至ステップ S 3 1 7の処理はスキップされ、 ステップ S 3 1 8に進み、 メインアプリケーション 1 5 3は、 センドステート (SEND ) Jからレディステート (READY) Eに遷移し、 処理は終了する。 なお、 メインアプリケーション 1 5 3は、 センドステート (SEND) J、 マネ一ジステート (MANAGE) K、 およびレシーブステート (RE C E I VE ) Lでは、 ステップ S 3 1 1でス夕一卜させた夕イマ一 tの計測 時間が所定の時間を超えているか否かを判定し、 超えていないと判定 した場合、 上述した処理を実行するが、 タイマ一 tの計測時間が所定 の時間を超えていると判定した場合 (いわゆるタイムアウトの場合) 、 レディステート (READY) Eに遷移し、 処理を終了させる。
次に、 この例の場合のェンコ一ド処理マネージャ 1 8 1の状態遷移 を、 第 1 5図のフローチャートを参照して説明する。 ステップ S 3 2 1において、 エンコード処理マネージャ 1 8 1は、 エンコード要求待 ちの (RCV,REQ) メッセージをメインアプリケーション 1 5 3に送信 し、 レディステート (READY) Eからレシーブステート (RECE I VE) Fに遷移する。 エンコード処理マネージャ 1 8 1はまた、 このとき、 内蔵するタイマ一 tをスタートさせる。 ·
ステップ S 3 2 2において、 メインアプリケーション 1 5 3から送 信されてきた、 エンコードを要求する (SND,REQ) メッセージ (第 1 4図のステップ S 3 1 1の処理で送信されたメッセージ) が受信され
ると、 エンコード処理マネージャ 1 8 1は、 ステップ S 3 2 3におい て、 いま要求されたエンコードが処理可能であるか否かを判定する。 エンコードが処理可能である場合には、 ステップ S 3 2 4に進み、 ェ ンコード処理マネージャ 1 8 1は、 レシーブステート (RECE I VE) F からリプライステート (REPLY) Gに遷移する。
ステップ S 3 2 4において、 ェンコ一ド処理マネージャ 1 8 1は、 メインアプリケーション 1 5 3からのェンコ一ド要求の (SND,REQ) メッセージに対応するエンコード受付応答の (RPY,ACK) メッセージ を、 メインアプリケーション 1 5 3に送信する。 そして、 ステートは 、 マネージステート (MANAGE) Hに遷移する。
次に、 ステップ S 3 2 5において、 エンコード処理マネージャ 1 8 1は、 マネ一ジステート (MANAGE) Hにおいて、 エンコードカード入 出力 I /F 1 8 5とエンコードカードドライバ 1 8 7を介してェンコ一 ドカード 1 2 6を制御し、 要求された ATRAC 1対応エンコード処理を 実行させる。
カプセルマネージャ 1 5 1は、 制御データ入出力カプセル 1 5 4、 音楽データ入出力カプセル 1 5 5、 およびエンコード処理カプセル 1 5 6の各カプセル、 またはそのカプセルのプロセスのそれぞれに対す る、 優先順位およびスケジュールアルゴリズムを決定する。
例えば、 PCM非圧縮音楽データのエンコードが開始されるとき、 ェ ンコード処理カプセル 1 5 6には、 制御データ入出力カプセル 1 5 4 および音楽データ入出力カプセル 1 5 5よりも高い優先順位が与えら れる。 また、 ATRAC 1対応エンコード処理が実行される場合、 ェンコ ―ド処理カプセル 1 5 6のェンコ一ド処理マネージャ 1 8 1には、 最 も高い優先順位が与えられ、 エンコードエンジン入出力 I /F 1 8 2、 エンコードエンジン 1 8 4、 エンコードカード入出力 I /F 1 8 5、 お
よびエンコードカードドライバ 1 8 7には、 それに継ぐ優先順位が与 えられ、 そしてエンコードエンジン入出力 I /F 1 8 3およびェンコ一 ドカ一ド入出力 I /F 1 8 6には、 最も低い優先順位が与えられる。 つまり、 ATRAC 1対応エンコード処理が実行される場合、 ATRAC 1 対応エンコード処理に関する音楽データの入出力を、 エンコードェン ジン 1 8 4との間でィンターフェースするエンコードエンジン入出力 I /F 1 8 2、 および ATRAC 1対応エンコード処理に関する音楽データ の入出力をェンコ一ドカードドライバ 1 8 7との間でィンターフェ一 スするエンコードカード入出力 I /F 1 8 5の優先順位は、 MPEG 1対応 エンコード処理に関する音楽データの入出力をェンコ一ドエンジン 1 8 4との間でイン夕一フェースするエンコードエンジン入出力 I/F 1 8 3、 および MPEG 1対応エンコード処理に関する音楽デ一夕の入出力 をエンコードカードドライバ 1 8 7との間でイン夕一フェースするェ ンコードカード入出力 I /F 1 8 6の優先順位に比べ、 高く設定される 。
さらに、 ATRAC 1対応ェンコ一ド処理が実行される場合であっても 、 ソフトウェアによるエンコードではなく、 ハードウェアによるェン コードが指令されているとき、 エンコードエンジン入出力 I /F 1 8 2 よりエンコードカード入出力 I /F 1 8 5の方が、 優先順位が高く設定 される。
カプセルマネージャ 1 5 1は、 上述したようにして決定した、 カブ セルおよびプロセスの優先順位を、 エンコード制御アプリケーション 1 5 2およびメインアプリケーシヨン 1 5 3を介して、 制御データ入 出力カプセル 1 5 4、 音楽データ入出力カプセル 1 5 5、 およびェン コード処理カプセル 1 5 6の各マネージャ (エンコード制御マネージ ャ 1 6 1、 デ一夕入出力マネージャ 1 7 1、 およびエンコード処理マ
ネージャ 1 8 1 ) に供給する。 そして、 各マネージャは、 通知された プロセスの優先順位に基づいて、 プロセスを生成し、 処理を実行させ る。
例えば、 ATRAC 1対応エンコード処理が実行される場合、 ェンコ一 ド処理カプセル 1 56のエンコード処理マネージャ 1 8 1は、 ェンコ ードエンジン入出力 I/F 1 82、 エンコードエンジン 1 84、 ェンコ 一ドカード入出力 I/F 1 8 5、 およびェンコ一ドカードドライノ 1 8 7を生成し、 プロセス間通信用メッセージを供給する。 生成されたェ ンコードエンジン入出力 I/F 1 82、 エンコードエンジン 1 84、 ェ ンコードカード入出力 I/F 1 8 5、 およびエンコードカードドライバ 1 8 7は、 供給されたプロセス間通信用メッセージを、 通信可能なプ 口セスと送受信し、 エンコード処理を実行する。 これにより、 この例 の場合、 プロセス間通信用プロセスの拡張部分に設定されたァドレス に格納されている PCM非圧縮音楽デ一夕がハードディスク 1 27から 読み出され、 ATRAC 1対応エンコード処理が施され、 ハードディスク 1 2 7の、 プロセス間通信用プロセスの拡張部分に設定されているァ ドレスに記憶される。
なお、 第 1 5図の処理の例の場合、 ATRAC 1対応エンコード処理を ハードウエアにより実行するので、 エンコードエンジン入出力 I/F 1 8 2、 1 8 3、 エンコードエンジン 1 84、 およびエンコードカード 入出力 I/F 1 8 6は生成されない。 これにより、 それらに必要なリソ ースを確保する必要がなく、 そのリソースを他の処理に利用すること ができる。
第 1 5図の説明に戻り、 ステップ S 3 2 5において、 エンコード処 理が完了したとき、 ステップ S 32 6において、 エンコード処理マネ ージャ 1 8 1は、 マネージステート (MANAGE) Hからセンドステート
( SEND) Iに遷移し、 エンコード終了を示す (SND, NTF) メッセージ をメインアプリケーション 1 5 3に送信する。
ステツプ S 3 2 7において、 ェンコ一ド処理マネージャ 1 8 1は、 メインアプリケーション 1 5 3から、 送信された、 エンコード終了待 ち受領を通知する (RPY,NTF) メッセージ (第 1 4図のステップ S 3 1 7の処理で送信されたメッセージ) が受信されるまで待機し、 受信 されたと判定した場合、 ステップ S 3 2 8に進み、 センドステート ( SEND) Iからレディステート (READY) Eに戻り、 処理は終了する。 マネ一ジステート (MANAGE) H、 およびセンドステート (SEND) Iにおいて、 ェンコ一ド処理マネージャ 1 8 1は、 ステツプ S 3 2 1 でスタートさせたタイマー tの計測時間が所定の時間を超えているか 否かを判定し、 超えていないと判定した場合、 上述したように処理を 実行するが、 タイマー tの計測時間が所定の時間を超えていると判定 した場合、 レディステート (READY) Eに遷移し、 処理を終了させる 。
以上のように、 各プロセスが、 プロセス間通信用メッセージの内容 に基づいて、 ステートを遷移するようにしたので、 メインアプリケ一 シヨン 1 5 3が、 エンコードするデータが格納されている場所、 ェン コ一ドされた PCM圧縮音楽データが格納される場所、 またはェンコ一 ド処理の種類をエンコード処理マネージャ 1 8 1に通知するだけで、 エンコード処理マネージャ 1 8 1に所定のェンコ一ド処理を実行させ ることができる。 すなわち、 メインアプリケーション 1 5 3は、 ェン コード処理カプセル 1 5 6内のェンコ一ド処理マネージャ 1 8 1以外 のプロセスを制御したり (例えば、 データ処理やバッファ処理を制御 したり) 、 データ転送を制御する必要がない。 従って、 例えば、 ェン コードカード 1 2 6が、 より性能が高い他のエンコードカードと入れ
替えられても、 そのエンコードカードと、 それに対応したエンコード 処理カプセル 1 5 6がともに提供されれば、 メインアプリケーション 1 5 3は再構築する必要がなく、 より性能が高いエンコードカードを そのまま利用 (制御) することができる。
メインアプリケーション 1 5 3と音楽デ一夕入出力カプセル 1 5 5 との間、 並びに、 エンコード制御アプリケーション 1 5 2と制御デー 夕入出力カプセル 1 54との間においても、 同様のことが言える。 なお、 以上においては、 エンコーダ 1 1 2が、 ATRAC 1対応ェンコ ―ド処理および MPEG 1対応エンコード処理を実行する場合を例として 説明したが、 MP3、 その他のフォーマットのエンコード処理ゃェフエ クト機能などを実行させるようにすることもできる。
例えば、 エンコーダ 1 1 2は、 ATRAC3 (Adaptive Transform Ac oust ic Coding 3) (商標) 、 MPEG-2AAC (Advanced Audio Coding ) (商標) 、 ODesign Music Codec (商標) 、 TwinVO (Transform - Domain Weighted Interleave Vector Quantization) (商標) 、 MS Audio (Microsoft Audio (WMA:Windows Media Audio) ) (商標 ) 、 Ogg Vorbis (商標) などのフォーマットのエンコーダとするこ とも可能である。
次に、 第 1 6図を参照して、 ステートの異常時の初期化処理につい て説明する。 第 1 6図におけるステート Qは、 第 9図におけるレディ ステート (READY) E、 レシーブステート (RECEIVE) F、 L、 リプ ライステート (REPLY) G、 M、 マネ一ジステート (MANAGE) H、 K 、 センドステート (SEND) I、 Jに対応している。 すなわち、 これら のいずれのステートからもインタラプト (INTERRUPT) のメッセージ が受信された場合の初期化のルートとして、 イニシャライズ 2ステー ト (INITIALIZE 2 ) D、 およびレディステート (READY) Eの第 1の
ルート、 夕ーミネート 1ステート (TERMINATE D N、 ィニシャライ ズ 1ステート (INITIALIZE D C イニシャライズ 2ステート (INI TIALIZE 2 ) D、 およびレディステート (READY) Eの第 2のルート 、 または夕一ミネ一ト 1ステート (TERMINATE D N、 夕一ミネ一ト 0ステート (TERMINATEO) 〇、 およびエグジットステート (EXIT) Pの第 3のルート、 の 3つのルートが用意されている。
第 1 7図は、 この異常時における初期化処理を説明するフローチヤ —トである。 この処理は、 インタラプトのメッセージを受信したとき 、 開始される。 ステップ S 3 5 1において、 各プロセスは、 インタラ ブトのメッセージとして (INT,QUT) が受信されたか否かを判定する 。 受信したインタラプトのメッセージが (INT,QUT) であると判定さ れた場合、 ステップ S 352に進み、 プロセスは、 イニシャライズ 2 ステート (INITIALIZE2) Dに遷移する。 このステートにおいては 、 第 1 0図のステップ S 204の処理における場合と同様に、 第 1の バッファの初期化処理が行われる。 その後、 レディステート (READY ) Eに遷移する。
このように、 プロセスを終了せず (エグジットステート (EXIT) P に遷移せず) 、 第 1のバッファの初期化のみを行い、 レディステート (READY) Eに遷移するようにすることより、 例えば、 一旦終了させ てしまったプロセスを、 エンコード処理のために、 再度、 生成するこ とによるオーバへッドの発生を、 防止することができる。
また、 何らかの異常が起きた場合に、 第 1のバッファの初期化を行 うだけで、 その異常が回復することが期待される。 この第 1のパスの 処理は、 後述する第 2のパスより短い時間で完了することができるの で、 より迅速に、 異常な事態を回復させることが可能となる。
ステップ S 3 5 1において、 インタラプトを受けたメッセージが (
INT.QUT) メッセージではないと判定された場合、 ステップ S 3 5 3 に進み、 プロセスは、 インタラプトを受けたメッセージが (INT,RST ) メッセージであるか否かを判定する。 インタラプトを受けたメッセ —ジが (INT,RST) メッセージである場合には、 ステップ S 3 54に 進み、 プロセスは、 夕一ミネート 1ステート (TERMINATE D Nに遷 移する。 このステートでは、 第 2のバッファの開放処理が行われる。 次に、 ステップ S 3 5 5に進み、 プロセスは、 イニシャライズ 1ス テート (INITIALIZE D Cに遷移する。 このステートにおいては、 第 1 0図のステップ S 20 3の処理における場合と同様に、 第 2のバ ッファの確保、 第 2のバッファの初期化、 並びにレジスタの初期化処 理が実行される。
次に、 ステップ S 3 5 6に進み、 プロセスは、 イニシャライズ 2ス テート (INITIALIZE 2 ) Dに遷移する。 ここでは、 ステップ S 3 5 2における場合と同様に、 第 1のバッファの初期化処理が実行される 0
その後、 プロセスは、 レディステート (READY) Eに遷移する。 このように、 第 2のパスの初期化処理においては、 第 1のパスにお ける初期化処理のステートを含む、 それ以外のステートの初期化処理 が行われるため、 第 1のパスの初期化処理を行う場合に比べて、 より 長い時間がかかるが、 より確実に、 異常な事態を回復することが可能 となる。
ステップ S 3 5 3において、 インタラプトを受けたメッセージが ( INT, RST) メッセージではないと判定された場合、 そのメッセージは 、 結局 (INT,TRM) メッセージであるということになる。 そこで、 こ の場合、 ステップ S 3 5 7に進み、 プロセスは、 夕一ミネ一ト 1ステ —ト (TERMINATE D Nに遷移する。 そこで、 ステップ S 3 54にお
ける場合と同様に、 第 2のバッファの開放処理が行われる。 次に、 ス テツプ S 3 5 8に進み、 プロセスは、 夕一ミネ一ト 0ステート (TERM I NATE 0 ) Oに遷移する。 このステートにおいては、 第 1のバッファ の開放処理が行われるとともに、 デバイスをクローズする処理が行わ れる。
そして、 エグジットステート (EX I T) Pにプロセスは遷移し、 リア ルタイム OSが終了され、 電源オフの状態になる。
この第 3のパスは、 第 1および第 2のパスの初期化処理では回復す ることができなかった場合に行われる。 この場合、 リアルタイム OSが 再起動され、 各プロセスが新たに再び生成される処理が行われること になるので、 第 1のパスまたは第 2のパスの初期化処理に較べ、 より 長い時間がかかるが、 より確実に、 異常事態を回復することが可能と なる。
上述した異常時における 3つのパスの初期化処理を時系列に沿って 示すと、 第 1 8図に示すようになる。
例えば、 メインアプリケーション 1 5 3は、 異常が発生した場合、 ステップ S 4 1 1において (I NT, QUT) メッセージをェンコ一ド処理 マネージャ 1 8 1に出力する。 ェンコ一ド処理マネージャ 1 8 1は、 この (I NT,QUT) メッセージを受信すると、 ステップ S 4 2 1におい てイニシャライズ 2ステート (I N I T I AL I ZE 2 ) Dに遷移し、 第 1の バッファの初期化処理を実行する。 ステップ S 4 2 2において、 ェン コード処理マネージャ 1 8 1は、 レディステート (READY) Eに遷移 する。 エンコード処理マネージャ 1 8 1は、 この第 1のパスの初期化 処理により、 異常が回復したか否かをステップ S 4 2 3において、 メ インアプリケーション 1 5 3に通知する。
メインアプリケーション 1 5 3は、 第 1のパスの初期化処理により
、 異常が回復していない場合には、 さらに、 ステップ S 4 1 2におい て、 (INT,RST) メッセ一ジをエンコード処理マネージャ 1 8 1に出 力する。 エンコード処理マネージャ 1 8 1は、 メインアプリケーショ ン 1 53から (INT,RST) メッセージを受信すると、 ステップ S 42 4において、 夕一ミネート 1ステート (TERMINATE D Nに遷移し、 第 2のバッファの開放処理を行う。 次に、 ステップ S 42 5において 、 エンコード処理マネージャ 1 8 1は、 イニシャライズ 1ステート ( INITIALIZE 1 ) Cに遷移し、 第 2のバッファの確保、 第 2のバッフ ァの初期化、 並びにレジス夕の初期化処理を実行する。
ステップ S 426において、 エンコード処理マネージャ 1 8 1は、 イニシャライズ 2ステート (INITIALIZE 2 ) Dに遷移し、 第 1のバ ッファの初期化処理を実行する。 ステップ S 42 7において、 ェンコ —ド処理マネージャ 1 8 1は、 レディステート (READY) Eに戻る。 エンコード処理マネージャ 1 8 1は、 ステップ S 42 8において、 以 上の第 2のパスの初期化処理により、 異常が回復したか否かをメイン アプリケーション 1 5 3に通知する。
メインアプリケーション 1 5 3は、 以上の第 2のパスの初期化処理 により、 エンコード処理マネージャ 1 8 1の異常がまだ回復しないと 判定した場合、 ステップ S 4 1 3において、 エンコード処理マネージ ャ 1 8 1に対して (INT,TRM) メッセージを出力する。
ェンコ一ド処理マネージャ 1 8 1は、 メインアプリケ一ション 1 5 3から (INT,TRM) メッセージを受信すると、 ステップ S 42 9にお いて、 ターミネート 1ステート (TERMINATE D Nに遷移し、 第 2の バッファの開放処理を行う。 ステップ S 430において、 エンコード 処理マネージャ 1 8 1は、 さらに、 夕一ミネ一ト 0ステート (TERMIN ATE0) 〇に遷移し、 第 1のバッファの開放処理とデバイスクローズ
処理を実行する。
ステップ S 43 1において、 ェンコ一ド処理マネージャ 1 8 1は、 レディステート (READY) Eに遷移し、 以上の第 3のパスの初期化処 理により、 異常が回復したか否かを、 ステップ S 43 2において、 メ インアプリケーション 1 5 3に通知する。
メインアプリケーション 1 5 3は、 以上の第 3のパスの初期化処理 により、 まだ異常が回復していないと判定した場合、 ステップ S 41 4において、 リアルタイム OSに再起動を要求する。
リアルタイム OSは、 ステップ S 40 1において、 メインアプリケー シヨン 1 5 3からの要求に基づいて、 再起動処理を実行する。
そして、 ステップ S 402において、 リアルタイム OSは、 再起動後 、 再びエンコード処理マネージャ 1 8 1を生成する処理を実行する。 これにより、 上述した第 1 0図のステップ 2 0 1乃至 S 20 5の処理 により、 ィグゼキュートステート (EXECUTE) A、 イニシャライズ 0 ステート (INITIALIZE 0 ) B、 イニシャライズ 1ステート (INITIAL IZE 1 ) C、 イニシャライズ 2ステート (INITIALIZE2) Dの各ステ —トを経て、 レディステート (READY) Eに遷移する処理が実行され る。
このように、 3つのパスの初期化処理を設け、 より短い処理時間で すむパスから初期化処理を順次行うようにしたので、 より迅速に、 異 常を回復することが可能となる。
レシ一ブステート (RECEIVE) F、 L、 センドステート (SEND) I 、 J以外のステートにおいては、 基本的にメッセージが受信できない 状態となっている。 従って、 そのようなステートにおいて、 例えば、 異常が発生し、 そのステートにおける処理が完了できなくなってしま つたような場合、 異常な事態を回復することができなくなってしまう
おそれがある。 また、 レシーブステート (RECEIVE) F、 L、 並びに センドステート (SEND) I、 Jにおいても異常が発生し、 所定のメッ セージを受信したとしても、 他のステートに遷移できなくなってしま うような場合がある。 このような異常な状態が発生した場合にも、 確 実に、 異常を回復することができるようにするために、 各ステートに は、 上述したように、 インタラプトのメッセージを受け付けることが できるようになされている。
以上のように、 プロセス間通信用メッセージのヘッダに、 MSGT=IN T (INTERRUPT)を設定することにより、 1^ の8 4ぃンステムコ一ル のように、 例外信号 (非同期信号) により、 プロセスのステートをィ ニシャライズステート (INITIALIZE) (イニシャライズステート (I NITIALIZE) C、 D) や夕一ミネ一トステート (TERMINATE) (ター ミネ一トステート (TERMINATE) N、 O) に遷移させることができる 。 その結果、 環境変数などを予め退避させておくことより、 遷移前の ステートへ確実に戻ることが可能となる。
第 1 9図は、 本発明を適用した音楽配信サービスシステムの配信側 の他の構成例を示している。 なお、 図中、 第 2図における場合と対応 する部分については、 同一の符号を付してあり、 以下では、 その説明 は、 適宜省略する。
端末 2 0 0は、 アラーム LAN 1 0 1およびメディアム LAN 1 02に接 続されており、 サーバ 1 1 3から、 PCM非圧縮音楽データを受け取り 、 それをエンコードして、 サーバ 1 1 3に供給する。 すなわち、 端末 2 0 0は、 第 2図に示す端末 1 1 1の機能に加え、 エンコーダ 1 1 2 の機能をさらに備えている。
第 20図は、 端末 200の構成例を表している。 この端末 2 0 0は 、 例えばコンピュータで構成される。 CPU 5 1 1にはバス 5 1 5を介
して入出力インターフェース 5 1 6が接続されており、 CPU 5 1 1は 、 入出力イン夕一フェース 5 1 6を介して、 ユーザから、 キーボード 、 マウスなどよりなる入力部 5 1 8から指令が入力されると、 例えば 、 R0M 5 1 2、 ハードディスク 5 1 4、 またはドライブ 5 2 0に装着 される磁気ディスク 5 3 1、 光ディスク 5 3 2、 光磁気ディスク 5 3 3、 若しくは半導体メモリ 5 3 4などの記録媒体に格納されているプ ログラムを、 RAM 5 1 3にロードして実行する。 さらに、 CPU 5 1 1は 、 その処理結果を、 例えば、 入出力インターフェース 5 1 6を介して 、 LCDなどよりなる表示部 5 1 7に必要に応じて出力する。
なお、 プログラムは、 ハードディスク 5 1 4や R0M 5 1 2に予め記 憶しておき、 端末 2 0 0と一体的にユーザに提供したり、 磁気ディス ク 5 3 1、 光ディスク 5 3 2、 光磁気ディスク 5 3 3、 半導体メモリ 5 3 4等のパッケージメディアとして提供したり、 衛星、 ネッ トヮ一 ク等から通信部 5 1 9を介してハードディスク 5 1 4に提供すること ができる。
半導体メモリ 5 3 4は、 フラッシュメモリなどの不揮発性メモリで あることが望ましい。 また、 半導体メモリ 5 3 4を内蔵するパッケ一 ジメディアは、 マイクロコンピュー夕を内蔵し半導体メモリ 5 3 4に 対する読み書きの認証が可能なものであることが望ましい。 例えば、 メモリスティック (商標) 、 SDメモリーカード (商標) 、 コンパク ト フラッシュ (商標) 、 スマートメディア (商標) 、 マルチメディア力 ード (商標) 、 マイクロドライブ (商標) 、 I Dフォーマツ ト (商標) 、 Thumb Dr i ve (商標) などとすることができる。
第 2 1図は、 端末 2 0 0の RAM 5 1 3にロードされ、 CPU 5 1 1によ り実行されるプログラムの構成例を示している。 この端末 2 0 0には 、 第 2図の端末 1 1 1の制御プロセス Wの他、 第 6図のエンコーダ 1
1 2の音楽データ入出力カプセル 1 5 5およびエンコード処理カプセ ル 1 5 6がさらに設けられている。 端末 2 0 0が、 このような構成を 有することより、 端末 1 1 1と同様のエンコード処理の実行が可能と なる。
この場合においても、 制御プロセス Wに対してデータ入出力マネー ジャ 1 7 1が行う処理は、 音楽データ入出力カプセル 1 5 5として力 プセル化されており、 同様に、 エンコード処理マネージャ 1 8 1が実 行する処理は、 エンコード処理カプセル 1 5 6としてカプセル化され ている。
また、 この場合においても、 上述した状態遷移図に対応して、 異常 時における初期化処理を含む各種の処理が実行される。 その処理は、 上述した場合と基本的に同様であるので、 その説明は省略する。
なお、 本明細書において、 媒体により提供されるプログラムを記述 するステップは、 記載された順序に沿って時系列的に行われる処理は もちろん、 必ずしも時系列的に処理されなくとも、 並列的あるいは個 別に実行される処理をも含むものである。
また、 本明細書において、 システムの用語は、 複数の装置、 手段な どより構成される全体的な装置を意味するものとする。 産業上の利用可能性
本発明の記憶媒体に記憶されるプログラムは、 制御部とハードゥエ ァとの間に位置し、 制御部からのメッセージに基づいてハードウエア を制御し、 制御部と通信する第 1のプロセスと、 第 1のハードウェア および第 2のハ一ドウエアと通信可能な第 2のプロセスと、 第 1のプ ロセスおよび第 2のプロセスと通信すると共に、 第 1のハードウェア に対応するィンターフェース処理を実行する第 3のプロセスと、 第 1
のプロセスおよび第 2のプロセスと通信すると共に、 第 2のハードウ エアに対応するィンターフェース処理を実行する第 4のプロセスとを 備え、 第 1のプロセスは、 制御部からのメッセージに基づいて、 第 3 のプロセスおよび第 4のプロセスのいずれか一方にメッセージを出力 することを特徴とする。
従って、 いずれの場合においても、 ハードウェアが変更されたとし ても、 制御部を変更する必要が無くなるか、 変更するとしても、 わず かの変更で済み、 1つの制御部で、 多くのハードウェアを共通に使用 することが可能になる。
また、 本発明の記憶媒体に記録されるプログラムは、 制御部とハー ドウエアとの間に位置し、 制御部からのメッセージに基づいてハード ウェアを制御するカプセル化されたプロセスを含み、 プロセスに異常 が生じたとき、 当該プロセスは、 ハードウェアとのデ一夕の授受に用 いられる第 1のバッファを初期化する第 1のパス、 制御部とのデータ の授受に用いられる第 2のバッファを開放し、 第 2のバッファを確保 し、 第 2のバッファを初期化し、 および第 1のバッファを初期化する 第 2のパス、 および第 2のバッファを開放し、 および第 1のバッファ を開放する第 3のパスのいずれかにより初期化されることを特徴とす る。
従って、 プロセスの異常なステートを迅速に回復することが可能と なる。