(57)【要約】【課題】複数のＣＰＵを有するシステムにおいて必要とされる記憶容量を低減できると共に処理速度を高速化し、他のＣＰＵの動作に影響を与えることなく各ＣＰＵの機能を容易に変更することのできる情報処理方法を提供する。【解決手段】ホストＣＰＵ４１１の指示により、いずれか一つのＣＰＵ１０３，１０４が共通コードと自己において実行するよう定められた命令コードとを外部メモリ１１０から内部メモリ１０１へロードすると共に、他のＣＰＵが自己において実行するよう定められた命令コードを外部メモリ１１０から内部メモリ１０１へロードし、各々のＣＰＵが、内部メモリ１０１にロードされた自己において実行するよう定められた命令コードを実行すると共に、内部メモリ１０１にロードされた共通コードを必要に応じて実行することを特徴とする情報処理方法を提供する。【選択図】　図１
2004078604.tif 000002
【特許請求の範囲】
【請求項１】
複数の中央演算処理装置と内部記憶手段とを含むプロセッサと、前記複数の中央演算処理装置において共通して実行される共通コード及び予め定められたいずれか一つの前記中央演算処理装置において実行される命令コードが格納された外部記憶手段と、ホスト演算手段とがバスにより相互接続されたシステムにおいて実現される情報処理方法であって、
前記ホスト演算手段の指示により、いずれか一つの前記中央演算処理装置が前記共通コードと自己において実行するよう定められた前記命令コードとを前記外部記憶手段から前記内部記憶手段へロードすると共に、他の前記中央演算処理装置が自己において実行するよう定められた前記命令コードを前記外部記憶手段から前記内部記憶手段へロードするステップと、
各々の前記中央演算処理装置が、前記内部記憶手段にロードされた前記共通コードと前記自己において実行するよう定められた命令コードとをそれぞれ実行するステップとを有することを特徴とする情報処理方法。
【請求項２】
前記ホスト演算手段が選択的に前記中央演算処理装置をリセットするステップと、
前記ホスト演算手段の指示により、選択的にリセットされた前記中央演算処理装置が前記自己において実行するよう定められた命令コードを前記外部記憶手段から前記内部記憶手段へ新たにロードするステップと、
リセットされた前記中央演算処理装置が、前記内部記憶手段に新たにロードされた前記自己において実行するよう定められた命令コードを実行するステップとをさらに有する請求項１に記載の情報処理方法。
【請求項３】
複数の中央演算処理装置と内部記憶手段とブート用記憶手段とダイレクトメモリアクセスコントローラを含むプロセッサと、前記複数の中央演算処理装置において共通して実行される共通コード及び予め定められたいずれか一つの前記中央演算処理装置において実行される命令コードが格納された外部記憶手段と、ホスト演算手段とがバスにより相互接続されたシステムにおいて実現される情報処理方法であって、
前記ホスト演算手段が前記中央演算処理装置を選択的にリセットするステップと、
前記ホスト演算手段が、リセットされた前記中央演算処理装置により実行される起動コードを前記ブート用記憶手段へ書き込むステップと、
前記ホスト演算手段が、前記リセットされた中央演算処理装置のリセット状態を解除するステップと、
リセット状態が解除されたいずれか一つの前記中央演算処理装置が前記ブート用記憶手段に書き込まれた前記起動コードを実行することにより、前記共通コードと自己において実行するよう定められた前記命令コードとを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へロードすると共に、リセット状態が解除された他の前記中央演算処理装置が前記ブート用記憶手段に書き込まれた前記起動コードを実行することにより、自己において実行するよう定められた前記命令コードを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へロードするステップと、
リセット状態が解除された各々の前記中央演算処理装置が、前記内部記憶手段にロードされた前記共通コードと前記自己において実行するよう定められた命令コードとをそれぞれ実行するステップとを有することを特徴とする情報処理方法。
【請求項４】
前記ホスト演算手段が選択的に前記中央演算処理装置を新たにリセットするステップと、
前記ホスト演算手段が、新たにリセットされた前記中央演算処理装置により実行される新たな起動コードを前記ブート用記憶手段へ書き込むステップと、
前記ホスト演算手段が、前記新たにリセットされた前記中央演算処理装置のリセット状態を解除するステップと、
リセット状態が解除された前記中央演算処理装置が前記新たな起動コードを実行することにより、前記自己において実行するよう定められた命令コードを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へ新たにロードするステップと、
前記リセット状態が解除された中央演算処理装置が、前記内部記憶手段に新たにロードされた前記自己において実行するよう定められた命令コードを実行するステップとをさらに有する請求項３に記載の情報処理方法。
【請求項５】
複数の中央演算処理装置と内部記憶手段とを含むプロセッサと、前記複数の中央演算処理装置において共通して実行される共通コード及び予め定められたいずれか一つの前記中央演算処理装置において実行される命令コードが格納された外部記憶手段と、ホスト演算手段とがバスにより相互接続されたシステムにおいて実行されるプログラムであって、
いずれか一つの前記中央演算処理装置に対し、前記ホスト演算手段からの指示に応じて前記共通コードと自己において実行するよう定められた前記命令コードとを前記外部記憶手段から前記内部記憶手段へロードさせ、他の前記中央演算処理装置に対し、自己において実行するよう定められた前記命令コードを前記外部記憶手段から前記内部記憶手段へロードさせ、
各々の前記中央演算処理装置に対して、前記内部記憶手段にロードされた前記共通コードと前記自己において実行するよう定められた命令コードとをそれぞれ実行させることを特徴とするプログラム。
【請求項６】
さらに、前記ホスト演算手段に対して、選択的に前記中央演算処理装置をリセットさせ、
選択的にリセットされた前記中央演算処理装置に対し、前記ホスト演算手段の指示により、前記自己において実行するよう定められた命令コードを前記外部記憶手段から前記内部記憶手段へ新たにロードさせ、
リセットされた前記中央演算処理装置に対して、前記内部記憶手段に新たにロードされた前記自己において実行するよう定められた命令コードを実行させる請求項５に記載のプログラム。
【請求項７】
複数の中央演算処理装置と内部記憶手段とブート用記憶手段とダイレクトメモリアクセスコントローラを含むプロセッサと、前記複数の中央演算処理装置において共通して実行される共通コード及び予め定められたいずれか一つの前記中央演算処理装置において実行される命令コードが格納された外部記憶手段と、ホスト演算手段とがバスにより相互接続されたシステムにおいて実行されるプログラムであって、
前記ホスト演算手段に対して、前記中央演算処理装置を選択的にリセットさせ、
前記ホスト演算手段に対して、リセットされた前記中央演算処理装置により実行される起動コードを前記ブート用記憶手段へ書き込ませ、
前記ホスト演算手段に対して、前記リセットされた中央演算処理装置のリセット状態を解除させ、
リセット状態が解除されたいずれか一つの前記中央演算処理装置に対して、前記ブート用記憶手段に書き込まれた前記起動コードを実行させることにより、前記共通コードと自己において実行するよう定められた前記命令コードとを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へロードさせると共に、リセット状態が解除された他の前記中央演算処理装置に対して、前記ブート用記憶手段に書き込まれた前記起動コードを実行させることにより、自己において実行するよう定められた前記命令コードを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へロードさせ、
リセット状態が解除された各々の前記中央演算処理装置に対して、前記内部記憶手段にロードされた前記共通コードと前記自己において実行するよう定められた命令コードとをそれぞれ実行させることを特徴とするプログラム。
【請求項８】
さらに、前記ホスト演算手段に対して選択的に前記中央演算処理装置を新たにリセットさせ、
前記ホスト演算手段に対して、新たにリセットされた前記中央演算処理装置により実行される新たな起動コードを前記ブート用記憶手段へ書き込ませ、
前記ホスト演算手段に対して、前記新たにリセットされた中央演算処理装置のリセット状態を解除させ、
リセット状態が解除された前記中央演算処理装置に対して、前記新たな起動コードを実行させることにより、前記自己において実行するよう定められた命令コードを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へ新たにロードさせ、
前記リセット状態が解除された中央演算処理装置に対して、前記内部記憶手段に新たにロードされた前記自己において実行するよう定められた命令コードを実行させる請求項７に記載のプログラム。
【請求項９】
複数の中央演算処理装置と内部記憶手段とを含むプロセッサと、前記複数の中央演算処理装置において共通して実行される共通コード及び予め定められたいずれか一つの前記中央演算処理装置において実行される命令コードが格納された外部記憶手段と、ホスト演算手段とがバスにより相互接続されたシステムにおいて実行されるプログラムを記録した記録媒体であって、前記プログラムは、
いずれか一つの前記中央演算処理装置に対し、前記ホスト演算手段からの指示に応じて前記共通コードと自己において実行するよう定められた前記命令コードとを前記外部記憶手段から前記内部記憶手段へロードさせ、他の前記中央演算処理装置に対し、自己において実行するよう定められた前記命令コードを前記外部記憶手段から前記内部記憶手段へロードさせ、
各々の前記中央演算処理装置に対して、前記内部記憶手段にロードされた前記共通コードと前記自己において実行するよう定められた命令コードとをそれぞれ実行させることを特徴とする記録媒体。
【請求項１０】
前記プログラムはさらに、
前記ホスト演算手段に対して、選択的に前記中央演算処理装置をリセットさせ、
選択的にリセットされた前記中央演算処理装置に対し、前記ホスト演算手段の指示により、前記自己において実行するよう定められた命令コードを前記外部記憶手段から前記内部記憶手段へ新たにロードさせ、
リセットされた前記中央演算処理装置に対して、前記内部記憶手段に新たにロードされた前記自己において実行するよう定められた命令コードを実行させる請求項９に記載の記録媒体。
【請求項１１】
複数の中央演算処理装置と内部記憶手段とブート用記憶手段とダイレクトメモリアクセスコントローラを含むプロセッサと、前記複数の中央演算処理装置において共通して実行される共通コード及び予め定められたいずれか一つの前記中央演算処理装置において実行される命令コードが格納された外部記憶手段と、ホスト演算手段とがバスにより相互接続されたシステムにおいて実行されるプログラムを記録した記録媒体であって、前記プログラムは、
前記ホスト演算手段に対して前記中央演算処理装置を選択的にリセットさせ、前記ホスト演算手段に対して、リセットされた前記中央演算処理装置により実行される起動コードを前記ブート用記憶手段へ書き込ませ、
前記ホスト演算手段に対して、前記リセットされた中央演算処理装置のリセット状態を解除させ、
リセット状態が解除されたいずれか一つの前記中央演算処理装置に対して、前記ブート用記憶手段に書き込まれた前記起動コードを実行させることにより、前記共通コードと自己において実行するよう定められた前記命令コードとを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へロードさせると共に、リセット状態が解除された他の前記中央演算処理装置に対して、前記ブート用記憶手段に書き込まれた前記起動コードを実行させることにより、自己において実行するよう定められた前記命令コードを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へロードさせ、
リセット状態が解除された各々の前記中央演算処理装置に対して、前記内部記憶手段にロードされた前記共通コードと前記自己において実行するよう定められた命令コードとをそれぞれ実行させることを特徴とする記録媒体。
【請求項１２】
前記プログラムはさらに、
前記ホスト演算手段に対して選択的に前記中央演算処理装置を新たにリセットさせ、
前記ホスト演算手段に対して、新たにリセットされた前記中央演算処理装置により実行される新たな起動コードを前記ブート用記憶手段へ書き込ませ、
前記ホスト演算手段に対して、前記新たにリセットされた中央演算処理装置のリセット状態を解除させ、
リセット状態が解除された前記中央演算処理装置に対して、前記新たな起動コードを実行させることにより、前記自己において実行するよう定められた命令コードを前記ダイレクトメモリアクセスコントローラを用いて前記外部記憶手段から前記内部記憶手段へ新たにロードさせ、
前記リセット状態が解除された中央演算処理装置に対して、前記内部記憶手段に新たにロードされた前記自己において実行するよう定められた命令コードを実行させる請求項１１に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理方法とその方法を実現するためのプログラム、及び該プログラムを記録した記録媒体に関するものである。
【０００２】
【従来の技術】
近年においては、一つの半導体チップ上にＣＰＵ（中央演算処理装置）やメモリが搭載されたシステムオンチップ（以下、単に「ＳＯＣ」ともいう）が開発されてきている。このようなＳＯＣは、ＣＰＵとメモリとの間におけるバス幅が広く取れるという利点を有し、構成要素としてシステムに組み込まれる。ここでＳＯＣにおいては、該チップの大きさに応じて混載できるメモリの容量に限度があるため、混載されたメモリを効率的に使用することが重要とされる。
【０００３】
一方、近年における音楽配信や携帯オーディオ機器に使用されている音声圧縮方式（コーデック−Ｃｏｄｅｃ）には、ＭＰＥＧ１　Ａｕｄｉｏ、ＭＰＥＧ２　Ａｕｄｉｏ等多くの種類が存在する。このとき、音声データの圧縮・伸長を実行するシステムを複数のＣＰＵ（マルチプロセッサ）により構成することによって負荷を分散し、一つのＣＰＵでは時間のかかる処理を高速処理することができる。すなわち例えば、コーデック毎にＣＰＵを割り当てることにより、第１のＣＰＵによりデコードしたデータを同時に第２のＣＰＵでエンコードするトランスコーディング動作や、異なるコーデックで並列的にエンコードする動作を実現することができる。
【０００４】
図５は、従来の情報処理システムの構成を示すブロック図である。図５に示されるように、従来の情報処理システムはバス３と、バス３により相互接続されるチップ１と外部メモリ１１０とホストＣＰＵ１１１及びサーバ１２０を備える。そして、チップ１には内部メモリ１０１と、外部メモリ１１０から直接外部メモリ１１０へ実行可能コードやデータを転送するＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラ１０２、第１ＣＰＵ１０３、第２ＣＰＵ１０４、及びブート用メモリ１０５を含む。なお、チップ１内に形成された内部メモリ１０１とＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラ１０２、第１ＣＰＵ１０３、第２ＣＰＵ１０４、及びブート用メモリ１０５は、チップ１内に形成されたバスにより相互接続される。
【０００５】
ここで、上記のような構成を有するチップ１は、相互に独立して動作すると共に、内部メモリ１０１を共有する複数のＣＰＵを備えるため、「粗結合マルチプロセッサ」と呼ばれる。
【０００６】
上記のような構成を有する情報処理システムでは、まずホストＣＰＵ１１１の指示により第１ＣＰＵ１０３用及び第２ＣＰＵ１０４用のブートストラップがブート用メモリ１０５に格納される。そして、第１ＣＰＵ１０３及び第２ＣＰＵ１０４が、上記ブートストラップに応じて外部メモリ１１０又はネットワーク上のサーバ１２０からＤＭＡコントローラ１０２を使用して実行可能コードを内部メモリ１０１へダウンロードし、該システムを起動する。
【０００７】
一方、上記実行可能コードは以下のように作成される。図６に示されるように、チップ１内に設けられたＣＰＵ毎に作成されたプログラム（第１ＣＰＵ用プログラム及び第２ＣＰＵ用プログラム）と、複数のＣＰＵにより共用されるプログラム（共通ライブラリプログラム）とをコンパイルさせることにより、各プログラムに対応したオブジェクトコード（ＣＰＵ０用オブジェクトコード、ＣＰＵ１用オブジェクトコード、共通ライブラリオブジェクトコード）が生成される。
【０００８】
次に、これらのオブジェクトコードは、内部メモリ１０１内における配置先を指定する先頭アドレスを含んだリンク情報５０５とリンクされ、実行可能コードが生成される。従って、生成された実行可能コード５０６は、命令とデータ、及び内部メモリ１０１への配置先アドレスを記述するものとされる。なお、図６においては、第１ＣＰＵに対しコーデックＡにおいてエンコード動作を実現させ、第２ＣＰＵに対しコーデックＢにおいてデコード動作を実現させるための実行可能コード５０６が例示される。
【０００９】
そして、後述するように該実行可能コード５０６は内部メモリ１０１にロードされる。
【００１０】
ここで、該情報システムのＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）がダイナミックライブラリやリンク機能を有し、あるいはハードウェア的に仮想アドレスをサポートするものである場合には、一般的にプログラムのロード時に実行可能コードのアドレスを変更することができるものの、上記のような機能を持たないＯＳが搭載されたシステム、またはＯＳが搭載されていないシステムに該チップ１が組み込まれるような場合には実行可能コード作成時にアドレスが固定され、動的にコードのロード先を切り替えることができない。
【００１１】
従って、複数のコーデックによりＣＰＵを動作させるためには、想定される全パターンのコードを内部メモリ１０１等に保持しておく必要がある。このとき、使用したいコーデックが多数あって内部メモリ１０１内に該コードが納まらない場合には、該実行可能コードを外部メモリ１１０やサーバ１２０等に保持しておき、必要に応じたダウンロードを実行してコーデックの種類や動作を切り替えることができる。
【００１２】
ただし、図６に示されるように、従来の実行可能コード５０６内には第１ＣＰＵ用のコードと第２ＣＰＵ用のコードとがまとめられているため、第１ＣＰＵ１０３あるいは第２ＣＰＵ１０４のいずれか一方の動作のみを切り替えたいような場合には、実行可能コード５０６全体を内部メモリ１０１にロードし直す必要がある。
【００１３】
ここで、図７及び図８を参照して、従来の情報処理システムにおける該動作の切り替えを説明する。なお、図７においては外部メモリ１１０に第１から第４の命令コード２１２〜２１５が予め格納され、最初に第１命令コード２１２が内部メモリ１０１にロードされた場合が示される。上記において第２命令コード２１３は第１ＣＰＵ１０３に対してコーデックＡによりエンコード動作させ、第２ＣＰＵ１０４に対してコーデックＤによりデコード動作させるコードを含み、第３命令コード２１４は第１ＣＰＵ１０３に対してコーデックＣによりエンコード動作させ、第２ＣＰＵ１０４に対してコーデックＢによりデコード動作させるコードを含み、第４命令コード２１５は第１ＣＰＵ１０３に対してコーデックＣによりエンコード動作させ、第２ＣＰＵ１０４に対してコーデックＤによりデコード動作させるコードを含むものとされる。
【００１４】
図８を参照して、図７に示された第１及び第２のＣＰＵ１０３，１０４の動作を説明する。まずステップＳ１においてホストＣＰＵ１１１が第１ＣＰＵ１０３をリセットし、ステップＳ２においてホストＣＰＵ１１１がブート用メモリ１０５にブートストラップを書き込む。次に、ステップＳ３において、ホストＣＰＵ１１１が第１ＣＰＵ１０３のリセット状態を解除する。そして、ステップＳ４において、第１ＣＰＵ１０３はブート用メモリ１０５に書き込まれたブートストラップを実行し、ステップＳ５においてＤＭＡコントローラ１０２を用いて外部メモリ１１０から内部メモリ１０１へ例えば第１命令コード２１２をＤＭＡ転送する。
【００１５】
ステップＳ６では、第１ＣＰＵ１０３が上記転送の終了を確認した後に第２ＣＰＵ１０４をリセットし、さらに該リセット状態を解除することにより第２ＣＰＵ１０４を起動する。ステップＳ７では、第１ＣＰＵ１０３は内部メモリ１０１に格納された第１ＣＰＵ１０３用の命令コードを実行する。
【００１６】
これより、ステップＳ８において第１ＣＰＵ１０３はコーデックＡのエンコーダとして動作すると共に、ステップＳ９において第２ＣＰＵ１０４は内部メモリ１０１に格納された第２ＣＰＵ１０４用の命令コードを実行することによってコーデックＢのデコーダとして動作する。
【００１７】
このとき上記のように、第１ＣＰＵ用の命令コードと第２ＣＰＵ用の命令コードとが一つの命令コードとしてまとめられていることから、例えば第１ＣＰＵ１０３をコーデックＣのエンコーダとして動作させたい場合には、たとえ第２ＣＰＵ１０４の機能を変更する必要がない場合であっても、内部メモリ１０１にロードされた第１命令コード２１２全体を第３命令コード２１４に入れ替える必要がある。
【００１８】
以上より、上記のような従来の情報処理システムにおいては、以下のような問題がある。まず、第１ＣＰＵ１０３向けの命令と第２ＣＰＵ１０４向けの命令をまとめてコンパイルするため、実行可能コードを構成する命令の組み合わせが固定的となってしまう。このため、複数のＣＰＵを複数のコーデックにおいて動作させるためには、各動作状態に応じたコンパイル済みコードを予め外部メモリ１１０（あるいはネットワーク上のサーバ１２０）に保持しておく必要がある。
【００１９】
また、上記のように第１ＣＰＵ１０３向けの命令と第２ＣＰＵ１０４向けの命令とにより一つの実行可能コードが構成されるため、実行可能コードのサイズが大きくなる。これより、入れ替えるべき内部メモリ１０１内のコードサイズも大きなものとなるため、コード入れ替え時間が大きなものとなる。
【００２０】
さらに、第１ＣＰＵ１０３向けの命令と第２ＣＰＵ１０４向けの命令とにより一つの実行可能コードが構成されることから、上記のように例えば第１ＣＰＵ１０３の動作のみを変更したい場合でも、第２ＣＰＵ１０４の動作も中断させなければならない。すなわち例えば、第２ＣＰＵ１０４によりコーデックＢの下でデコードした結果を、第１ＣＰＵ１０３によりコーデックＡの下でエンコードするトランスコーディング動作中においては、第１ＣＰＵ１０３の動作のみを変更することはできず、第２ＣＰＵ１０４のデコーダも中断させなくてはならない。
【００２１】
【発明が解決しようとする課題】
本発明は、上記のような問題を解消するためになされたもので、複数のＣＰＵを有する情報処理システムにおいて、該システムにおいて必要とされる記憶容量を低減できると共に処理速度を高速化し、他のＣＰＵの動作に影響を与えることなく各ＣＰＵの機能を容易に変更することのできる情報処理方法と、その方法を実現するプログラム及び該プログラムを記録した記録媒体を提供することを目的とする。
【００２２】
【課題を解決するための手段】
本発明の目的は、複数の中央演算処理装置と内部記憶手段とを含むプロセッサと、複数の中央演算処理装置において共通して実行される共通コード及び予め定められたいずれか一つの中央演算処理装置において実行される命令コードが格納された外部記憶手段と、ホスト演算手段とがバスにより相互接続されたシステムにおいて実現される情報処理方法であって、ホスト演算手段の指示により、いずれか一つの中央演算処理装置が共通コードと自己において実行するよう定められた命令コードとを外部記憶手段から内部記憶手段へロードすると共に、他の中央演算処理装置が自己において実行するよう定められた命令コードを外部記憶手段から内部記憶手段へロードするステップと、各々の中央演算処理装置が、内部記憶手段にロードされた共通コードと自己において実行するよう定められた命令コードとをそれぞれ実行するステップとを有することを特徴とする情報処理方法、あるいは該方法を実現するためのプログラム若しくは該プログラムを記録した記録媒体を提供することにより達成される。
【００２３】
このような手段によれば、各々の中央演算処理装置が自己において実行するよう定められた命令コードを内部記憶手段へロードして実行するため、外部記憶手段へ格納すべき共通コード及び命令コードを効率化することができ、外部記憶手段に必要とされる記憶容量と、外部記憶手段から内部記憶手段にロードすべき情報量とを低減することができる。
【００２４】
また、上記において、ホスト演算手段が選択的に中央演算処理装置をリセットするステップと、ホスト演算手段の指示により、選択的にリセットされた中央演算処理装置が自己において実行するよう定められた命令コードを外部記憶手段から内部記憶手段へ新たにロードするステップと、リセットされた中央演算処理装置が、内部記憶手段に新たにロードされた自己において実行するよう定められた命令コードを実行するステップとをさらに有する情報処理方法、あるいは該方法を実現するためのプログラム若しくは該プログラムを記録した記録媒体によれば、他の中央演算処理装置の動作に影響を与えることなく、選択された中央演算処理装置の機能を容易に変更することができる。
【００２５】
【発明の実施の形態】
以下において、本発明の実施の形態を図面を参照しつつ詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
【００２６】
図１は、本発明の実施の形態に係る情報処理を説明する図である。図１に示されるように、本実施の形態に係る情報処理は、バス３により相互接続されたホストＣＰＵ４１１とチップ１、及び外部メモリ１１０により構成された情報処理システムにおいて実現される。ここで、チップ１には内部バスにより相互接続されたＤＭＡコントローラ１０２と第１ＣＰＵ１０３、第２ＣＰＵ１０４、ブート用メモリ１０５、及び内部メモリ１０１が設けられる。
【００２７】
なお、上記において外部メモリ１１０の替わりに、あるいは外部メモリ１１０と共に、バス３に接続されたネットワーク上のサーバを備えた情報システムにおいても本実施の形態に係る情報処理を実現することができる。
【００２８】
以下において、図２を参照しつつ、上記情報処理システムにおいて実行される本実施の形態に係る実行可能コードについて説明する。本実施の形態においては、上記第１ＣＰＵ１０３と第２ＣＰＵ１０４が独立して動作できるように、各ＣＰＵで実行されるオブジェクトコードにそれぞれ共通オブジェクトコードがリンクされ、ＣＰＵ毎の実行可能コードが生成される。
【００２９】
すなわち、図２に示されるように、第１ＣＰＵ１０３にて実行される第１ＣＰＵ用プログラムがコンパイルされることにより第１ＣＰＵ用オブジェクトコードが生成され、第２ＣＰＵ１０４にて実行される第２ＣＰＵ用プログラムがコンパイルされることにより第２ＣＰＵ用オブジェクトコードが生成される。また、第１及び第２ＣＰＵ１０３，１０４にて実行される共通ライブラリプログラムがコンパイルされることにより共通ライブラリオブジェクトコードが生成される。
【００３０】
次に、内部メモリ１０１内における共通オブジェクトコードの格納先を示す共通ライブラリ先頭アドレスと、内部メモリ１０１内における第１ＣＰＵオブジェクトコードの格納先を示す第１ＣＰＵ先頭アドレスとを記述したリンク情報３０２を上記第１ＣＰＵ用オブジェクトコードと上記共通ライブラリオブジェクトコードにリンクさせて実行可能コード３０５を生成すると共に、上記と同じ共通ライブラリ先頭アドレスと、内部メモリ１０１内における第２ＣＰＵオブジェクトコードの格納先を示す第２ＣＰＵ先頭アドレスとを記述したリンク情報３０４を上記第２ＣＰＵ用オブジェクトコードと上記共通ライブラリオブジェクトコードにリンクさせて実行可能コード３０６を生成する。
【００３１】
なお、上記の各先頭アドレスは、対応する各オブジェクトコードが内部メモリ１０１に格納される際に必要とされる記憶容量を考慮して決定される。
【００３２】
また、上記において共通オブジェクトコードが記述される共通ライブラリ領域においては読み出し専用のテキスト命令が作成され、第１ＣＰＵ１０３用あるいは第２ＣＰＵ１０４用のオブジェクトコードが記述される領域においては読み出し専用のテキスト命令と読み書き可能なデータ領域とが作成される。
【００３３】
ここで、オブジェクトコード３０１及びオブジェクトコード３０３に含まれる共通オブジェクトコードは全く同じものとされ、リンク情報３０２，３０４に含まれる該共通オブジェクトコードに対応した先頭アドレスも同じアドレスとされる。従って、上記実行可能コード３０５，３０６が共に内部メモリ１０１へロードされた場合には、図２に示されるように共通オブジェクトコードが共有される。
【００３４】
これより、本実施の形態に係る情報処理においては、後述するように第１ＣＰＵ１０３と第２ＣＰＵ１０４とにおいて一つの共通オブジェクトコードが共用されるため、必要とされる内部メモリ１０１の容量が低減される。
【００３５】
次に、図１を参照しつつ、上記情報処理システムにおいて実現される上記実行可能コード３０５，３０６を用いた情報処理方法を説明する。
【００３６】
図１に示されるように、外部メモリ１１０には予め共通ライブラリ４１２と第１ＣＰＵコード群ＣＧ０、及び第２ＣＰＵコード群ＣＧ１の３種類の実行可能ファイルが格納される。ここで、第１ＣＰＵコード群ＣＧ０には第１ＣＰＵ１０３をコーデックＡのエンコーダとして動作させる命令コード４１３と第１ＣＰＵ１０３をコーデックＣのエンコーダとして動作させる命令コード４１５とが含まれる。また、第２ＣＰＵコード群ＣＧ１には第２ＣＰＵ１０４をコーデックＢのデコーダとして動作させる命令コード４１４と第２ＣＰＵ１０３をコーデックＤのデコーダとして動作させる命令コード４１６とが含まれる。
【００３７】
なお、共通ライブラリ４１２は第１ＣＰＵ１０３と第２ＣＰＵ１０４とにおいて共用される命令と、該命令の内部メモリ１０１内における配置先を指定するアドレスとを含み、先頭アドレスが予め決められる。また、命令コード４１３，４１５は、第１ＣＰＵ１０３に対する命令とデータ及びそれらの内部メモリ１０１内における配置先を示すアドレスを含む。同様に命令コード４１４，４１６は、第２ＣＰＵ１０４に対する命令とデータ及びそれらの内部メモリ１０１内における配置先を示すアドレスを含む。
【００３８】
そして、初回起動時には、共通ライブラリ４１２と第１ＣＰＵ用の命令コード４１３及び第２ＣＰＵ用の命令コード４１４が、ブートストラップを使って内部メモリ１０１にロードされる。このとき、共通ライブラリ４１２は第１ＣＰＵ１０３と第２ＣＰＵ１０４とにより共用されるので、一度だけ内部メモリ１０１にロードされれば足りる。
【００３９】
また、本実施の形態においては、内部メモリ１０１の記憶領域が第１領域Ｒ１と第２領域Ｒ２及び第３領域Ｒ３に予め分割され、上記共通ライブラリ４１２は第１領域Ｒ１に格納され、第１ＣＰＵ用の命令コード４１３，４１５は第２領域Ｒ２に格納され、第２ＣＰＵ用の命令コード４１４，４１６は第３領域Ｒ３に格納される。
【００４０】
以下において、図３を参照しつつ、本実施の形態に係る情報処理をより詳しく説明する。ステップＳ１においてホストＣＰＵ４１１が第１ＣＰＵ１０３をリセットし、ステップＳ２においてホストＣＰＵ４１１が第２ＣＰＵ１０４をリセットする。そして、ステップＳ３では、ホストＣＰＵ４１１がブート用メモリ１０５に第１ＣＰＵ用のブートストラップを書き込み、ステップＳ４においてホストＣＰＵ４１１が同じブート用メモリ１０５に第２ＣＰＵ用のブートストラップを書き込む。
【００４１】
ステップＳ５においてはホストＣＰＵ４１１が第１ＣＰＵ１０３のリセット状態を解除し、ステップＳ６においてはホストＣＰＵ４１１が第２ＣＰＵ１０４のリセット状態を解除する。
【００４２】
ステップＳ７では、ホストＣＰＵ４１１の指示により第１ＣＰＵ１０３がブート用メモリ１０５に格納された第１ＣＰＵ用のブートストラップを実行し、第１ＣＰＵ１０３がＤＭＡコントローラ１０２を用いて外部メモリ１１０から内部メモリ１０１へ共通ライブラリ４１２と第１ＣＰＵ用の命令コード４１３とをＤＭＡ転送する。
【００４３】
次に、ステップＳ８においては、ホストＣＰＵ４１１の指示により第２ＣＰＵ１０４がブート用メモリ１０５に格納された第２ＣＰＵ用のブートストラップを実行し、第２ＣＰＵ１０４がＤＭＡコントローラ１０２を用いて外部メモリ１１０から内部メモリ１０１へ第２ＣＰＵ用の命令コード４１４をＤＭＡ転送する。
【００４４】
そして、ステップＳ９において、第１ＣＰＵ１０３は命令コード４１３の該ＤＭＡ転送が終了したことを確認した後に、内部メモリ１０１に格納された第１ＣＰＵ用の命令コード４１３を実行する。また、ステップＳ１０において、第２ＣＰＵ１０４は命令コード４１４の該ＤＭＡ転送が終了したことを確認した後に、内部メモリ１０１に格納された第２ＣＰＵ用の命令コード４１４を実行する。
【００４５】
なお、上記ステップＳ９及びステップＳ１０において、第１ＣＰＵ１０３と第２ＣＰＵ１０４は必要に応じて内部メモリ１０１に格納された共通ライブラリ４１２を読み出して実行する。
【００４６】
これより、ステップＳ１１において第１ＣＰＵ１０３はコーデックＡのエンコーダとして動作を開始し、ステップＳ１２において第２ＣＰＵ１０４はコーデックＢのデコーダとして動作を開始する。
【００４７】
次に、図１及び図４を参照して、第１ＣＰＵ１０３あるいは第２ＣＰＵ１０４の機能を変更する場合の情報処理方法を説明する。本実施の形態に係る情報処理方法においては、少なくとも第１ＣＰＵ１０３又は第２ＣＰＵ１０４のいずれか一方の機能を変更する場合には、内部メモリ１０１にロードされている第１ＣＰＵ用あるいは第２ＣＰＵ用の命令コードを入れ替える必要がある。
【００４８】
従って、第１ＣＰＵ１０３の機能を変更する場合には、第１ＣＰＵコード群ＣＧ０に含まれた第１ＣＰＵ用の他の命令コードを内部メモリ１０１にロードし、第２ＣＰＵ１０４の機能を変更する場合には、第２ＣＰＵコード群ＣＧ１に含まれた第２ＣＰＵ用の他の命令コードを内部メモリ１０１にロードして実行する。
【００４９】
このとき、各ＣＰＵは共通ライブラリ４１２に記述されたコードを読み取ると共に、内部メモリ１０１における該ＣＰＵ専用のデータ領域においてデータの読み書きを実行しているため、上記のような命令コードの入れ替えは他のＣＰＵの動作に影響を与えることがない。
【００５０】
以下において、図４を参照しつつ、図１に示された第１ＣＰＵ１０３に対する機能変更方法の具体例を詳しく説明する。
【００５１】
まずステップＳ１において、上記のように第１ＣＰＵ１０３はコーデックＡでデータをエンコードし、第２ＣＰＵ１０４は上記のように第１ＣＰＵ１０３の動作によりエンコードされたデータをコーデックＢでデコードしているものとする。
【００５２】
次に、ステップＳ２においてホストＣＰＵ４１１が第１ＣＰＵ１０３をリセットする。そして、ステップＳ３において、ホストＣＰＵ４１１がブート用メモリ１０５に第１ＣＰＵ用のブートストラップを書き込む。
【００５３】
ステップＳ４において、ホストＣＰＵ４１１が第１ＣＰＵ１０３のリセット状態を解除する。さらに、ステップＳ５において第１ＣＰＵ１０３はブート用メモリ１０５に書き込まれたブートストラップを実行し、第１ＣＰＵ１０３はＤＭＡコントローラ１０２を用いて外部メモリ１１０から内部メモリ１０１へ第１ＣＰＵ用の命令コード４１５のみをＤＭＡ転送する。
【００５４】
次に、ステップＳ６において、第１ＣＰＵ１０３は命令コード４１５の該ＤＭＡ転送が終了したことを確認した後に、内部メモリ１０１に格納された命令コード４１５を実行する。これより、第１ＣＰＵ１０３はその機能が変更され、ステップＳ７においてコーデックＣのエンコーダとして動作する。
【００５５】
以上より、本発明の実施の形態に係る情報処理方法においては、外部メモリ１１０あるいはサーバ１２０に格納される共通ライブラリ４１２が第１ＣＰＵ１０３と第２ＣＰＵ１０４とにおいて共用される。また、各ＣＰＵにより実行されるオブジェクトコードが独立して外部メモリ１１０等に格納され、該オブジェクトコードを単位として内部メモリ１０１へロードされる。
【００５６】
これより、本発明の実施の形態に係る情報処理方法によれば、他のＣＰＵの動作に影響を与えることなく各ＣＰＵの機能を変更することができると共に、外部メモリ１１０等に保持すべきコードのサイズを低減することができる。
【００５７】
また、本発明の実施の形態に係る情報処理方法によれば、上記機能の変更に際して入れ替えるべき内部メモリ１０１内の命令コードのサイズが低減されるため、高速にＣＰＵの機能を変更することができる。
【００５８】
なお、上記情報処理方法はコンピュータにより実行されるプログラムにより記述でき、さらに該プログラムはフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に記録することができる。従って、該プログラムをコンピュータにより実行することにより、本実施の形態に係る情報処理方法を容易に実現することができる。
【００５９】
以上より、本発明の実施の形態に係る情報処理方法によれば、複数のコーデックによる音声圧縮展開プログラムを外部メモリ１１０に効率的に保持することができると共に、あるＣＰＵに実行させるプログラム（命令コード）を他のＣＰＵの動作に影響を与えることなく入れ替えることができる。
【００６０】
【発明の効果】
本発明に係る情報処理方法あるいは該方法を実現するためのプログラム若しくは該プログラムを記録した記録媒体によれば、外部記憶手段に必要とされる記憶容量と、外部記憶手段から内部記憶手段にロードすべき情報量とを低減することができるため、該システム規模及びコストを低減し、該システムにおける情報処理速度を高めることができる。
【００６１】
また、本発明に係る情報処理方法あるいは該方法を実現するためのプログラム若しくは該プログラムを記録した記録媒体によれば、他の中央演算処理装置の動作に影響を与えることなく、選択された中央演算処理装置の機能を容易に変更することができるため、動作の信頼性を担保しつつ該システムの汎用性を高めることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る情報処理を説明する図である。
【図２】本発明の実施の形態に係る実行可能コードを説明する図である。
【図３】図１に示された第１ＣＰＵ及び第２ＣＰＵの動作を示すフローチャートである。
【図４】図１に示された第１ＣＰＵに対する機能変更方法の具体例を示すフローチャートである。
【図５】従来の情報処理システムの構成を示すブロック図である。
【図６】従来の実行可能コードを説明する図である。
【図７】図５に示された情報処理システムの動作を説明する図である。
【図８】図５に示された第１ＣＰＵ及び第２ＣＰＵの動作を示すフローチャートである。
【符号の説明】
１　チップ、３　バス、１０１　内部メモリ、１０２　ＤＭＡコントローラ、１０３　第１ＣＰＵ、１０４　第２ＣＰＵ、１０５　ブート用メモリ、１１０　外部メモリ、１１１，４１１　ホストＣＰＵ、１２０　サーバ、２１２　第１命令コード、２１３　第２命令コード、２１４　第３命令コード、２１５　第４命令コード、３０２，３０４，５０５　リンク情報、３０５，３０６，５０６　実行可能コード、４１２　共通ライブラリ、４１３〜４１６　命令コード、５０１　オブジェクトコード、ＣＧ０　第１ＣＰＵコード群、ＣＧ１　第２ＣＰＵコード群。
【図１】
2004078604.tif 000003
【図２】
2004078604.tif 000004
【図３】
2004078604.tif 000005
【図４】
2004078604.tif 000006
【図５】
2004078604.tif 000007
【図６】
2004078604.tif 000008
【図７】
2004078604.tif 000009
【図８】
2004078604.tif 000010