(57)【要約】【課題】既存の構成に対して容易にプロセッサを追加して構成し得る情報処理装置、制御方法及び制御プログラムを実現する。【解決手段】情報処理装置１では、メモリコントローラ４とメモリ１０との間にメモリバスブリッジ６を介してサブプロセッサ８を接続するようにしたことにより、メインプロセッサシステムバス３を介して接続されるメインプロセッサ２とメモリコントローラ４とからなる構成をくずさずに、すなわち既存の汎用的な構成をくずさずに容易にサブプロセッサ８を追加して構成することができる。【選択図】図１
2007141166.tif 000002
【特許請求の範囲】
【請求項１】
装置全体の動作を制御するメインプロセッサと、
上記メインプロセッサにメインプロセッサシステムバスを介して接続されるメモリコントローラと、
上記メモリコントローラに第１のメモリバスを介して接続されるメモリバスブリッジと、
上記メモリバスブリッジにサブプロセッサシステムバスを介して接続されるサブプロセッサと、
上記メモリバスブリッジに第２のメモリバスを介して接続され、上記メインプロセッサ及び上記サブプロセッサから上記メモリバスブリッジを介してアクセスされるメモリと
を具えることを特徴とする情報処理装置。
【請求項２】
上記メモリバスブリッジと上記サブプロセッサとはパッケージ化されている
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
上記メモリバスブリッジは、
上記メインプロセッサ及び上記サブプロセッサがアクセス可能なメモリ空間を示すテーブル情報を保持し、当該テーブル情報に基づいて、上記メインプロセッサ又は上記サブプロセッサによる上記メモリへのアクセスを制限する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
上記メインプロセッサは、
上記サブプロセッサに対する制御コマンドを上記メモリバスブリッジ内のコマンドレジスタに書き込み、上記サブプロセッサに対して割り込み信号を発行するように上記メモリバスブリッジ内のコントロールレジスタを更新し、
上記サブプロセッサは、
上記コントロールレジスタの更新に伴う上記メモリバスブリッジからの割り込み信号に基づいて、上記コマンドレジスタに書き込まれた制御コマンドを読み出し、当該読み出した制御コマンドに応じて、上記メモリバスブリッジを介して上記メモリにアクセスする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
情報処理装置におけるメインプロセッサがサブプロセッサを制御する制御方法であって、
上記メインプロセッサとメインプロセッサシステムバス、メモリコントローラ、第１のメモリバス、メモリバスブリッジ、及びサブプロセッサシステムバスを順次介して接続される上記サブプロセッサが、上記メモリバスブリッジと第２のメモリバスを介して接続されるメモリに上記メモリバスブリッジを介してアクセスするように、上記サブプロセッサを制御するための制御コマンドを、上記メモリバスブリッジ内のコマンドレジスタに書き込むコマンドレジスタ書込ステップと、
上記コマンドレジスタに書き込んだ上記制御コマンドを上記サブプロセッサに直ちに読み出させるための割り込み信号を、上記サブプロセッサに対して発行するように上記メモリバスブリッジ内のコントロールレジスタを更新するコントロールレジスタ更新ステップと
を具えることを特徴とする制御方法。
【請求項６】
情報処理装置におけるメインプロセッサがサブプロセッサを制御する制御プログラムであって、
上記メインプロセッサに対して、
上記メインプロセッサとメインプロセッサシステムバス、メモリコントローラ、第１のメモリバス、メモリバスブリッジ、及びサブプロセッサシステムバスを順次介して接続される上記サブプロセッサが、上記メモリバスブリッジと第２のメモリバスを介して接続されるメモリに上記メモリバスブリッジを介してアクセスするように、上記サブプロセッサを制御するための制御コマンドを、上記メモリバスブリッジ内のコマンドレジスタに書き込むコマンドレジスタ書込ステップと、
上記コマンドレジスタに書き込んだ上記制御コマンドを上記サブプロセッサに直ちに読み出させるための割り込み信号を、上記サブプロセッサに対して発行するように上記メモリバスブリッジ内のコントロールレジスタを更新するコントロールレジスタ更新ステップと
を実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、制御方法及び制御プログラムに関し、例えば複数のプロセッサを有する情報処理装置に適用して好適なものである。
【背景技術】
【０００２】
従来、情報処理装置の処理能力を向上させる手法として、情報処理装置の中心部であるプロセッサの動作周波数を高める手法が広く採用されてきた。この結果として、シングルプロセッサの情報処理装置が広く普及している。ちなみに、ここで言うプロセッサとは、プロセッサコアをチップ化したもの、あるいはプロセッサコアとこのプロセッサコアに直接接続されるキャッシュメモリなどとを１つにチップ化したものを指す。
【０００３】
しかしながら近年、プロセッサの動作周波数を高めることに伴う消費電力及び発熱量の急激な増加が深刻な問題になりつつある。そこで、情報処理装置に配するプロセッサの数を増やすことで、消費電力及び発熱量を抑えつつ処理能力を向上させる、いわゆるマルチプロセッサが注目されている。
【０００４】
ところで、プロセッサの動作には、例えば、プロセッサの作業領域となるメモリと、プロセッサからこのメモリへのアクセスを制御するメモリコントローラとを必要とする。つまりマルチプロセッサの情報処理装置の場合、複数のプロセッサと、複数のプロセッサの作業領域となる１または複数のメモリと、複数のプロセッサからこのメモリへのアクセスを制御する１または複数のメモリコントローラとを有している。
【０００５】
実際に、このようなマルチプロセッサの情報処理装置として、装置全体のシステム制御を受け持つ１個のメインプロセッサと、グラフィックス処理を受け持つ１個のサブプロセッサと、メインプロセッサ及びサブプロセッサで共用する１個のメモリと、これらの間に配されメインプロセッサからメモリへのアクセス及びサブプロセッサからメモリへのアクセスの両方を制御する１個のメモリコントローラとを有する情報処理装置が提案されている（例えば特許文献１参照）。
【特許文献１】特表２００４−５０３８５９公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、マルチプロセッサの情報処理装置については、既存の汎用アーキテクチャであるシングルプロセッサの情報処理装置が広く普及している現状から、開発コストの削減などを理由として、シングルプロセッサで培ってきたハードウェア資産（プロセッサ、メモリコントローラ、メモリなど）及びソフトウェア資産を有効利用すること、つまり既存の構成に対して容易にプロセッサを追加して構成し得ることが要求されている。
【０００７】
しかしながら、上述したようなマルチプロセッサの情報処理装置の場合、メインプロセッサについては、シングルプロセッサ用のプロセッサを流用できるものの、メモリコントローラについては、メインプロセッサ及びサブプロセッサによる両プロセッサからのメモリアクセスに対応するマルチプロセッサ専用のメモリコントローラを新たに設ける必要があり、このためシングルプロセッサ用のメモリコントローラを流用することはできず、結果として、既存の構成に対して容易にプロセッサを追加して構成し得るとは言い難い。
【０００８】
また、実際上プロセッサとメモリコントローラとは、プロセッサパッケージとして１チップにパッケージ化されていることがあり、この場合、メモリコントローラをマルチプロセッサ専用にすると、このマルチプロセッサ専用のメモリコントローラとプロセッサとをパッケージ化したマルチプロセッサ専用のプロセッサパッケージを新たに設ける必要があるため、シングルプロセッサ用のプロセッサも流用することができなくなり、結果として、既存の構成に対して容易にプロセッサを追加して構成し得るとは言い難い。
【０００９】
このように従来では、既存の構成に対して容易にプロセッサを追加して構成し得ることができないという問題があった。
【００１０】
本発明は以上の点を考慮してなされたもので、既存の構成に対して容易にプロセッサを追加して構成し得る情報処理装置、制御方法及び制御プログラムを提案しようとするものである。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため本発明の情報処理装置においては、装置全体の動作を制御するメインプロセッサと、メインプロセッサにメインプロセッサシステムバスを介して接続されるメモリコントローラと、メモリコントローラに第１のメモリバスを介して接続されるメモリバスブリッジと、メモリバスブリッジにサブプロセッサシステムバスを介して接続されるサブプロセッサと、メモリバスブリッジに第２のメモリバスを介して接続され、メインプロセッサ及びサブプロセッサによりメモリバスブリッジを介してアクセスされるメモリとを設けるようにした。
【００１２】
このように、メモリコントローラとメモリとの間にメモリバスブリッジを介してサブプロセッサを接続するようにしたことにより、メインプロセッサシステムバスを介して接続されるメインプロセッサとメモリコントローラとからなる構成をくずさずに、すなわち既存の構成をくずさずに容易にサブプロセッサを追加して構成することができる。
【発明の効果】
【００１３】
本発明によれば、装置全体の動作を制御するメインプロセッサと、メインプロセッサにメインプロセッサシステムバスを介して接続されるメモリコントローラと、メモリコントローラに第１のメモリバスを介して接続されるメモリバスブリッジと、メモリバスブリッジにサブプロセッサシステムバスを介して接続されるサブプロセッサと、メモリバスブリッジに第２のメモリバスを介して接続され、メインプロセッサ及びサブプロセッサによりメモリバスブリッジを介してアクセスされるメモリとを設けるようにしたことにより、メインプロセッサシステムバスを介して接続されるメインプロセッサとメモリコントローラとからなる構成をくずさずに、すなわち既存の構成をくずさずに容易にサブプロセッサを追加して構成することができ、かくして既存の構成に対して容易にプロセッサを追加して構成し得る情報処理装置、制御方法及び制御プログラムを実現し得る。
【発明を実施するための最良の形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）第１の実施の形態
（１−１）概要
まず、本実施の形態の概要を説明する。図１に示すように、情報処理装置１は、装置全体の動作を制御するメインプロセッサ２と、メインプロセッサ２にメインプロセッサシステムバス３を介して接続されるメモリコントローラ４と、メモリコントローラ４に第１のメモリバス５を介して接続されるメモリバスブリッジ６と、メモリバスブリッジ６にサブプロセッサシステムバス７を介して接続されるサブプロセッサ８と、メモリバスブリッジ６に第２のメモリバス９を介して接続され、メインプロセッサ２及び上記サブプロセッサ８からメモリバスブリッジ６を介してアクセスされるメモリ１０とを有したマルチプロセッサ構成でなる。
【００１６】
このように、この情報処理装置１では、メモリコントローラ４とメモリ１０との間にメモリバスブリッジ６を介してサブプロセッサ８を接続するようにしたことにより、メインプロセッサシステムバス３を介して接続されるメインプロセッサ２とメモリコントローラ４とからなる構成をくずさずに、すなわち既存の汎用的な構成をくずさずに容易にサブプロセッサ８を追加して構成することができる。
【００１７】
またこの情報処理装置１では、メモリバスブリッジ６とサブプロセッサ８とがサブプロセッサパッケージとしてパッケージ化されていてもよく、この場合、このサブプロセッサパッケージをメモリコントローラ４とメモリ１０との間に接続するだけで、容易にマルチプロセッサ構成を実現し得る。
【００１８】
さらにこの情報処理装置１では、メモリバスブリッジ６に対してメインプロセッサ２及びサブプロセッサ８がアクセス可能なメモリ空間を示すテーブル情報を保持させ、このテーブル情報に基づいて、メインプロセッサ２又はサブプロセッサ８によるメモリ１０へのアクセスを制限するようにしてもよい。
【００１９】
さらにこの情報処理装置１では、メインプロセッサ２が、サブプロセッサ８に対する制御コマンドをメモリバスブリッジ６内のコマンドレジスタ１１に書き込み、サブプロセッサ８に対して割り込み信号を発行するようにメモリバスブリッジ６内のコントロールレジスタ１２を更新し、サブプロセッサ８が、コントロールレジスタ１２の更新に伴うメモリバスブリッジ６からの割り込み信号に基づいて、コマンドレジスタ１１に書き込まれた制御コマンドを読み出し、この読み出した制御コマンドに応じて、メモリバスブリッジ６を介してメモリ１０にアクセスするようにして、メインプロセッサ２からサブプロセッサ８を制御するようにしてもよい。
【００２０】
（１−２）マルチプロセッサシステムの構成
次に、上述した情報処理装置１の具体例である、マルチプロセッサシステムについて図２を用いて説明する。
【００２１】
図２に示すように、マルチプロセッサシステム２０は、メインプロセッサ２１とサブプロセッサ２２とを有するマルチプロセッサ構成でなる。メインプロセッサ２１は、メインプロセッサシステムバス２３を介してメモリコントローラ２４に接続され、さらにこのメモリコントローラ２４には、メモリバス２５、メモリバスブリッジ２６（詳しくは後述する）及びメモリバス２７を順次介してメモリ２８が接続されている。またサブプロセッサ２２は、サブプロセッサシステムバス２９を介してメモリバスブリッジ２６に接続されている。
【００２２】
つまりこのマルチプロセッサシステム２０では、メモリコントローラ２４とメモリ２８との間に、メモリバスブリッジ２６を挟み込み、さらにこのメモリバスブリッジ２６にサブプロセッサ２２を接続した構成でなり、メインプロセッサ２１とサブプロセッサ２２とがメモリ２８を共用するようになされている。ちなみに、このマルチプロセッサシステム２０では、メインプロセッサ２１とメモリコントローラ２４とがメインプロセッサシステムバス２３を介して接続された状態で、メインプロセッサパッケージとしてパッケージ化されていてもよく、また同様に、サブプロセッサ２２とメモリバスブリッジ２６とがサブプロセッサシステムバス２９を介して接続された状態で、サブプロセッサパッケージとしてパッケージ化されていてもよい。
【００２３】
ここで、メインプロセッサ２１がメモリ２８へアクセスする場合、メインプロセッサ２１は、メモリコントローラ２４に対してメモリ２８へのアクセス要求を送る。メモリコントローラ２４は、このアクセス要求をメモリバス２５の信号的な仕様に合わせたアクセス要求に変換してメモリバス２５へ出力する。このアクセス要求は、メモリバスブリッジ２６によりメモリバス２５からメモリバス２７へと中継されてメモリ２８に送られる。このようにしてメインプロセッサ２１は、メモリコントローラ２４を介してメモリ２８へアクセスし得るようになされている。ここで、メインプロセッサ２１からのメモリ２８へのアクセス要求は、メモリバスブリッジ２６によりメモリコントローラ２４からメモリ２８へ中継されるため、メインプロセッサ２１は、メモリバスブリッジ２６及びこのメモリバスブリッジ５５に接続されたサブプロセッサ２２を意識することなく、メモリ２８へアクセスすることができる。
【００２４】
一方、サブプロセッサ２２がメモリ２８へアクセスする場合、メモリバスブリッジ２６がメモリコントローラ２４と同様の働きをする。つまりサブプロセッサ２２は、メモリバスブリッジ２６を介してメモリ２８へアクセスし得るようになされている。
【００２５】
またメモリバスブリッジ２６は、メインプロセッサ２１がサブプロセッサ２２を制御するためのサブプロセッサコントロールレジスタ２６Ａを有している。このサブプロセッサコントロールレジスタ２６Ａには、メモリ２８のアドレスとは異なるアドレスが割り当てられ、さらにそのアドレスがメインプロセッサ２１及びサブプロセッサ２２から見てメモリ２８と同じメモリ空間上に設定されていて、メモリ２８へのアクセスと同じようにしてメインプロセッサ２１及びサブプロセッサ２２からアクセスすることができるようになっている。
【００２６】
つまりメインプロセッサ２１は、このサブプロセッサコントロールレジスタ２６Ａへアクセスして、サブプロセッサ２２とコマンドなどの受け渡しを行うことにより、メモリ２８へのアクセスとほぼ同じ要領で、容易にサブプロセッサ２２を制御し得るようになされている。
【００２７】
ここで、このメモリバスブリッジ２６について、図３を用いて詳しく説明する。この図３に示すように、メモリバスブリッジ２６は、上述したサブプロセッサコントロールレジスタ２６Ａに加えて、ブリッジ／アービタ２６Ｂを有している。このブリッジ／アービタ２６Ｂは、メモリバス２５、メモリバス２７及びサブプロセッサシステムバス２９に接続され、メモリコントローラ２４を介して行われるメインプロセッサ２１からメモリ２８へのアクセス、及びサブプロセッサ２２からメモリ２８へのアクセスを中継すると共に、メインプロセッサ２１からのアクセスとサブプロセッサ２２からのアクセスとのタイミングが重なった場合に調停する機能を持つ。ちなみに、このブリッジ／アービタ２６Ｂは、サブプロセッサ２２がメモリ２８へアクセスする場合のメモリコントローラとしても機能する。
【００２８】
さらにこのブリッジ／アービタ２６Ｂは、メモリバスブリッジ２６内部でサブプロセッサコントロールレジスタ２６Ａに接続され、メモリコントローラ２４を介して行われるメインプロセッサ２１からのアクセスが、メモリ２８へのアクセスではなくサブプロセッサコントロールレジスタ２６Ａへのアクセスである場合にこれを検出すると共に、サブプロセッサ２２からのアクセスが、サブプロセッサコントロールレジスタ２６Ａへのアクセスである場合にこれを検出する機能を持つ。実際上、このブリッジ／アービタ２６Ｂは、例えば、メインプロセッサ２１からのアクセスが、サブプロセッサコントロールレジスタ２６Ａのアドレスを指定するアクセスである場合に、このアクセスが、サブプロセッサコントロールレジスタ２６Ａへのアクセスであることを検出するようになされている。
【００２９】
このようにしてメインプロセッサ２１及びサブプロセッサ２２からのアクセスが、サブプロセッサコントロールレジスタ２６Ａへのアクセスであることを検出すると、ブリッジ／アービタ２６Ｂは、サブプロセッサコントロールレジスタ２６Ａにアクセスする。
【００３０】
サブプロセッサコントロールレジスタ２６Ａは、主としてサブプロセッサ２２の制御に用いられる８ビットのコントロールレジスタＣｔＲと、メインプロセッサ２１及びサブプロセッサ２２間でのコマンドの受け渡しに用いられるｎビットのコマンドレジスタＣｍＲとでなる。このコントロールレジスタＣｔＲには、図３にくわえて図４に示すように、ＬＳＢ（Least Significant Bit：最下位ビット）のビットフィールドｒ１に対応付けて割り込み線３０が接続され、またビットフィールドｒ１の２ビット上位になるビットフィールドｒ３に対応付けて割り込み線３１が接続され、さらにビットフィールドｒ１の１ビット上位（すなわちビットフィールドｒ３の１ビット下位）になるビットフィールドｒ２に対応付けてリセット線３２が接続されている。
【００３１】
ここで割り込み線３０は、メインプロセッサ２１に対して割り込みをかけるための割り込み信号を発行するラインであり、直接メインプロセッサ２１に接続されている。また割り込み線３１は、サブプロセッサ２２に対して割り込みをかけるための割り込み信号を発行するライン、リセット線３２は、サブプロセッサ２２に対してリセットをかけるためのリセット信号を発行するラインであり、共に直接サブプロセッサ２２に接続されている。
【００３２】
つまり、メインプロセッサ２１は、メモリバス２５、ブリッジ／アービタ２６Ｂを順次介してサブプロセッサコントロールレジスタ２６ＡのコントロールレジスタＣｔＲにアクセスできるだけでなく、割り込み線３０を介してコントロールレジスタＣｔＲから直接割り込み信号を受けることができるようになっている。一方、サブプロセッサ２２も、ブリッジ／アービタ２６Ｂを介してサブプロセッサコントロールレジスタ２６ＡのコントロールレジスタＣｔＲにアクセスできるだけでなく、割り込み線３１及びリセット線３２を介してコントロールレジスタＣｔＲから直接割り込み信号及びリセット信号を受けることができるようになっている。
【００３３】
実際上、メインプロセッサ２１は、必要に応じて、メモリバス２５、ブリッジ／アービタ２６Ｂを順次介してコントロールレジスタＣｔＲのビットフィールドｒ３にビット値「１」を書き込む。するとコントロールレジスタＣｔＲから、このビットフィールドｒ３に対応付けて接続されている割り込み線３１を介してサブプロセッサ２２に割り込み信号が発行されて、サブプロセッサ２２に割り込みがかかる。
【００３４】
また、メインプロセッサ２１は、必要に応じて、メモリバス２５、ブリッジ／アービタ２６Ｂを順次介してコントロールレジスタＣｔＲのビットフィールドｒ２にビット値「１」を書き込む。するとコントロールレジスタＣｔＲから、このビットフィールドｒ２に対応付けて接続されているリセット線３２を介してサブプロセッサ２２にリセット信号が発行されて、サブプロセッサ２２にリセットがかかる。
【００３５】
このようにメインプロセッサ２１は、コントロールレジスタＣｔＲへの書き込みにより、サブプロセッサ２２に対する割り込み制御及びリセット制御を行うようになされている。
【００３６】
一方、サブプロセッサ２２は、必要に応じて、ブリッジ／アービタ２６Ｂを介してコントロールレジスタＣｔＲのビットフィールドｒ１にビット値「１」を書き込む。するとコントロールレジスタＣｔＲから、このビットフィールドｒ１に対応付けて接続されている割り込み線３０を介してメインプロセッサ２１に割り込み信号が発行されて、メインプロセッサ２１に割り込みがかかる。このようにサブプロセッサ２２側からも、コントロールレジスタＣｔＲへの書き込みにより、メインプロセッサ２２に対して割り込みをかけられるようになっている。
【００３７】
（１−３）アクセス手順
ここで、メインプロセッサ２１がメモリ２８及びサブプロセッサコントロールレジスタ２６Ａへアクセスする手順（以下、これをメイン側アクセス手順とも呼ぶ）について、図５に示すフローチャートを用いて詳細に説明する。ちなみに、このメイン側アクセス手順ＲＴ１は、メインプロセッサ２１が、このメイン側アクセス手順ＲＴ１に対応するプログラムを、例えばメインプロセッサシステムバス２３に接続された図示しないＲＯＭ（Read Only Memory）から読み出してメモリ２８の所定アドレス領域に展開して実行することにより、メモリコントローラ２４及びメモリバスブリッジ２６のブリッジ／アービタ２６Ｂを利用して行う処理手順であるので、主体を適宜変更しながら説明する。
【００３８】
まずメインプロセッサ２１は、メモリ２８またはサブプロセッサコントロールレジスタ２６Ａへアクセスする必要が生じると、このメイン側アクセス手順ＲＴ１をステップＳＰ１から開始して、次のステップＳＰ２に移る。ステップＳＰ２においてメインプロセッサ２１は、メモリ２８へのアクセス要求、サブプロセッサコントロールレジスタ２６ＡのコントロールレジスタＣｔＲへのアクセス要求、またはサブプロセッサコントロールレジスタ２６ＡのコマンドレジスタＣｍＲへのアクセス要求のいずれかを、メインプロセッサシステムバス２３を介してメモリコントローラ２４へ送る。
【００３９】
メモリコントローラ２４は、メインプロセッサ２１からのアクセス要求を受けると、ステップＳＰ３において、このアクセス要求をメモリバス２５の信号的な仕様に合わせたアクセス要求に変換してメモリバス２５へ出力する。そしてこのアクセス要求が、メモリバス２５を介してメモリバスブリッジ２６のブリッジ／アービタ２６Ｂへ送られる。
【００４０】
ここで、このアクセス要求がメモリ２８へのアクセス要求である場合、ステップＳＰ３から移るステップＳＰ４において、ブリッジ／アービタ２６Ｂは、メモリバス２５から送られてくるアクセス要求をメモリバス２７へ中継する。この結果、続くステップＳＰ５において、このアクセス要求によるアクセスがメモリ２８に対して行われ、そのアクセス結果がメモリ２８からメモリバス２７へ返される。
【００４１】
そしてこのアクセス結果が、メモリバス２７を介してブリッジ／アービタ２６Ｂへ送られる。メモリバス２７からアクセス結果が送られてくると、ブリッジ／アービタ２６Ｂは、ステップＳＰ６において、このアクセス結果をメモリバス２５へ中継する。そしてこのアクセス結果が、メモリバス２５を介してメモリコントローラ２４へ送られる。メモリバス２５からアクセス結果が送られてくると、メモリコントローラ２４は、ステップＳＰ７において、このアクセス結果をメインプロセッサシステムバス２３へ中継する。ちなみに、このときメモリコントローラ２４は、メモリバス２５から送られてきたアクセス結果に対して、メインプロセッサシステムバス２３の信号的な仕様に合わせた変換処理を施すようになされている。
【００４２】
メインプロセッサ２１は、ステップＳＰ８において、メインプロセッサシステムバス２３からアクセス結果を受け取ることで、メモリ２８へのアクセスを終了し、つづく終了ステップＳＰ９に移り、このメイン側アクセス手順ＲＴ１を終了する。
【００４３】
このように、メインプロセッサ２１からメモリ２８へのアクセス要求は、メインプロセッサ２１からメインプロセッサシステムバス２３、メモリコントローラ２４、メモリバス２５、メモリバスブリッジ２６へと送られ、さらにこのメモリバスブリッジ２６により、メモリバス２７へと中継されてメモリ２８へ送られる。この結果、メインプロセッサ２１は、メモリバス２５及びメモリバス２７間（つまりメモリコントローラ２４及びメモリ２８間）にメモリバスブリッジ２６を介してサブプロセッサ２２が追加されていることを意識することなく、メモリコントローラ２４とメモリ２８とが例えばメモリバス２５を介して直接接続されている場合（すなわち既存の構成の場合）とほぼ同じように、メモリ２８にアクセスし得るようになされている。
【００４４】
これに対して、メインプロセッサ２１からのアクセス要求がメモリ２８に対してではなくコントロールレジスタＣｔＲへのアクセス要求である場合、ステップＳＰ３から移るステップＳＰ１０において、ブリッジ／アービタ２６Ｂは、メモリバス２５から送られてくるアクセス要求がコントロールレジスタＣｔＲへのアクセス要求であることを、アクセス要求に指定されたアドレスより検出して、次のステップＳＰ１１に移る。ステップＳＰ１１においてブリッジ／アービタ２６Ｂは、このアクセス要求によるアクセスをコントロールレジスタＣｔＲに対して行う。これによりコントロールレジスタＣｔＲの各ビットフィールドｒ１〜ｒ８には、アクセス要求に基づくビット値（「０」または「１」）が書き込まれる。この結果、つづくステップＳＰ１２において、ビットフィールドｒ３のビット値、及びビットフィールドｒ２のビット値に応じて、サブプロセッサ２２への割り込み信号及びリセット信号の出力が制御される。
【００４５】
すなわち、メインプロセッサ２１からのアクセス要求により、コントロールレジスタＣｔＲのビットフィールドｒ３にビット値「１」が書き込まれると、コントロールレジスタＣｔＲから、このビットフィールドｒ３に対応する割り込み線３１を介して、サブプロセッサ２２に割り込み信号が送られて、サブプロセッサ２２に割り込みがかかる。また、コントロールレジスタＣｔＲのビットフィールドｒ２にビット値「１」が書き込まれると、コントロールレジスタＣｔＲから、このビットフィールドｒ２に対応するリセット線３２を介して、サブプロセッサ２２にリセット信号が送られて、サブプロセッサ２２にリセットがかかる。
【００４６】
このようにしてコントロールレジスタＣｔＲへアクセスした後、ブリッジ／アービタ２６Ｂは、ステップＳＰ１３において、アクセス結果をメモリバス２５に返す。そしてこのアクセス結果が、メモリバス２５を介してメモリコントローラ２４へ送られる。メモリバス２５からアクセス結果が送られてくると、メモリコントローラ２４は、ステップＳＰ７において、このアクセス結果をメインプロセッサシステムバス２３へ中継する。
【００４７】
メインプロセッサ２１は、ステップＳＰ８において、メインプロセッサシステムバス２３からアクセス結果を受け取ることで、コントロールレジスタＣｔＲへのアクセスを終了し、つづく終了ステップＳＰ９に移り、このメイン側アクセス手順ＲＴ１を終了する。
【００４８】
このように、メインプロセッサ２１からコントロールレジスタＣｔＲへのアクセス要求は、メインプロセッサ２１からメインプロセッサシステムバス２３、メモリコントローラ２４、メモリバス２５、メモリバスブリッジ２６へと送られる。そしてこのメモリバスブリッジ２６がコントロールレジスタＣｔＲへのアクセス要求であることを検出して、このアクセス要求に基づきメモリバスブリッジ２６内のコントロールレジスタＣｔＲにアクセスする。この結果、メインプロセッサ２１は、メモリ２８へのアクセスとほぼ同じように、例えばコントロールレジスタＣｔＲのアドレスを指定するだけでこのコントロールレジスタＣｔＲに容易にアクセスし得るようになされている。
【００４９】
さらに、メインプロセッサ２１からのアクセス要求がメモリ２８に対してでも、コントロールレジスタＣｔＲに対してでもなく、コマンドレジスタＣｍＲへのアクセス要求である場合、ステップＳＰ３から移るステップＳＰ１４において、ブリッジ／アービタ２６Ｂは、メモリバス２５から送られてくるアクセス要求がコマンドレジスタＣｍＲへのアクセス要求であることを、アクセス要求に指定されたアドレスより検出して、次のステップＳＰ１５に移る。ステップＳＰ１５においてブリッジ／アービタ２６Ｂは、このアクセス要求によるアクセスをコマンドレジスタＣｍＲに対して行う。これによりコマンドレジスタＣｍＲには、アクセス要求に基づくビット列が書き込まれる。
【００５０】
このようにしてコマンドレジスタＣｍＲへアクセスした後、ブリッジ／アービタ２６Ｂは、ステップＳＰ１６において、アクセス結果をメモリバス２５に返す。そしてこのアクセス結果が、メモリバス２５を介してメモリコントローラ２４へ送られる。メモリバス２５からアクセス結果が送られてくると、メモリコントローラ２４は、ステップＳＰ７において、このアクセス結果をメインプロセッサシステムバス２３へ中継する。
【００５１】
メインプロセッサ２１は、ステップＳＰ８において、メインプロセッサシステムバス２３からアクセス結果を受け取ることで、コマンドレジスタＣｍＲへのアクセスを終了し、つづく終了ステップＳＰ９に移り、このメイン側アクセス手順ＲＴ１を終了する。
【００５２】
このように、メインプロセッサ２１からコマンドレジスタＣｍＲへのアクセス要求は、メインプロセッサ２１からメインプロセッサシステムバス２３、メモリコントローラ２４、メモリバス２５、メモリバスブリッジ２６へと送られる。そしてこのメモリバスブリッジ２６がコマンドレジスタＣｍＲへのアクセス要求であることを検出して、このアクセス要求に基づきメモリバスブリッジ２６内のコマンドレジスタＣｍＲにアクセスする。この結果、メインプロセッサ２１は、メモリ２８へのアクセス及びコントロールレジスタＣｔＲへのアクセスとほぼ同じように、例えばコマンドレジスタＣｍＲのアドレスを指定するだけでこのコマンドレジスタＣｍＲに容易にアクセスし得るようになされている。
【００５３】
上述のようなメイン側アクセス手順ＲＴ１にしたがい、メインプロセッサ２１は、メモリ２８、コントロールレジスタＣｔＲ、コマンドレジスタＣｍＲのそれぞれに対して、ほぼ同じ手順でアクセスするようになされている。
【００５４】
つづいて、サブプロセッサ２２がメモリ２８及びサブプロセッサコントロールレジスタ２６Ａへアクセスする手順（以下、これをサブ側アクセス手順とも呼ぶ）について、図６に示すフローチャートを用いて詳細に説明する。ちなみに、このサブ側アクセス手順ＲＴ２は、サブプロセッサ２２が、このサブ側アクセス手順ＲＴ２に対応するプログラムを、例えばサブプロセッサシステムバス２９に接続された図示しないＲＯＭから読み出してメモリ２８の所定アドレス領域に展開して実行することにより、メモリバスブリッジ２６のブリッジ／アービタ２６Ｂを利用して行う処理手順であるので、主体を適宜変更しながら説明する。
【００５５】
まずサブプロセッサ２２は、メモリ２８またはサブプロセッサコントロールレジスタ２６Ａへアクセスする必要が生じると、このサブ側アクセス手順ＲＴ２をステップＳＰ２０から開始して、次のステップＳＰ２１に移る。ステップＳＰ２１においてサブプロセッサ２２は、メモリ２８へのアクセス要求、サブプロセッサコントロールレジスタ２６ＡのコントロールレジスタＣｔＲへのアクセス要求、またはサブプロセッサコントロールレジスタ２６ＡのコマンドレジスタＣｍＲへのアクセス要求のいずれかを、サブプロセッサシステムバス２９を介してメモリバスブリッジ２６のブリッジ／アービタ２６Ｂへ送る。
【００５６】
ここで、このアクセス要求がメモリ２８へのアクセス要求である場合、ステップＳＰ２１から移るステップＳＰ２２において、ブリッジ／アービタ２６Ｂは、サブプロセッサシステムバス２９から送られてくるアクセス要求をメモリバス２７へ中継する。この結果、続くステップＳＰ２３において、このアクセス要求によるアクセスがメモリ２８に対して行われ、そのアクセス結果がメモリ２８からメモリバス２７へ返される。
【００５７】
そしてこのアクセス結果が、メモリバス２７を介してブリッジ／アービタ２６Ｂへ送られる。メモリバス２７からアクセス結果が送られてくると、ブリッジ／アービタ２６Ｂは、ステップＳＰ２４において、このアクセス結果をサブプロセッサシステムバス２９へ中継する。そしてこのアクセス結果が、サブプロセッサシステムバス２９を介してサブプロセッサ２２へ送られ、サブプロセッサ２２は、ステップＳＰ２５において、サブプロセッサシステムバス２９からアクセス結果を受け取ることで、メモリ２８へのアクセスを終了し、つづく終了ステップＳＰ２６に移り、このサブ側アクセス手順ＲＴ２を終了する。
【００５８】
これに対して、サブプロセッサ２２からのアクセス要求がメモリ２８に対してではなくコントロールレジスタＣｔＲへのアクセス要求である場合、ステップＳＰ２１から移るステップＳＰ２７において、ブリッジ／アービタ２６Ｂは、サブプロセッサシステムバス２９から送られてくるアクセス要求がコントロールレジスタＣｔＲへのアクセス要求であることを、アクセス要求に指定されたアドレスより検出して、次のステップＳＰ２８に移る。ステップＳＰ２８においてブリッジ／アービタ２６Ｂは、このアクセス要求によるアクセスをコントロールレジスタＣｔＲに対して行う。これによりコントロールレジスタＣｔＲの各ビットフィールドｒ１〜ｒ８には、アクセス要求に基づくビット値（「０」または「１」）が書き込まれる。この結果、つづくステップＳＰ２９において、ビットフィールドｒ１のビット値に応じて、メインプロセッサ２１への割り込み信号の出力が制御される。
【００５９】
すなわち、サブプロセッサ２２からのアクセス要求により、コントロールレジスタＣｔＲのビットフィールドｒ１にビット値「１」が書き込まれると、コントロールレジスタＣｔＲから、このビットフィールドｒ１に対応する割り込み線３０を介して、メインプロセッサ２１に割り込み信号が送られて、メインプロセッサ２１に割り込みがかかる。
【００６０】
このようにしてコントロールレジスタＣｔＲへアクセスした後、ブリッジ／アービタ２６Ｂは、ステップＳＰ３０において、アクセス結果をサブプロセッサシステムバス２９に返す。そしてこのアクセス結果が、サブプロセッサシステムバス２９を介してサブプロセッサ２２へ送られ、サブプロセッサ２２は、ステップＳＰ２５において、サブプロセッサシステムバス２９からアクセス結果を受け取ることで、メモリ２８へのアクセスを終了し、つづく終了ステップＳＰ２６に移り、このサブ側アクセス手順ＲＴ２を終了する。
【００６１】
このように、サブプロセッサ２２からコントロールレジスタＣｔＲへのアクセス要求は、サブプロセッサ２２からサブプロセッサシステムバス２９、メモリバスブリッジ２６へと送られる。そしてこのメモリバスブリッジ２６がコントロールレジスタＣｔＲへのアクセス要求であることを検出して、このアクセス要求に基づきメモリバスブリッジ２６内のコントロールレジスタＣｔＲにアクセスする。こうすることで、サブプロセッサ２２は、メモリ２８へのアクセスとほぼ同じように、例えばコントロールレジスタＣｔＲのアドレスを指定するだけでこのコントロールレジスタＣｔＲに容易にアクセスし得るようになされている。
【００６２】
さらに、サブプロセッサ２２からのアクセス要求がメモリ２８に対してでも、コントロールレジスタＣｔＲに対してでもなく、コマンドレジスタＣｍＲへのアクセス要求である場合、ステップＳＰ２１から移るステップＳＰ３１において、ブリッジ／アービタ２６Ｂは、サブプロセッサシステムバス２９から送られてくるアクセス要求がコマンドレジスタＣｍＲへのアクセス要求であることを、アクセス要求に指定されたアドレスより検出して、次のステップＳＰ３２に移る。ステップＳＰ３２においてブリッジ／アービタ２６Ｂは、このアクセス要求によるアクセスをコマンドレジスタＣｍＲに対して行う。これによりコマンドレジスタＣｍＲには、アクセス要求に基づくビット列が書き込まれる。
【００６３】
このようにしてコマンドレジスタＣｍＲへアクセスした後、ブリッジ／アービタ２６Ｂは、ステップＳＰ３３において、アクセス結果をサブプロセッサシステムバス２９に返す。そしてこのアクセス結果が、サブプロセッサシステムバス２９を介してサブプロセッサ２２へ送られ、サブプロセッサ２２は、ステップＳＰ２５において、サブプロセッサシステムバス２９からアクセス結果を受け取ることで、メモリ２８へのアクセスを終了し、つづく終了ステップＳＰ２６に移り、このサブ側アクセス手順ＲＴ２を終了する。
【００６４】
このように、サブプロセッサ２２からコマンドレジスタＣｍＲへのアクセス要求は、サブプロセッサ２２からサブプロセッサシステムバス２９、メモリバスブリッジ２６へと送られる。そしてこのメモリバスブリッジ２６がコマンドレジスタＣｍＲへのアクセス要求であることを検出して、このアクセス要求に基づきメモリバスブリッジ２６内のコマンドレジスタＣｍＲにアクセスする。こうすることで、サブプロセッサ２２は、メモリ２８へのアクセス及びコントロールレジスタＣｔＲへのアクセスとほぼ同じように、例えばコマンドレジスタＣｍＲのアドレスを指定するだけでこのコマンドレジスタＣｍＲに容易にアクセスし得るようになされている。
【００６５】
上述のようなサブ側アクセス手順ＲＴ２にしたがい、サブプロセッサ２２は、メモリ２８、コントロールレジスタＣｔＲ、コマンドレジスタＣｍＲのそれぞれに対して、ほぼ同じ手順でアクセスするようになされている。
【００６６】
また、これらメイン側アクセス手順ＲＴ１及びサブ側アクセス手順ＲＴ２において、メインプロセッサ２１からのアクセス要求とサブプロセッサ２２からのアクセス要求とのタイミングが重なった場合、メモリバスブリッジ２６のブリッジ／アービタ２６Ｂがこれを調停する。このとき、例えば、メインプロセッサ２１側の処理、すなわち既存の構成によるソフトウェアの利用性を優先させる場合には、メインプロセッサ２１からのアクセス要求を優先するようにし、これに対して、新たに追加したサブプロセッサ２２側の処理を優先させる場合には、サブプロセッサ２２からのアクセス要求を優先させるように、ブリッジ／アービタ２６Ｂを設定すればよい。
【００６７】
（１−４）アクセス制限
ところで、このマルチプロセッサシステム２０のように、メインプロセッサ２１とサブプロセッサ２２とがメモリ２８を物理的に共有し得る構成である場合、例えばメインプロセッサ２１がメモリ２８に書き込んだデータを、誤ってサブプロセッサ２２がメモリ２８に書き込んだデータで上書消去することなどのないように、メインプロセッサ２１が使用するメモリ空間とサブプロセッサ２２が使用するメモリ空間とを排他的に制御して、書き込まれたデータを保障する（すなわちデータの整合性を確保する）ことが要求される。
【００６８】
そこで、マルチプロセッサシステム２０では、メインプロセッサ２１がアクセス可能なメモリ空間と、サブプロセッサ２２がアクセス可能なメモリ空間とをハードウェア上で排他的に制御して、メモリ２８に対するアクセスを制限することにより、データの整合性を確保するようになされている。実際上、マルチプロセッサシステム２０では、ブリッジ／アービタ２６Ｂが、メインプロセッサ２１からアクセス可能なメモリ空間と、サブプロセッサ２２からアクセス可能なメモリ空間とを排他的に制御して、メモリ２８に対するアクセスを制限するようになされている。
【００６９】
この場合、ブリッジ／アービタ２６Ｂに対して、例えば、図７に示すように、メモリ２８の先頭アドレス「０ｘ００００００００」から終端アドレス「０ｘｄｄｄｄｄｄｄｄ」までのうち、先頭アドレス「０ｘ００００００００」からアドレス「０ｘａａａａａａａａ」までをメインプロセッサ２１から読み書き可能でサブプロセッサ２２からアクセス不可のアドレス領域Ａｒ１として、アドレス「０ｘａａａａａａａａ」の次のアドレスからアドレス「０ｘｂｂｂｂｂｂｂｂ」までをメインプロセッサ２１から読み出しのみ可能でサブプロセッサ２２から書き込みのみ可能なアドレス領域Ａｒ２とし、さらにアドレス「０ｘｂｂｂｂｂｂｂｂ」の次のアドレスからアドレス「０ｘｃｃｃｃｃｃｃｃ」までをメインプロセッサ２１から書き込みのみ可能でサブプロセッサ２２から読み込みのみ可能なアドレス領域Ａｒ３とし、さらにアドレス「０ｘｃｃｃｃｃｃｃｃ」の次のアドレスから終端アドレス「０ｘｄｄｄｄｄｄｄｄ」までをメインプロセッサ２１からアクセス不可でサブプロセッサ２２から読み書き可能なアドレス領域Ａｒ４とすることを示すテーブル情報を保持させる。
【００７０】
つまり、このテーブル情報には、メインプロセッサ２１から見た場合のアドレス領域Ａｒ１、Ａｒ２及びＡｒ３がアクセス可能なメモリ空間として示されると共にアドレス領域Ａｒ４がアクセス不可能なメモリ空間として示され、また、サブプロセッサ２２からみた場合のアドレス領域Ａｒ２、Ａｒ３及びＡｒ４がアクセス可能なメモリ空間として示されると共にアドレス領域Ａｒ１がアクセス不可能なメモリ空間として示される。さらにこのテーブル情報には、両プロセッサからアクセス可能なアドレス領域Ａｒ２及びＡｒ３に対して両プロセッサからの書き込みアドレスが重ならないように、アドレス領域Ａｒ２がサブプロセッサ２２からのみ書き込み可能なアドレス領域として示されると共に、アドレス領域Ａｒ３がメインプロセッサ２１からのみ書き込み可能なアドレス領域として示される。
【００７１】
このようなテーブル情報を保持するブリッジ／アービタ２６Ｂは、メインプロセッサ２１またはサブプロセッサ２２からのアクセス要求（すなわち指定アドレスへの書き込み要求、または指定アドレスからの読み出し要求）を受け付けると、このアクセス要求に指定されたアドレスとテーブル情報とを照合して、この照合結果に基づき、アクセス要求に指定されたアドレスに対するアクセス（書き込みまたは読み出し）を許可または禁止する。
【００７２】
これにより、マルチプロセッサシステム２０では、メインプロセッサ２１が使用するメモリ空間とサブプロセッサ２２が使用するメモリ空間とをブリッジ／アービタ２６Ｂにより排他的に制御して、データの整合性を確保したうえで、メインプロセッサ２１とサブプロセッサ２２とでメモリ２８を共有し得るようになされている。
【００７３】
また、このようにブリッジ／アービタ２６Ｂのようなハードウェアによりデータの整合性を確保するばかりでなく、例えば、メインプロセッサ２１で動くソフトウェア、及びサブプロセッサ２２で動くソフトウェアに対して、同じアドレスのメモリ空間を使用しないようにメモリ２８へのアクセスを排他的に制御するプログラムを組み込んで、このようなソフトウェアによりデータの整合性を確保し得るようにしてもよい。
【００７４】
さらに、メモリ２８に対してだけではなく、コントロールレジスタＣｔＲ及びコマンドレジスタＣｍＲに対するアクセス制限を上述のテーブル情報に追加することにより、ブリッジ／アービタ２６Ｂで、これらコントロールレジスタＣｔＲ及びコマンドレジスタＣｍＲに対するアクセスを制限するようにしてもよい。このとき、例えばコントロールレジスタＣｔＲに対しては、図８に示すように、そのビットフィールド毎にアクセス制限をかけるようにする。
【００７５】
つまり、ビット値「１」が書き込まれることでサブプロセッサ２２に対して割り込み及びリセットがかかる、ビットフィールドｒ３及びｒ２については、メインプロセッサ２１からのみビット値「１」及び「０」を書き込み可能として、サブプロセッサ２２からはビット値「０」しか書き込めないようにアクセス制限する。また、ビット値「１」が書き込まれることでメインプロセッサ２１に対して割り込みがかかる、ビットフィールドｒ１については、サブプロセッサ２２からのみビット値「１」及び「０」を書き込み可能として、メインプロセッサ２１からはビット値「０」しか書き込めないようにアクセス制限する。
【００７６】
こうすることで、このマルチプロセッサシステム２０では、メインプロセッサ２１がビットフィールドｒ１にビット値「１」を書き込んで、自分に対して割り込みをかけるといった異常な処理や、サブプロセッサ２２がビットフィールドｒ３またはｒ２にビット値「１」を書き込んで、自分に対して割り込みまたはリセットをかけるといった異常な処理を防止して、メインプロセッサ２１及びサブプロセッサ２２の確実な動作を保障することができる。
【００７７】
（１−５）第１の実施の形態による動作及び効果
以上の構成において、このマルチプロセッサシステム２０では、メインプロセッサシステムバス２３を介してメインプロセッサ２１に接続されているメモリコントローラ２４と、メモリ２８との間に、メモリバス２５及び２７を介してメモリバスブリッジ２６を挟み込み、このメモリバスブリッジ２６にサブプロセッサシステムバス２９を介してサブプロセッサ２２を接続するようにした。
【００７８】
これにより、このマルチプロセッサシステム２０は、メインプロセッサシステムバス２３を介して接続されたメインプロセッサ２１とメモリコントローラ２４とでなる構成、すなわち既存の汎用的な構成をくずさずに容易にサブプロセッサを追加して構成することができる。
【００７９】
実際上、メインプロセッサ２１がメモリ２８へアクセスする場合、メインプロセッサ２１は、メモリ２８へのアクセス要求をメモリコントローラ２４に送る。メモリコントローラ２４は、このアクセス要求をメモリバス２５へと送り出す。このようにして送り出されたアクセス要求は、メモリバスブリッジ２６によって、メモリバス２７へと中継されてメモリ２８へと送られる。
【００８０】
このためメインプロセッサ２１は、メモリバスブリッジ２６がメモリバス２５及びメモリバス２７間に挟み込まれてサブプロセッサ２２が追加されていることを意識することなく、メモリコントローラ２４とメモリ２８とが例えばメモリバス２５を介して直接接続されている場合と同じようにして、メモリ２８へアクセスすることができる。
【００８１】
またサブプロセッサ２２からのメモリ２８へのアクセスは、サブプロセッサ２２がメモリ２８へのアクセス要求をメモリバスブリッジ２６へと送り、メモリバスブリッジ２６がこのアクセス要求をメモリバス２７へと中継することで実行される。ここで、メインプロセッサ２１からのアクセス要求と、サブプロセッサ２２からのアクセス要求とのタイミングがぶつかった場合、両プロセッサからのアクセス要求を共に中継するメモリバスブリッジ２６が、これら両プロセッサからのアクセス要求を調停する。このようにマルチプロセッサシステム２０では、メモリバスブリッジ２６に調停機能を持たせたことにより、メインプロセッサ２１及びメモリコントローラ２４に対してサブプロセッサ２２を追加したことにともなう調停機能を持たせることなく、両プロセッサからのアクセス要求を調停することができる。
【００８２】
さらにメモリバスブリッジ２６には、メインプロセッサ２１がサブプロセッサ２２を制御するためのサブプロセッサコントロールレジスタ２６Ａが設けられ、さらにこのサブプロセッサコントロールレジスタ２６Ａには、サブプロセッサ２２へ割り込み信号を送るための割り込み線３１、及びリセット信号を送るためのリセット線３２が接続されている。このサブプロセッサコントロールレジスタ２６Ａは、メモリ２８のアドレスとは異なるアドレスが割り当てられ、さらにそのアドレスがメインプロセッサ２１から見てメモリ２８と同じメモリ空間上に設定されている。
【００８３】
ここで例えば、メインプロセッサ２１がサブプロセッサコントロールレジスタ２６Ａへのアクセス要求をメモリコントローラ２４に送ると、メモリコントローラ２４は、このアクセス要求をメモリバス２５へと送り出す。このようにして送り出されたアクセス要求は、メモリバスブリッジ２６によって検出され、このアクセス要求に応じてメモリバスブリッジ２６がサブプロセッサコントロール２６にアクセスする。このアクセスの結果として、サブプロセッサコントロールレジスタ２６Ａにビット列が書き込まれると、この書き込まれたビット列に基づき、割り込み線３１またはリセット線３２を介して割り込み信号及またはリセット信号がサブプロセッサ２２へと送られ、サブプロセッサ２２に対して割り込みまたはリセットがかかる。
【００８４】
このようにマルチプロセッサシステム２０では、メモリコントローラ２４とメモリ２８との間に配されたメモリバスブリッジ２６が、メモリコントローラ２４から送られてくるアクセス要求を、このアクセス要求に指定されたアドレスによりサブプロセッサコントロールレジスタ２６Ａまたはメモリ２８へ割り振るようにしたことにより、メインプロセッサ２１が、メモリ２８へアクセスする場合とほぼ同じように、サブプロセッサコントロールレジスタ２６Ａへアクセスしてサブプロセッサ２２を容易に制御することができる。
【００８５】
かくするにつき、このマルチプロセッサシステム２０では、メインプロセッサ２１及びメモリコントローラ２４を、マルチプロセッサ化のために新たに設計し直す必要がほとんどなく、既存のハードウェア資源を有効利用することができると共に、ソフトウェア的な変更も最小限（例えば、サブプロセッサコントロールレジスタ２６Ａを操作するプログラムを追加するだけ）で済み、既存のソフトウェア資源を有効利用することができる。
【００８６】
さらにこのマルチプロセッサシステム２０では、メインプロセッサ２１からアクセス可能なメモリ空間と、サブプロセッサ２２からアクセス可能なメモリ空間とを示すテーブル情報をメモリバスブリッジ２６に保持させ、このテーブル情報に基づき、メモリバスブリッジ２６で、両プロセッサからのメモリ２８に対するアクセスを排他的に制限する。これによりマルチプロセッサシステム２０は、メモリ２８に書き込まれるデータの整合性を確保した状態で、メインプロセッサ２１とサブプロセッサ２２とでメモリ２８を共有することができるので、例えば、サブプロセッサ２２用のメモリを別途設けるなどの必要がなく、構成を簡易化することができる。つまりこのマルチプロセッサシステム２０は、既存の構成に対して、サブプロセッサシステムバス２９を介してサブプロセッサ２２と接続されたメモリバスブリッジ２６を追加するだけで構成し得る。
【００８７】
またこのように、マルチプロセッサシステム２０では、メモリバスブリッジ２６にアクセス制限機能を持たせたことにより、メインプロセッサ２１及びメモリコントローラ２４に対してサブプロセッサ２２を追加したことにともなうアクセス制限機能を持たせることなく、メモリ２８に対するアクセス制限をかけることができる。
【００８８】
以上の構成によれば、メインプロセッサ２１と、メインプロセッサ２１にメインプロセッサシステムバス２３を介して接続されるメモリコントローラ２４と、メモリコントローラ２４にメモリバス２５を介して接続されるメモリバスブリッジ２６と、メモリバスブリッジ２６にサブプロセッサシステムバス２９を介して接続されるサブプロセッサ２２と、メモリバスブリッジ２６にメモリバス２７を介して接続され、メインプロセッサ２１及びサブプロセッサ２２によりメモリバスブリッジ２６を介してアクセスされるメモリ２８とを設けるようにしたことにより、メインプロセッサシステムバス２３を介して接続されたメインプロセッサとメモリコントローラ２４とでなる構成、すなわち既存の構成をくずさずに容易にサブプロセッサを追加して構成することができ、かくして既存の構成に対して容易にプロセッサを追加して構成し得る情報処理装置、制御方法及び制御プログラムを実現し得る。
【００８９】
（２）第２の実施の形態
次に、本発明の第２の実施の形態を詳述する。この第２の実施の形態では、上述したマルチプロセッサシステム２０を、音楽再生機能及び録音機能を有する音楽再生／録音装置に適用した場合について説明する。
【００９０】
（２−１）音楽再生／録音装置の構成
図９に示すように、音楽再生／録音装置４０は、主として装置全体のシステム制御を受け持つメインプロセッサパッケージＰＫ１と、主として音楽データのエンコード処理及びデコード処理を受け持つサブプロセッサパッケージＰＫ２と、これらメインプロセッサパッケージＰＫ１とサブプロセッサパッケージＰＫ２とが共用するメモリ４１とを有し、メインプロセッサパッケージＰＫ１とサブプロセッサパッケージＰＫ２とがメモリバス４２を介して接続されていると共に、サブプロセッサパッケージＰＫ２とメモリ４１とがメモリバス４３を介して接続されている。つまり、この音楽再生／録音装置４０は、メインプロセッサパッケージＰＫ１とメモリ４１との間にサブプロセッサパッケージＰＫ２を挟み込んだ構成でなる。
【００９１】
ここで、メインプロセッサパッケージＰＫ１は、演算処理を行うと共にメインプロセッサパッケージＰＫ１を統括的に制御するメインプロセッサ４４と、ＰＣＩ（Peripheral Components Interconnect bus）デバイスを制御するＰＣＩコントローラ４５と、ＵＳＢ（Universal Serial Bus）デバイスを制御するＵＳＢコントローラ４６と、記憶デバイスを制御するＩＤＥ（Integrated Drive Electronics）コントローラ４７と、メインプロセッサ４４からメモリ４１へのアクセスを制御するメモリコントローラ４８とがメインプロセッサシステムバス４９を介して接続された状態でパッケージングされている。
【００９２】
また、このメインプロセッサパッケージＰＫ１のＰＣＩコントローラ４５にはＰＣＩデバイスとして例えばネットワークインタフェースアダプタ５０が接続され、ＵＳＢコントローラ４６にはＵＳＢデバイスとして例えば操作キー５１が接続され、ＩＤＥコントローラ４７には記憶デバイスとして例えばハードディスクドライブ５２及びＣＤ（Compact Disk）ドライブ５３が接続されている。ちなみに、このハードディスクドライブ５２には、メインプロセッサ４４が実行するプログラムなどが予め書き込まれている。
【００９３】
これによりメインプロセッサ４４は、必要に応じて、ネットワークインタフェースアダプタ５０を介してネットワークＮＴ上のサーバ（図示せず）から音楽データなどをダウンロードし得ると共に、操作キー５１を介したユーザ操作を認識することができ、さらにハードディスクドライブ５２に対して及びＣＤドライブ５３に装填されるＣＤに対して音楽データなどの書き込み及び読み出しを行うことができるようになっている。
【００９４】
またこのメインプロセッサパッケージＰＫ１のメモリコントローラ４８にはメモリバス４２、サブプロセッサパッケージＰＫ２及びメモリバス４３を順次介してメモリ４１が接続されている。よってメインプロセッサ４４は、このメモリコントローラ４８を介して、サブプロセッサパッケージＰＫ２と各種コマンドの受け渡しを行うと共に、メモリ４１へアクセスするようになされている。
【００９５】
一方、サブプロセッサパッケージＰＫ２は、演算処理を行うと共にサブプロセッサパッケージＰＫ２を統括的に制御するサブプロセッサ５４と、メインプロセッサパッケージＰＫ１のメモリコントローラ４８とメモリ４１との間を中継するメモリバスブリッジ５５と、音楽データ（例えば圧縮符号化されていない音楽データ）に対するエンコード処理を行うエンコーダ５６と、音楽データ（例えば圧縮符号化された音楽データ）に対するデコード処理を行うデコーダ５７と、音楽データに対する暗号化処理及び復号処理を行う暗復号器５８と、音楽データの入出力を行うサウンドＩ／Ｏ５９と、サブプロセッサ５４が実行するプログラムなどが書き込まれたＲＯＭ６０とが、サブプロセッサシステムバス６１を介して接続された状態でパッケージングされている。
【００９６】
またこのサブプロセッサパッケージＰＫ２のメモリバスブリッジ５５には、メモリバス４２を介してメインプロセッサパッケージＰＫ１のメモリコントローラ４８が接続されていると共に、メモリバス４３を介してメモリ４１が接続されている。つまり、このメモリバスブリッジ４４は、メモリコントローラ４８とメモリ４１との間に配されている。よってサブプロセッサ５４は、このメモリバスブリッジ５５を介して、メインプロセッサ４４と各種コマンドの受け渡しを行うと共に、メモリ４１へアクセスするようになされている。
【００９７】
さらにこのメモリバスブリッジ５５は、メインプロセッサ４４がサブプロセッサ５４を制御するためのサブプロセッサコントロールレジスタ５５Ａを有している。このサブプロセッサコントロールレジスタ５５Ａには、メモリ４１のアドレスとは異なるアドレスが割り当てられ、さらにそのアドレスがメインプロセッサ４４及びサブプロセッサ５４から見てメモリ４１と同じメモリ空間上に設定されていて、メモリ４１へのアクセスとほぼ同じ要領で、メインプロセッサ４４及びサブプロセッサ５４からアクセスすることができるようになっている。
【００９８】
つまりメインプロセッサ４４は、このサブプロセッサコントロールレジスタ５５Ａへアクセスして、サブプロセッサ５４とコマンドの受け渡しなどを行うことにより、メモリ４１へのアクセスとほぼ同じ要領で、容易にサブプロセッサ５４を制御し得るようになされている。
【００９９】
さらにサブプロセッサパッケージＰＫ２のサウンドＩ／Ｏ５９には、音楽データに対するデジタルアナログ変換処理、及び音声信号に対するアナログデジタル変換処理を行うＡＤ／ＤＡ６２が接続され、さらにこのＡＤ／ＤＡ６２には、音声信号入力用の外部入力端子６３が接続されていると共に、アンプ６４を介してスピーカ６５が接続されている。
【０１００】
これによりサブプロセッサ５４は、メインプロセッサ４４からの命令に応じて、例えば、メモリ４１から読み出した音楽データをエンコーダ５６でエンコード処理してサウンドＩ／Ｏ５９からＡＤ／ＤＡ６２に出力することで、ＡＤ／ＤＡ６２、アンプ６４及びスピーカ６５を順次介して、読み出した音楽データに基づく音楽を再生し得るようになされている。
【０１０１】
また読み出した音楽データが著作権管理技術などにより暗号化されている場合、サブプロセッサ５４は、メモリ４１から読み出した暗号化されている音楽データを暗復号器５８で復号してからエンコーダ５６でエンコード処理してサウンドＩ／Ｏ５９からＡＤ／ＤＡ６２に出力することで、暗号化された音楽データも再生し得るようになされている。
【０１０２】
ちなみに、このようにメモリ４１から読み出される音楽データは、メインプロセッサ４４によりハードディスクドライブ５２またはＣＤドライブ５３に装填されたＣＤから読み出されて、メモリ４１に書き込まれるようになされている。
【０１０３】
さらにサブプロセッサ５４は、メインプロセッサ４４からの命令に応じて、例えば、外部入力端子６３から入力される音声信号を、ＡＤ／ＤＡ６２を介して音楽データとしてサウンドＩ／Ｏ５９より取り込み、さらにこの音楽データをエンコーダ５６でエンコード処理してメモリ４１に書き込むことで、外部入力端子６３から入力された音声信号を録音し得るようにもなされている。
【０１０４】
またこの録音時、サブプロセッサ５４は、取り込んだ音楽データをエンコーダ５６でエンコード処理した後、暗復号器５８で暗号化してからメモリ４１に書き込むこともできるようになされている。
【０１０５】
ちなみに、このようにしてメモリ４１に書き込まれた音楽データは、メインプロセッサ４４によりメモリ４１から読み出されて、ハードディスクドライブ５２またはＣＤドライブ５３に装填された書き込み可能なＣＤに書き込まれるようになされている。
【０１０６】
ここで、メモリバスブリッジ５５について、図１０を用いて詳しく説明する。この図１０に示すように、メモリバスブリッジ５５は、上述したサブプロセッサコントロールレジスタ５５Ａに加えて、ブリッジ／アービタ５５Ｂを有している。このブリッジ／アービタ５５Ｂは、メモリバス４２、メモリバス４３及びサブプロセッサシステムバス６１に接続され、メモリコントローラ４８を介して行われるメインプロセッサ４４からメモリ４１へのアクセス、及びサブプロセッサ５４からメモリ４１へのアクセスを中継すると共に、メインプロセッサ４４からのアクセスとサブプロセッサ５４からのアクセスとのタイミングが重なった場合に調停する機能を持つ。ちなみに、このブリッジ／アービタ５５Ｂは、サブプロセッサ５４がメモリ４１へアクセスする場合のメモリコントローラとしても機能する。
【０１０７】
さらにこのブリッジ／アービタ５５Ｂは、メモリバスブリッジ５５内部でサブプロセッサコントロールレジスタ５５Ａに接続され、メモリコントローラ４８を介して行われるメインプロセッサ４４からのアクセスが、メモリ４１へのアクセスではなくサブプロセッサコントロールレジスタ５５Ａへのアクセスである場合にこれを検出すると共に、サブプロセッサ５４からのアクセスが、サブプロセッサコントロールレジスタ５５Ａへのアクセスである場合にこれを検出する機能を持つ。実際上、このブリッジ／アービタ５５Ｂは、例えば、メインプロセッサ４４からのアクセスが、サブプロセッサコントロールレジスタ５５Ａのアドレスを指定するアクセスである場合に、このアクセスが、サブプロセッサコントロールレジスタ５５Ａへのアクセスであることを検出するようになされている。
【０１０８】
このようにしてメインプロセッサ４４及びサブプロセッサ５４からのアクセスが、サブプロセッサコントロールレジスタ５５Ａへのアクセスであることを検出すると、ブリッジ／アービタ５５Ｂは、サブプロセッサコントロールレジスタ５５Ａにアクセスする。つまり、このブリッジ／アービタ５５Ｂは、メモリコントローラ４５から送られてくるアクセス要求を、このアクセス要求に指定されたアドレスによりサブプロセッサコントロールレジスタ５５Ａまたはメモリ４１へ割り振るようになされている。
【０１０９】
サブプロセッサコントロールレジスタ５５Ａは、主としてサブプロセッサ５４の制御に用いられる８ビットのコントロールレジスタＣｔＲｘと、メインプロセッサ４４及びサブプロセッサ５４間でのコマンドの受け渡しに用いられるｎビットのコマンドレジスタＣｍＲｘとでなる。このコントロールレジスタＣｔＲｘには、図１０にくわえて図１１に示すように、ＬＳＢ（Least Significant Bit：最下位ビット）のビットフィールドｒ１ｘに対応付けて割り込み線６６が接続され、またビットフィールドｒ１ｘの２ビット上位になるビットフィールドｒ３ｘに対応付けて割り込み線６７が接続され、さらにビットフィールドｒ１ｘの１ビット上位（すなわちビットフィールドｒ３ｘの１ビット下位）になるビットフィールドｒ２ｘに対応付けてリセット線６８が接続されている。
【０１１０】
ここで割り込み線６６は、メインプロセッサ４４に対して割り込みをかけるための割り込み信号を発行するラインであり、直接メインプロセッサ４４に接続されている。また割り込み線６７は、サブプロセッサ５４に対して割り込みをかけるための割り込み信号を発行するライン、リセット線６８は、サブプロセッサ５４に対してリセットをかけるためのリセット信号を発行するラインであり、共に直接サブプロセッサ５４に接続されている。
【０１１１】
つまり、メインプロセッサ４４は、ブリッジ／アービタ５５Ｂを介してサブプロセッサコントロールレジスタ５５ＡのコントロールレジスタＣｔＲｘにアクセスできるだけでなく、割り込み線６６を介してコントロールレジスタＣｔＲｘから直接割り込み信号を受けることができるようになっている。一方、サブプロセッサ５４も、ブリッジ／アービタ５５Ｂを介してサブプロセッサコントロールレジスタ５５ＡのコントロールレジスタＣｔＲｘにアクセスできるだけでなく、割り込み線６７及びリセット線６８を介してコントロールレジスタＣｔＲｘから直接割り込み信号及びリセット信号を受けることができるようになっている。
【０１１２】
実際上、例えば、メインプロセッサ４４は、ブリッジ／アービタ５５Ｂを介してコマンドレジスタＣｍＲｘに音楽データに対する再生開始コマンドを書き込み、それからコントロールレジスタＣｔＲｘのビットフィールドｒ３ｘにビット値「１」を書き込む。するとコントロールレジスタＣｔＲｘから、このビットフィールドｒ３ｘに対応付けて接続されている割り込み線６７を介してサブプロセッサ５４に割り込み信号が発行されて、サブプロセッサ５４に割り込みがかかる。
【０１１３】
割り込みをかけられたサブプロセッサ５４は、他の処理を中断し、ブリッジ／アービタ５５Ｂを介してコマンドレジスタＣｍＲｘから再生開始コマンドを読み出し、この再生開始コマンドに応じて、音楽データの再生処理を行う。
【０１１４】
そしてこの再生処理が終了すると、サブプロセッサ５４は、ブリッジ／アービタ５５Ｂを介してコマンドレジスタＣｍＲｘに再生終了コマンドを書き込み、それからコントロールレジスタＣｔＲｘのビットフィールドｒ１ｘにビット値「１」を書き込む。するとコントロールレジスタＣｔＲｘから、このビットフィールドｒ１ｘに対応付けて接続されている割り込み線６６を介してメインプロセッサ４４に割り込み信号が発行されて、メインプロセッサ２１に割り込みがかかる。
【０１１５】
割り込みをかけられたメインプロセッサ４４は、他の処理を中断し、ブリッジ／アービタ５５Ｂを介してコマンドレジスタＣｍＲｘから再生終了コマンドを読み出すことで、サブプロセッサ５４での音楽データの再生処理が終了したことを認識する。
【０１１６】
また、メインプロセッサ４４は、必要に応じて、ブリッジ／アービタ５５Ｂを介してコントロールレジスタＣｔＲｘのビットフィールドｒ２ｘにビット値「１」を書き込む。するとコントロールレジスタＣｔＲｘから、このビットフィールドｒ２ｘに対応付けて接続されているリセット線６８を介してサブプロセッサ５４にリセット信号が発行されて、サブプロセッサ５４にリセットがかかる。
【０１１７】
このようにメインプロセッサ４４は、コントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘへのアクセスにより、サブプロセッサ５４に対する割り込み制御、リセット制御を行うと共に、サブプロセッサ５４と各種コマンドの受け渡しを行うようになっている。また、サブプロセッサ５４も、コントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘへのアクセスにより、メインプロセッサ４４に対する割り込みを行うと共に、メインプロセッサ４４と各種コマンドの受け渡しを行うようになっている。
【０１１８】
（２−２）アクセス制限
さらに、この音楽再生／録音装置４０は、メインプロセッサ４４とサブプロセッサ５４とがメモリ４１を物理的に共有する構成であるため、第１の実施の形態と同様、ブリッジ／アービタ５５Ｂが、メインプロセッサ４４からアクセス可能なメモリ空間と、サブプロセッサ５４からアクセス可能なメモリ空間とを排他的に制御して、メモリ４１に対するアクセスを制限するようになされている。
【０１１９】
実際上、本実施の形態では、ブリッジ／アービタ５５Ｂに対して、例えば、図１２に示すように、メモリ４１の先頭アドレス「０ｘ００００００００」から終端アドレス「０ｘｂｂｂｂｂｂｂｂ」までのうち、先頭アドレス「０ｘ００００００００」からアドレス「０ｘａａａａａａａａ」までをメインプロセッサ４４から読み書き可能でサブプロセッサ５４から読み出しのみ可能なアドレス領域Ａｒ１０とすると共に、アドレス「０ｘａａａａａａａａ」の次のアドレスから終端アドレス「０ｘｂｂｂｂｂｂｂｂ」までをメインプロセッサ４４から読み出しのみ可能でサブプロセッサ５４から読み書き可能なアドレス領域Ａｒ１１とすることを示すテーブル情報を保持させる。つまり、このテーブル情報には、両プロセッサからの書き込みアドレスが重ならないようなアクセス制限が示されている。
【０１２０】
このようなテーブル情報を保持するブリッジ／アービタ５５Ｂは、メインプロセッサ４４またはサブプロセッサ５４からのアクセス要求（すなわち指定アドレスへの書き込み要求、または指定アドレスからの読み出し要求）を受け付けると、このアクセス要求に指定されたアドレスとテーブル情報とを照合して、この照合結果に基づき、アクセス要求に指定されたアドレスに対するアクセス（書き込みまたは読み出し）を許可または禁止する。
【０１２１】
このように音楽再生／録音装置４０では、メインプロセッサ４４が使用するメモリ空間とサブプロセッサ５４が使用するメモリ空間とをブリッジ／アービタ５５Ｂにより排他的に制御して、両プロセッサからのメモリ４１へのアクセスを制限することにより、データの整合性を確保したうえで、メインプロセッサ４４とサブプロセッサ５４とがメモリ４１を共有し得るようになされている。
【０１２２】
さらに、メモリ４１に対してだけではなく、コントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘに対するアクセス制限を上述のテーブル情報に追加することにより、ブリッジ／アービタ５５Ｂで、これらコントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘに対するアクセスを制限するようにしてもよい。このとき、例えばコントロールレジスタＣｔＲｘに対しては、第１の実施の形態と同様、図１３に示すように、そのビットフィールド毎にアクセス制限をかけるようにする。
【０１２３】
つまり、ビット値「１」が書き込まれることでサブプロセッサ５４に対して割り込み及びリセットがかかる、ビットフィールドｒ３ｘ及びｒ２ｘについては、メインプロセッサ４４からのみビット値「１」及び「０」を書き込み可能として、サブプロセッサ５４からはビット値「０」しか書き込めないようにアクセス制限する。また、ビット値「１」が書き込まれることでメインプロセッサ４４に対して割り込みがかかる、ビットフィールドｒ１ｘについては、サブプロセッサ５４からのみビット値「１」及び「０」を書き込み可能として、メインプロセッサ４４からはビット値「０」しか書き込めないようにアクセス制限する。
【０１２４】
こうすることで、この音楽再生／録音装置４０では、メインプロセッサ４４がビットフィールドｒ１ｘにビット値「１」を書き込んで、自分に対して割り込みをかけるといった異常な処理や、サブプロセッサ５４がビットフィールドｒ３ｘまたはｒ２ｘにビット値「１」を書き込んで、自分に対して割り込みまたはリセットをかけるといった異常な処理を防止することができ、結果として、メインプロセッサ４４及びサブプロセッサ５４の確実な動作を保障することができる。
【０１２５】
（２−３）音楽再生処理手順
ここで、音楽再生／録音装置４０による音楽再生処理手順について、図１４に示すフローチャートを用いて詳細に説明する。ちなみに、この音楽再生処理手順ＲＴ３は、メインプロセッサ４４が、この音楽再生処理手順ＲＴ３に対応するプログラムをハードディスクドライブ５２から読み出してメモリ４１のアドレス領域Ａｒ１０に展開して実行する処理手順であると共に、サブプロセッサ５４が、この音楽再生処理手順ＲＴ３に対応するプログラムをＲＯＭ６０から読み出してメモリ４１のアドレス領域Ａｒ１１に展開して実行する処理手順であるので、主体を適宜変更しながら説明する。また、ここでは一例として、ハードディスクドライブ５２に記録された暗号化されていない音楽データを再生する場合について説明する。
【０１２６】
メインプロセッサ４４は、ユーザにより操作キー５１を通して音楽再生操作が行われたことを認識すると、この音楽再生処理手順ＲＴ３をステップＳＰ３０から開始して、次のステップＳＰ３１に移る。ステップＳＰ３１においてメインプロセッサ４４は、ハードディスクドライブ５２から再生すべき音楽データ（以下、これを再生データとも呼ぶ）を読み出し、この読み出した再生データをメモリ４１上のメインプロセッサ４４から読み書き可能でサブプロセッサ５４から読み出しのみ可能なアドレス領域Ａｒ１０内に書き込む。このとき、メインプロセッサ４４は、例えば、図１５に示すように、データサイズＤｓ１でなる再生データを、アドレス領域Ａｒ１０内のアドレス「０ｘｐｐｐｐｐｐｐｐｐ」からアドレス領域Ａｒ１０内のアドレス「０ｘｑｑｑｑｑｑｑｑ」までの領域に書き込む。
【０１２７】
このようにして再生データをメモリ４１に書き込んだ後、メインプロセッサ４４は、次のステップＳＰ３２に移る。ステップＳＰ３２においてメインプロセッサ４４は、メモリ４１に書き込んだ再生データに対する再生開始コマンドを、サブプロセッサコントロールレジスタ５５ＡのコマンドレジスタＣｍＲｘに書き込み、次のステップＳＰ３３に移る。ここで、この再生開始コマンドには、再生データが書き込まれた領域の先頭アドレス「０ｘｐｐｐｐｐｐｐｐｐ」と、再生データのデータサイズＤｓ１とが含まれている。
【０１２８】
ステップＳＰ３３においてメインプロセッサ４４は、コントロールレジスタＣｔＲｘの割り込み線６７に対応するビットフィールドｒ３ｘに対してビット値「１」を書き込むことにより、サブプロセッサ５４に対して割り込みをかける。
【０１２９】
サブプロセッサ５４は、メインプロセッサ４４から割り込みがかけられると、ステップＳＰ３４において、メインプロセッサ４４によりコマンドレジスタＣｍＲｘに何らかのコマンドが書き込まれていると認識して、コマンドレジスタＣｍＲｘから、このとき書き込まれている再生開始コマンドを読み出し、次のステップＳＰ３５に移る。
【０１３０】
ステップＳＰ３５においてサブプロセッサ５４は、コントロールレジスタＣｔＲｘの割り込み線６７に対応するビットフィールドｒ３ｘに対してビット値「０」を書き込むことにより、割り込みを落として、次のステップＳＰ３６に移る。このように、サブプロセッサ５４は、メインプロセッサ４４から割り込みがかけられてコマンドレジスタＣｍＲｘからコマンドを読み込んだ後に、コントロールレジスタＣｔＲｘにアクセスして割り込みを落とすことで、コマンドを読み込み終えたことをメインプロセッサコア４４に認識させ得ると共に、再びメインプロセッサ４４がサブプロセッサ５４に対して割り込みをかけられるようにする。
【０１３１】
ステップＳＰ３６においてサブプロセッサ５４は、読み出したコマンドが再生開始コマンドであると認識すると共に、この再生開始コマンドから、再生データが書き込まれた領域の先頭アドレス「０ｘｐｐｐｐｐｐｐｐｐ」と、この再生データのデータサイズＤｓ１とを取得して、次のステップＳＰ３７に移る。ステップＳＰ３７においてサブプロセッサ５４は、再生データが書き込まれた領域の先頭アドレス「０ｘｐｐｐｐｐｐｐｐｐ」から、所定データサイズ分の再生データを読み出してデコーダ５７に入力し、次のステップＳＰ３８に移る。
【０１３２】
ステップＳＰ３８においてサブプロセッサ５４は、デコーダ５７の出力をサウンドＩ／Ｏ５９からＡＤ／ＤＡ６２に出力することにより、ＡＤ／ＤＡ６２、アンプ６４、スピーカ６５経由で、所定データサイズ分の再生データに基づく音楽を再生し、次のステップＳＰ３９に移る。ステップＳＰ３９においてサブプロセッサ５４は、再生データをデータサイズＤｓ１分再生したか否かを判定する。このステップＳＰ３９で否定結果を得ると、サブプロセッサ５４は、再びステップＳＰ３７に戻り、前回読み出した所定データサイズ分の再生データにつづく所定データサイズ分の再生データを読み出して、デコーダ５７に入力する。
【０１３３】
このようにして、サブプロセッサ５４は、再生データが書き込まれた領域の先頭アドレス「０ｘｐｐｐｐｐｐｐｐｐ」から、分割的に再生データを読み出していき、データサイズＤｓ１分再生し終えると、ステップＳＰ３９で肯定結果を得て、ステップＳＰ４０に移る。ステップＳＰ４０においてサブプロセッサ５４は、再生開始コマンドに指定された再生データに基づく音楽の再生が終了したことを示す再生終了コマンドを、コマンドレジスタＣｍＲｘに書き込み、次のステップＳＰ４１に移る。
【０１３４】
ステップＳＰ４１においてサブプロセッサ５４は、コントロールレジスタＣｔＲｘの割り込み線６６に対応するビットフィールドｒ１ｘに対してビット値「１」を書き込むことにより、メインプロセッサ５４に対して割り込みをかける。
【０１３５】
メインプロセッサ４４は、サブプロセッサ５４から割り込みがかけられると、ステップＳＰ４２において、サブプロセッサ５４によりコマンドレジスタＣｍＲｘに何らかのコマンドが書き込まれていると認識して、コマンドレジスタＣｍＲｘから、このとき書き込まれている再生終了コマンドを読み出し、次のステップＳＰ４３に移る。
【０１３６】
ステップＳＰ４３においてメインプロセッサ４４は、コントロールレジスタＣｔＲｘの割り込み線６６に対応するビットフィールドｒ１ｘに対してビット値「０」を書き込むことにより、割り込みを落として、次のステップＳＰ４４に移る。このように、メインプロセッサ４４も、サブプロセッサ５４から割り込みがかけられてコマンドレジスタＣｍＲｘからコマンドを読み込んだ後に、コントロールレジスタＣｔＲｘにアクセスして割り込みを落とすことで、再びサブプロセッサ５４がメインプロセッサ４４に対して割り込みをかけられるようにする。
【０１３７】
ステップＳＰ４４においてメインプロセッサ４４は、読み出したコマンドが再生終了コマンドであると認識して、終了ステップＳＰ４５に移り、この音楽再生処理手順ＲＴ３を終了する。
【０１３８】
このような音楽再生処理手順ＲＴ３にしたがい、メインプロセッサ４４及びサブプロセッサ５４は、ハードディスクドライブ５２に記録された暗号化されていない音楽データを再生するようになされている。
【０１３９】
このように音楽再生時、メインプロセッサ４４は、メモリ４１へのアクセスと同じようにアクセスし得るコントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘへのアクセスにより、サブプロセッサ５４に対する割り込み制御を容易に行うことができると共に、サブプロセッサ５４に対する音楽再生制御を容易に行うことができるようになっている。
【０１４０】
ちなみに、この音楽再生処理手順ＲＴ３の開始ステップＳＰ３０、ステップＳＰ３１、ステップＳＰ３２、ステップＳＰ３３、ステップＳＰ４２、ステップＳＰ４３、ステップＳＰ４４、終了ステップＳＰ４５がメインプロセッサ４４側の処理であり、ステップＳＰ３４、ステップＳＰ３５、ステップＳＰ３６、ステップＳＰ３７、ステップＳＰ３８、ステップＳＰ３９、ステップＳＰ４０、ステップＳＰ４１がサブプロセッサ５４側の処理である。
【０１４１】
（２−４）録音処理手順
次に、音楽再生／録音装置４０による録音処理手順について、図１６に示すフローチャートを用いて詳細に説明する。ちなみに、この録音処理手順ＲＴ４は、メインプロセッサ４４が、この録音処理手順ＲＴ４に対応するプログラムをハードディスクドライブ５２から読み出してメモリ４１のアドレス領域Ａｒ１０に展開して実行する処理手順であると共に、サブプロセッサ５４が、この録音処理手順ＲＴ４に対応するプログラムをＲＯＭ６０から読み出してメモリ４１のアドレス領域Ａｒ１１に展開して実行する処理手順であるので、主体を適宜変更しながら説明する。また、ここでは一例として、外部入力端子６３から入力される音声信号をハードディスクドライブ５２に記録する場合について説明する。
【０１４２】
メインプロセッサ４４は、ユーザにより操作キー５１を通して録音開始操作が行われたことを認識すると、この録音処理手順ＲＴ４をステップＳＰ５０から開始して、次のステップＳＰ５１に移る。ステップＳＰ５１においてメインプロセッサ４４は、録音開始コマンドを、サブプロセッサコントロールレジスタ５５ＡのコマンドレジスタＣｍＲｘに書き込み、次のステップＳＰ５２に移る。
【０１４３】
ステップＳＰ５２においてメインプロセッサ４４は、コントロールレジスタＣｔＲｘの割り込み線６７に対応するビットフィールドｒ３ｘに対してビット値「１」を書き込むことにより、サブプロセッサ５４に対して割り込みをかける。
【０１４４】
サブプロセッサ５４は、メインプロセッサ４４から割り込みがかけられると、ステップＳＰ５３において、メインプロセッサ４４によりコマンドレジスタＣｍＲｘに何らかのコマンドが書き込まれていると認識して、コマンドレジスタＣｍＲｘから、このとき書き込まれている録音開始コマンドを読み出し、次のステップＳＰ５４に移る。
【０１４５】
ステップＳＰ５４においてサブプロセッサ５４は、コントロールレジスタＣｔＲｘの割り込み線６７に対応するビットフィールドｒ３ｘに対してビット値「０」を書き込むことにより、割り込みを落として、次のステップＳＰ５５に移る。
【０１４６】
ステップＳＰ５５においてサブプロセッサ５４は、読み出したコマンドが録音開始コマンドであると認識して、次のステップＳＰ５６に移る。ステップＳＰ５６においてサブプロセッサ５４は、外部入力端子６３から入力される音声信号を、ＡＤ／ＤＡ６２を介して音楽データとしてサウンドＩ／Ｏ５９より取り込み、さらにこの音楽データをエンコーダ５６に入力し、次のステップＳＰ５７に移る。
【０１４７】
ステップＳＰ５７においてサブプロセッサ５４は、エンコーダ５６の出力（すなわちエンコード処理された記録すべき音楽データであり、以下、これを録音データとも呼ぶ）を、メモリ４１上のサブプロセッサ５４から読み書き可能でメインプロセッサ４４から読み出しのみ可能なアドレス領域Ａｒ１１内に書き込む。このとき、サブプロセッサ５４は、例えば、図１７に示すように、データサイズＤｓ２でなる録音データを、アドレス領域Ａｒ１１内のアドレス「０ｘｒｒｒｒｒｒｒｒ」から同じアドレス領域Ａｒ１１内のアドレス「０ｘｓｓｓｓｓｓｓｓ」までの領域に書き込む。
【０１４８】
このようにして録音データをメモリ４１に書き込んだ後、サブプロセッサ５４は、次のステップＳＰ５８に移る。ステップＳＰ５８においてサブプロセッサ５４は、録音データを書き込んだ領域の先頭アドレス「０ｘｒｒｒｒｒｒｒｒ」と、録音データのデータサイズＤｓ２とを含んだ録音データ識別コマンドを、コマンドレジスタＣｍＲｘに書き込み、次のステップＳＰ５９に移る。
【０１４９】
ステップＳＰ５９においてサブプロセッサ５４は、コントロールレジスタＣｔＲｘの割り込み線６６に対応するビットフィールドｒ１ｘに対してビット値「１」を書き込むことにより、メインプロセッサ４４に対して割り込みをかける。
【０１５０】
メインプロセッサ４４は、サブプロセッサ５４から割り込みがかけられると、ステップＳＰ６０において、サブプロセッサ５４によりコマンドレジスタＣｍＲｘに何らかのコマンドが書き込まれていると認識して、コマンドレジスタＣｍＲｘから、このとき書き込まれている録音データ識別コマンドを読み出し、次のステップＳＰ６１に移る。
【０１５１】
ステップＳＰ６１においてメインプロセッサ４４は、コントロールレジスタＣｔＲｘの割り込み線６６に対応するビットフィールドｒ１ｘに対してビット値「０」を書き込むことにより、割り込みを落として、次のステップＳＰ６２に移る。ステップＳＰ６２においてメインプロセッサ４４は、読み出した録音識別コマンドから、録音データが書き込まれた領域の先頭アドレス「０ｘｐｐｐｐｐｐｐｐｐ」と、この録音データのデータサイズＤｓ２とを取得し、これら先頭アドレス「０ｘｐｐｐｐｐｐｐｐｐ」及びデータサイズＤｓ２に基づいて、メモリ４１から録音データを読み出し、これをハードディスクドライブ５２に記録して、次のステップＳＰ６３に移る。
【０１５２】
ステップＳＰ６３においてメインプロセッサ４４は、操作キー５１を通してユーザにより録音停止操作が行われたか否かを判定する。ここで否定結果を得ると、メインプロセッサ４４は、サブプロセッサ５４に対して、引き続きステップＳＰ５６〜ステップＳＰ５９までの処理を実行させて、次の録音データをメモリ４１へ書き込ませると共に、ステップＳＰ６０でサブプロセッサ５４からの割り込みを待ち受ける。
【０１５３】
つまり、メインプロセッサ４４は、このステップＳＰ６３で肯定結果が得られるまで（録音停止操作が行われるまで）、サブプロセッサ５４がメモリ４１に書き込んでいく録音データを、サブプロセッサ５４から割り込みをかけられたタイミングで、メモリ４１から読み出してハードディスクドライブ５２に記録していくようになされている。
【０１５４】
そして、録音停止操作が行われることにより、このステップＳＰ６３で肯定結果を得ると、メインプロセッサ４４は、ステップＳＰ６４に移る。ステップＳＰ６４においてメインプロセッサ４４は、録音停止コマンドを、コマンドレジスタＣｍＲｘに書き込み、次のステップＳＰ６５に移る。
【０１５５】
ステップＳＰ６５においてメインプロセッサ４４は、コントロールレジスタＣｔＲｘの割り込み線６７に対応するビットフィールドｒ３ｘに対してビット値「１」を書き込むことにより、サブプロセッサ５４に対して割り込みをかける。
【０１５６】
サブプロセッサ５４は、メインプロセッサ４４から割り込みがかけられると、ステップＳＰ６６において、メインプロセッサ４４によりコマンドレジスタＣｍＲｘに何らかのコマンドが書き込まれていると認識して、コマンドレジスタＣｍＲｘから、このとき書き込まれている録音停止コマンドを読み出し、次のステップＳＰ６７に移る。
【０１５７】
ステップＳＰ６７においてサブプロセッサ５４は、コントロールレジスタＣｔＲｘの割り込み線６７に対応するビットフィールドｒ３ｘに対してビット値「０」を書き込むことにより、割り込みを落として、次のステップＳＰ６８に移る。ステップＳＰ６８においてサブプロセッサ５４は、読み出したコマンドが録音停止コマンドであると認識して、終了ステップＳＰ６９に移り、この録音処理手順ＲＴ４を終了する。
【０１５８】
このような録音処理手順ＲＴ４にしたがい、メインプロセッサ４４及びサブプロセッサ５４は、外部入力端子６３から入力される音声信号をハードディスクドライブ５２に記録するようになされている。
【０１５９】
このように録音時、メインプロセッサ４４は、メモリ４１へのアクセスと同じようにアクセスし得るコントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘへのアクセスにより、サブプロセッサ５４に対する割り込み制御を容易に行うことができると共に、サブプロセッサ５４に対する録音制御を容易に行うことができるようになっている。
【０１６０】
ちなみに、この録音処理手順ＲＴ４の開始ステップＳＰ５０、ステップＳＰ５１、ステップＳＰ５２、ステップＳＰ６０、ステップＳＰ６１、ステップＳＰ６２、ステップＳＰ６３、ステップＳＰ６４、ステップＳＰ６５がメインプロセッサ４４側の処理であり、ステップＳＰ５３、ステップＳＰ５４、ステップＳＰ５５、ステップＳＰ５６、ステップＳＰ５７、ステップＳＰ５８、ステップＳＰ５９、ステップＳＰ６６、ステップＳＰ６７、ステップＳＰ６８、終了ステップＳＰ６９がサブプロセッサ５４側の処理である。
【０１６１】
（２−５）第２の実施の形態による動作及び効果
以上の構成において、この音楽再生／録音装置４０では、メインプロセッサシステムバス４９を介してメインプロセッサ４４に接続されているメモリコントローラ４８と、メモリ４１との間に、メモリバス４２及び４３を介してメモリバスブリッジ５５を挟み込み、このメモリバスブリッジ５５にサブプロセッサシステムバス６１を介してサブプロセッサ５４を接続するようにした。
【０１６２】
これにより、この音楽再生／録音装置４０は、メインプロセッサシステムバス４９を介して接続されたメインプロセッサ４４とメモリコントローラ４８とを有するプロセッサパッケージ構成、すなわち既存の汎用的なプロセッサパッケージ構成をくずさずに容易にサブプロセッサ５４を追加して構成することができる。
【０１６３】
実際上、メインプロセッサ４４がメモリ４１へアクセスする場合、メインプロセッサ４４からのアクセス要求は、メモリバスブリッジ５５によってメモリコントローラ４８からメモリ４１へと中継される。このためメインプロセッサ４４は、メモリバスブリッジ５５及びこのメモリバスブリッジ５５に接続されたサブプロセッサ５４が追加されていることを意識することなく、メモリコントローラ４８とメモリ４１とが例えばメモリバス４２を介して直接接続されている場合と同じようにして、メモリ４１へアクセスすることができる。
【０１６４】
またサブプロセッサ５４からのメモリ４１へのアクセスは、メモリバスブリッジ５５によって、サブプロセッサ５４からメモリ４１へと中継される。ここで、メインプロセッサ４４からのアクセス要求と、サブプロセッサ５４からのアクセス要求とのタイミングがぶつかった場合、両プロセッサからのアクセス要求を共に中継するメモリバスブリッジ５５が、これら両プロセッサからのアクセス要求を調停する。
【０１６５】
このように音楽再生／録音装置４０では、メモリバスブリッジ５５に調停機能を持たせたことにより、メインプロセッサ４４及びメモリコントローラ４８に対してサブプロセッサ５４を追加したことにともなう調停機能を持たせることなく、両プロセッサからのアクセス要求を調停することができる。
【０１６６】
さらにメモリバスブリッジ５５には、メインプロセッサ４４からサブプロセッサ５４を制御するためのコントロールレジスタＣｔＲｘと、コマンドの受け渡しに用いるコマンドレジスタＣｍＲｘとが設けられ、さらにこのうちのコントロールレジスタＣｔＲｘには、サブプロセッサ５４へ割り込み信号を送るための割り込み線６７、及びリセット信号を送るためのリセット線６８が接続されている。これらコントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘのそれぞれには、メモリ４１のアドレスとは異なるアドレスが割り当てられ、さらにそのアドレスがメインプロセッサ４４から見てメモリ４１と同じメモリ空間上に設定されている。
【０１６７】
ここで例えば、音楽再生時、メインプロセッサ４４は、ハードディスクドライブ５２から読み出した音楽データをメモリ４１に書き込んだ後、再生開始コマンドの書き込みに応じた、コマンドレジスタＣｍＲｘへのアクセス要求をメモリコントローラ４８に送る。メモリコントローラ４８は、このアクセス要求をメモリバス４２へと送り出す。このようにして送り出されたアクセス要求は、メモリバスブリッジ５５によって検出され、このアクセス要求に応じてメモリバスブリッジ５５がコマンドレジスタＣｍＲｘにアクセスする。このアクセスの結果として、コマンドレジスタＣｍＲｘに再生開始コマンドが書き込まれる。
【０１６８】
つづいてメインプロセッサ４４は、サブプロセッサ５４に対する割り込みに応じた、コントロールレジスタＣｔＲｘへのアクセス要求をメモリコントローラ４８に送る。メモリコントローラ４８は、このアクセス要求をメモリバス４２へと送り出す。このようにして送り出されたアクセス要求は、メモリバスブリッジ５５によって検出され、このアクセス要求に応じてメモリバスブリッジ５５がコントロールレジスタＣｔＲｘにアクセスする。このアクセスの結果として、コントロールレジスタＣｔＲｘに、サブプロセッサ５４への割り込みに対応するビット列が書き込まれると、この書き込まれたビット列に基づき、割り込み線６７を介して割り込み信号がサブプロセッサ５４へと送られ、サブプロセッサ５４に対して割り込みがかかる。
【０１６９】
割り込みをかけられたサブプロセッサ５４は、メモリバスブリッジ５５を介してコマンドレジスタＣｍＲｘにアクセスすることにより、再生開始コマンドを取得して、メモリ４１から音楽データを読み出し、この音楽データに対する再生処理を実行する。
【０１７０】
このように音楽再生／録音装置４０では、メモリコントローラ４８とメモリ４１との間に配されたメモリバスブリッジ５５が、メモリコントローラ４８から送られてくるアクセス要求を、このアクセス要求に応じて、コントロールレジスタＣｔＲｘ、コマンドレジスタＣｍＲｘ、またはメモリ４１へ割り振るようにしたことにより、メインプロセッサ４４が、メモリ４１へアクセスする場合とほぼ同じように、コントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘへアクセスしてサブプロセッサ５４を容易に制御することができる。
【０１７１】
かくするにつき、この音楽再生／録音装置４０では、メインプロセッサ４４及びメモリコントローラ４８を、マルチプロセッサ化のために新たに設計し直す必要がほとんどなく、既存のハードウェア資源を有効利用することができると共に、ソフトウェア的な変更も最小限（例えば、サブプロセッサコントロールレジスタ５５Ａを操作するプログラムを追加するだけ）で済み、既存のソフトウェア資源を有効利用することができる。
【０１７２】
さらにこの音楽再生／録音装置４０では、メインプロセッサ４４からアクセス可能なメモリ空間と、サブプロセッサ５４からアクセス可能なメモリ空間とを示すテーブル情報をメモリバスブリッジ５５に保持させ、このテーブル情報に基づき、メモリバスブリッジ５５で、両プロセッサからのメモリ４１に対するアクセスを排他的に制限する。これにより音楽再生／録音装置４０は、メモリ４１に書き込まれるデータの整合性を確保した状態で、メインプロセッサ４４とサブプロセッサ５４とでメモリ４１を共有することができるので、例えば、サブプロセッサ５４用のメモリを別途設けるなどの必要がなく、構成を簡易化することができる。つまりこの音楽再生／録音装置４０は、既存の構成に対して、サブプロセッサシステムバス６１を介してサブプロセッサ５４と接続されたメモリバスブリッジ５５を追加するだけで構成し得る。
【０１７３】
またこのように、音楽再生／録音装置４０では、メモリバスブリッジ５５にアクセス制限機能を持たせたことにより、メインプロセッサ４４及びメモリコントローラ４８に対してサブプロセッサ５４を追加したことにともなうアクセス制限機能を持たせることなく、メモリ４１に対するアクセス制限をかけることができる。
【０１７４】
以上の構成によれば、メインプロセッサ４４と、メインプロセッサ４４にメインプロセッサシステムバス４９を介して接続されるメモリコントローラ４８と、メモリコントローラ４８にメモリバス４２を介して接続されるメモリバスブリッジ５５と、メモリバスブリッジ５５にサブプロセッサシステムバス６１を介して接続されるサブプロセッサ５４と、メモリバスブリッジ５５にメモリバス４３を介して接続され、メインプロセッサ４４及びサブプロセッサ５４によりメモリバスブリッジ５５を介してアクセスされるメモリ４１とを設けるようにしたことにより、メインプロセッサシステムバス４９を介して接続されたメインプロセッサ４４とメモリコントローラ４８とでなる構成、すなわち既存の構成をくずさずに容易にサブプロセッサ５４を追加して構成することができ、かくして既存の構成に対してプロセッサを容易に追加して構成し得る情報処理装置、制御方法、及び制御プログラムを実現し得る。
【０１７５】
（３）第３の実施の形態
次に、本発明の第３の実施の形態を詳述する。この第３の実施の形態においては、音楽再生／録音装置４０によるメモリ４１に対するアクセス制限及び音楽再生処理が異なる点以外、上述した第２の実施の形態と同様であり、同様部分である音楽再生／録音装置４０の構成などの説明は省略する。
【０１７６】
（３−１）アクセス制限
この第３の実施の形態による音楽再生／録音装置４０では、ブリッジ／アービタ５５Ｂに対して、例えば、図１８に示すように、メモリ４１の先頭アドレス「０ｘ００００００００」から終端アドレス「０ｘｃｃｃｃｃｃｃｃ」までのうち、先頭アドレス「０ｘ００００００００」からアドレス「０ｘａａａａａａａａ」までをメインプロセッサ４４から読み書き可能でサブプロセッサ５４から読み出しのみ可能なアドレス領域Ａｒ２０とすると共に、アドレス「０ｘａａａａａａａａ」の次のアドレスからアドレス「０ｘｂｂｂｂｂｂｂｂ」までをメインプロセッサ４４から読み出しのみ可能でサブプロセッサ５４から書き込みのみ可能なアドレス領域Ａｒ２１とし、さらにアドレス「０ｘｂｂｂｂｂｂｂｂ」の次のアドレスから終端アドレス「０ｘｃｃｃｃｃｃｃｃ」までをメインプロセッサ４４からアクセス不可でサブプロセッサ５４から読み書き可能なアドレス領域Ａｒ２２とすることを示すテーブル情報を保持させる。
【０１７７】
つまり、本実施の形態では、音楽再生／録音装置４０のメモリ４１にサブプロセッサ５４からしかアクセスできないアドレス領域Ａｒ２２を設けるようにした点が、第２の実施形態と大きく異なる点である。以下、このようなサブプロセッサ５４からしかアクセスできないアドレス領域Ａｒ２２の用途を具体的に説明する。
【０１７８】
第２の実施の形態でも説明したように、音楽再生／録音装置４０は、著作権管理技術などにより暗号化された有料の音楽データを、例えばネットワークＮＴ上のサーバから対価を払ってダウンロードした後に再生する場合、この暗号化された音楽データを、サブプロセッサ５４により制御される暗復号器５８で復号してからエンコーダ５６でエンコード処理することにより再生する。
【０１７９】
このとき、暗復号器５８は、サブプロセッサ５４から与えられる復号鍵を用いて、暗号化された音楽データを復号するようになされている。ここで、暗号化された音楽データが例えば対価を払っていないユーザの再生装置で不正に復号されてしまうことを防止するには、この復号時に用いる復号鍵及びこの復号時にサブプロセッサ５４が実行するプログラムを秘密情報として、サブプロセッサ５４以外から見えないように（すなわちユーザ操作を直接制御するメインプロセッサ４４からも見えないように）隠蔽することが望ましい。
【０１８０】
そこで、本実施の形態では、秘密情報である、復号時に用いる復号鍵及びこの復号時にサブプロセッサ５４が実行するプログラムを、サブプロセッサ５４からしかアクセスできないアドレス領域Ａｒ２２に格納することで、これら秘密情報を、メインプロセッサ４４から分離して隠蔽し得るようになされている。
【０１８１】
（３−２）音楽再生処理手順
ここで、音楽再生／録音装置４０による、ハードディスクドライブ５２に記録された暗号化されている音楽データを再生する場合の音楽再生処理手順について、図１９に示すフローチャートを用いて詳細に説明する。ちなみに、この音楽再生処理手順ＲＴ５は、メインプロセッサ４４が、この音楽再生処理手順ＲＴ５に対応するプログラムをハードディスクドライブ５２から読み出してメモリ４１のアドレス領域Ａｒ２０に展開して実行する処理手順であると共に、サブプロセッサ５４が、この音楽再生処理手順ＲＴ５に対応するプログラムをＲＯＭ６０から読み出してメモリ４１のアドレス領域Ａｒ２２に展開して実行する処理手順であるので、主体を適宜変更しながら説明する。
【０１８２】
メインプロセッサ４４は、ユーザにより操作キー５１を通して音楽再生操作が行われたことを認識すると、この音楽再生処理手順ＲＴ５をステップＳＰ７０から開始して、次のステップＳＰ７１に移る。ステップＳＰ７１においてメインプロセッサ４４は、ハードディスクドライブ５２から再生すべき暗号化されている音楽データ（以下、これを暗号化再生データとも呼ぶ）を読み出し、この読み出した暗号化再生データをメモリ４１上のメインプロセッサ４４から読み書き可能でサブプロセッサ５４から読み出しのみ可能なアドレス領域Ａｒ２０内に書き込む。このとき、メインプロセッサ４４は、例えば、図２０に示すように、データサイズＤｓ３でなる暗号化再生データを、アドレス領域Ａｒ２０内のアドレス「０ｘｔｔｔｔｔｔｔｔ」から同じアドレス領域Ａｒ２０内のアドレス「０ｘｕｕｕｕｕｕｕｕ」までの領域に書き込む。
【０１８３】
このようにして暗号化再生データをメモリ４１に書き込んだ後、メインプロセッサ４４は、次のステップＳＰ７２に移る。ステップＳＰ７２においてメインプロセッサ４４は、メモリ４１に書き込んだ暗号化再生データに対する再生開始コマンドを、サブプロセッサコントロールレジスタ５５ＡのコマンドレジスタＣｍＲｘに書き込み、次のステップＳＰ７３に移る。ここで、この再生開始コマンドは再生データが暗号化再生データであることを示すコマンドであるとし、さらにこの再生開始コマンドには、暗号化再生データが書き込まれた領域の先頭アドレス「０ｘｔｔｔｔｔｔｔｔ」と、暗号化再生データのデータサイズＤｓ３とが含まれている。
【０１８４】
ステップＳＰ７３においてメインプロセッサ４４は、コントロールレジスタＣｔＲｘの割り込み線６７に対応するビットフィールドｒ３ｘに対してビット値「１」を書き込むことにより、サブプロセッサ５４に対して割り込みをかける。
【０１８５】
サブプロセッサ５４は、メインプロセッサ４４から割り込みがかけられると、ステップＳＰ７４において、メインプロセッサ４４によりコマンドレジスタＣｍＲｘに何らかのコマンドが書き込まれていると認識して、コマンドレジスタＣｍＲｘから、このとき書き込まれている再生開始コマンドを読み出し、次のステップＳＰ７５に移る。
【０１８６】
ステップＳＰ７５においてサブプロセッサ５４は、コントロールレジスタＣｔＲｘの割り込み線６７に対応するビットフィールドｒ３ｘに対してビット値「０」を書き込むことにより、割り込みを落として、次のステップＳＰ７６に移る。ステップＳＰ７６においてサブプロセッサ５４は、読み出したコマンドが、再生開始コマンドであると認識すると共に、この再生開始コマンドから、暗号化再生データが書き込まれた領域の先頭アドレス「０ｘｔｔｔｔｔｔｔｔ」と、この暗号化再生データのデータサイズＤｓ３とを取得して、次のステップＳＰ７７に移る。ステップＳＰ７７においてサブプロセッサ５４は、再生開始コマンドより再生データが暗号化再生データであることを認識して、メモリ４１のアドレス領域Ａｒ２２に書き込まれている復号鍵Ｄｋ１（図２０）を読み出し、これを暗復号器５８に入力して、次のステップＳＰ７８に移る。ちなみにこの復号鍵Ｄｋ１は、例えば、その種となるデータがＲＯＭ６０に書き込まれていて、音楽再生／録音装置４０の起動時に、サブプロセッサ５４が、このデータをもとに暗復号器５８で復号鍵Ｄｋ１を生成して、メモリ４１のアドレス領域Ａｒ２２に書き込むようになされている。
【０１８７】
ステップＳＰ７８においてサブプロセッサ５４は、暗号化再生データが書き込まれた領域の先頭アドレス「０ｘｔｔｔｔｔｔｔｔ」から、所定データサイズ分の暗号化再生データを読み出して暗復号器５８に入力し、次のステップＳＰ７９に移る。ステップＳＰ７９においてサブプロセッサ５４は、暗復号器５８の出力をデコーダ５７に入力して、次のステップＳＰ８０に移る。
【０１８８】
ステップＳＰ８０においてサブプロセッサ５４は、デコーダ５７の出力をサウンドＩ／Ｏ５９からＡＤ／ＤＡ６２に出力することにより、ＡＤ／ＤＡ６２、アンプ６４、スピーカ６５経由で、所定データサイズ分の暗号化再生データに基づく音楽を再生し、次のステップＳＰ８１に移る。ステップＳＰ８１においてサブプロセッサ５４は、暗号化再生データをデータサイズＤｓ３分再生したか否かを判定する。このステップＳＰ８１で否定結果を得ると、サブプロセッサ５４は、再びステップＳＰ７８に戻り、前回読み出した所定データサイズ分の暗号化再生データにつづく所定データサイズ分の暗号化再生データを読み出して、暗復号器５８に入力する。
【０１８９】
このようにして、サブプロセッサ５４は、暗号化再生データが書き込まれた領域の先頭アドレス「０ｘｔｔｔｔｔｔｔｔ」から、分割的に暗号化再生データを読み出していき、データサイズＤｓ３分再生し終えると、ステップＳＰ８１で肯定結果を得て、ステップＳＰ８２に移る。ステップＳＰ８２においてサブプロセッサ５４は、再生開始コマンドに指定された暗号化再生データに基づく音楽の再生が終了したことを示す再生終了コマンドを、コマンドレジスタＣｍＲｘに書き込み、次のステップＳＰ８３に移る。
【０１９０】
ステップＳＰ８３においてサブプロセッサ５４は、コントロールレジスタＣｔＲｘの割り込み線６６に対応するビットフィールドｒ１ｘに対してビット値「１」を書き込むことにより、メインプロセッサ４４に対して割り込みをかける。
【０１９１】
メインプロセッサ４４は、サブプロセッサ５４から割り込みがかけられると、ステップＳＰ８４において、サブプロセッサ５４によりコマンドレジスタＣｍＲｘに何らかのコマンドが書き込まれていると認識して、コマンドレジスタＣｍＲｘから、このとき書き込まれている再生終了コマンドを読み出し、次のステップＳＰ８５に移る。
【０１９２】
ステップＳＰ８５においてメインプロセッサ４４は、コントロールレジスタＣｔＲｘの割り込み線６６に対応するビットフィールドｒ１ｘに対してビット値「０」を書き込むことにより、割り込みを落として、次のステップＳＰ８６に移る。ステップＳＰ８６においてメインプロセッサ４４は、読み出したコマンドが再生終了コマンドであると認識して、終了ステップＳＰ８７に移り、この音楽再生処理手順ＲＴ５を終了する。
【０１９３】
このような音楽再生処理手順ＲＴ５にしたがい、メインプロセッサ４４及びサブプロセッサ５４は、ハードディスクドライブ５２に記録された暗号化再生データに基づく音楽を再生するようになされている。
【０１９４】
ちなみに、この音楽再生処理手順ＲＴ５の開始ステップＳＰ７０、ステップＳＰ７１、ステップＳＰ７２、ステップＳＰ７３、ステップＳＰ８４、ステップＳＰ８５、ステップＳＰ８６、終了ステップＳＰ８７がメインプロセッサ４４側の処理であり、ステップＳＰ７４、ステップＳＰ７５、ステップＳＰ７６、ステップＳＰ７７、ステップＳＰ７８、ステップＳＰ７９、ステップＳＰ８０、ステップＳＰ８１、ステップＳＰ８２、ステップＳＰ８３がサブプロセッサ５４側の処理である。
【０１９５】
かくしてこの第３の実施の形態による音楽再生／録音装置４０によれば、第２の実施得の形態で得られる効果にくわえて、サブプロセッサ５４側の処理を、メインプロセッサ４４側の処理から分離して隠蔽することができるので、サブプロセッサ５４側で、暗号化された音楽データの復号をセキュアに処理することができる。
【０１９６】
なお、ここでは、暗号化再生データを復号するときの処理をセキュアにする場合について述べたが、例えば、外部入力端子６３から入力される音声信号を、サウンドＩ／Ｏ５９から音楽データとして取り込み、さらにこの音楽データをエンコーダ５６でエンコード処理した後、暗復号器５８で暗号化する処理、つまり録音データを暗号化するときの処理をセキュアにすることもできる。
【０１９７】
実際上、サブプロセッサコア５４は、秘密情報である、暗号化時に用いる暗号鍵及びこの暗号化時にサブプロセッサ５４が実行するプログラムを、サブプロセッサ５４からしかアクセスできないアドレス領域Ａｒ２２に格納する。
【０１９８】
そしてサブプロセッサコア５４は、アドレス領域Ａｒ２２に格納したプログラムを実行することで、図２１に示すように、アドレス領域Ａｒ２２に格納した暗号鍵Ｄｋ２を暗復号器５８に入力して録音データを暗号化し、この暗号化した録音データ（以下、これを暗号化録音データとも呼ぶ）を、サブプロセッサコア５４から書き込みのみ可能でメインプロセッサコア４４から読み出しのみ可能なアドレス領域Ａｒ２１に書き込む。
【０１９９】
こうすることで、この音楽再生／録音装置４０は、録音データの暗号化もセキュアに処理することができる。
【０２００】
（４）他の実施の形態
なお上述の第２及び第３の実施の形態においては、音楽再生／録音装置４０に本発明を適用した場合について述べたが、本発明はこれに限らず、ハードディスクレコーダ、パーソナルコンピュータ、ゲーム機など、処理速度の向上が要求されるような種々の情報処理装置に適用することができる。
【０２０１】
また上述の第１の実施の形態においては、マルチプロセッサシステム２０のメモリバス２５及びメモリバス２７の転送速度について特に言及していないが、例えば、メインプロセッサコア２１からのアクセスとサブプロセッサコア２２からのアクセスとの両アクセスの通り道となるメモリバス２７の転送速度を、メインプロセッサコア２１からのアクセスのみの通り道となるメモリバス２５の転送速度よりも速くすれば、サブプロセッサコア２２追加によるメインプロセッサコア２１側への影響（すなわちアクセスの遅延）をより少なくすることができる。このことは、第２及び第３の実施の形態における、音楽再生／録音装置４０のメモリバス４２とメモリバス４３との転送速度についても同様である。
【０２０２】
さらに上述の第１の実施の形態においては、メモリバスブリッジ２６のサブプロセッサコントロールレジスタ２６Ａが、コントロールレジスタＣｔＲとコマンドレジスタＣｍＲとでなる場合について述べたが、本発明はこれに限らず、サブプロセッサコントロールレジスタ２６Ａが、これらコントロールレジスタＣｔＲ及びコマンドレジスタＣｍＲにくわえて、これら以外のレジスタを有していてもよいし、例えば、コントロールレジスタＣｔＲとコマンドレジスタＣｍＲとが１つのレジスタであってもよい。このことは第２及び第３の実施の形態における、音楽再生／録音装置４０のサブプロセッサコントロールレジスタ５５Ａについても同様である。
【０２０３】
さらに上述の第１の実施の形態においては、コントロールレジスタＣｔＲが８ビットのレジスタである場合について述べたが、本発明はこれに限らず、このコントロールレジスタＣｔＲが８ビット以外のレジスタであってもよい。またコマンドレジスタＣｍＲについては、上述したようにｎビットのレジスタであり、コマンドレジスタＣｍＲに書き込まれるコマンドのデータ量に応じたビットのレジスタであればよい。つまり、コマンドレジスタＣｍＲが、コントロールレジスタＣｔＲと同じ８ビットのレジスタであってもよいし、９ビット以上、または７ビット以下のレジスタであってもよい。このことは、第２及び第３の実施の形態における、音楽再生／録音装置４０のコントロールレジスタＣｔＲｘ及びコマンドレジスタＣｍＲｘについても同様である。
【０２０４】
さらに上述の第１の実施の形態においては、コントロールレジスタＣｔＲのビットフィールドに対応付けて、メインプロセッサコア２１への割り込み線３０、サブプロセッサコア２２への割り込み線３１及びリセット線３２が接続されている場合について述べたが、本発明はこれに限らず、これら以外のラインが、コントロールレジスタＣｔＲのビットフィールドに対応付けて接続されていてもよい。このことは、第２及び第３の実施の形態における、音楽再生／録音装置４０のコントロールレジスタＣｔＲｘについても同様である。
【０２０５】
さらに上述の第１の実施の形態においては、メモリコントローラ２４とメモリ２８との間に配されたメモリバスブリッジ２６が、メモリコントローラ２４から送られてくるアクセス要求を、このアクセス要求に指定されたアドレスによりサブプロセッサコントロールレジスタ２６Ａまたはメモリ２８へ割り振るようにした場合について述べたが、本発明はこれに限らず、例えば、アクセス要求に、サブプロセッサコントロールレジスタ２６Ａのアクセスであるのか、またはメモリ２８へのアクセスであるのかを示すパラメータを付加しておき、このパラメータに基づいて、メモリバスブリッジ５５が、メモリコントローラ２４から送られてくるアクセス要求を、サブプロセッサコントロールレジスタ２６Ａまたはメモリ２８へ割り振るようにしてもよい。このことは、第２及び第３の実施の形態における、音楽再生／録音装置４０についても同様である。
【０２０６】
さらに上述の第１の実施の形態においては、サブプロセッサコントロールレジスタ２６Ａのアドレスがメインプロセッサ２１及びサブプロセッサ２２から見てメモリ２８と同じメモリ空間上に設定されているようにした場合について述べたが、本発明はこれに限らず、サブプロセッサコントロールレジスタ２６Ａのアドレスがメモリ２８と異なるメモリ空間上に設定されていてもよい。このことは、第２及び第３の実施の形態における、音楽再生／録音装置４０についても同様である。
【０２０７】
さらに上述の第２及び第３の実施の形態においては、メインプロセッサパッケージＰＫ１が、メインプロセッサ４４とＰＣＩコントローラ４５とＵＳＢコントローラ４６とＩＤＥコントローラ４７とメモリコントローラ４８とこれらを繋ぐメインプロセッサシステムバス４９とにより構成されている場合について述べたが、本発明はこれに限らず、メインプロセッサコア４４、メモリコントローラ４８、及びメインプロセッサシステムバス４９以外のＰＣＩコントローラ４５、ＵＳＢコントローラ４６、及びＩＤＥコントローラ４７については、必ずしもこれらに限定されるものではない。またメインプロセッサ４４とＰＣＩコントローラ４５とＵＳＢコントローラ４６とＩＤＥコントローラ４７とメモリコントローラ４８とメインプロセッサシステムバス４９とがパッケージ化されていなくてもよい。
【０２０８】
さらに上述の第２及び第３の実施の形態においては、サブプロセッサパッケージＰＫ２が、サブプロセッサ５４とメモリバスブリッジ５５とエンコーダ５６とデコーダ５７と暗復号器５８とサウンドＩ／Ｏ５９とＲＯＭ６０とこれらを繋ぐサブプロセッサシステムバス６１とにより構成されている場合について述べたが、本発明はこれに限らず、サブプロセッサ５４、メモリバスブリッジ５５、及びサブプロセッサシステムバス６１以外のエンコーダ５６、デコーダ５７、暗復号器５８、サウンドＩ／Ｏ５９、及びＲＯＭ６０については、必ずしもこれらに限定されるものではない。実際上、例えば、エンコーダ５６、デコーダ５７、暗復号器５８については、サブプロセッサコア５４上で動くソフトウェアとして実装するようにしてもよい。またサブプロセッサ５４とメモリバスブリッジ５５とエンコーダ５６とデコーダ５７と暗復号器５８とサウンドＩ／Ｏ５９とＲＯＭ６０とサブプロセッサシステムバス６１とがパッケージ化されていなくてもよい。
【０２０９】
さらに上述の第２及び第３の実施の形態においては、サブプロセッサに対する制御コマンドである再生開始コマンドに、再生データが書き込まれた領域の先頭アドレスと再生データのデータサイズとが含まれている場合について述べたが、本発明はこれに限らず、例えば、デコーダ５７に対して、デコード処理開始前にパラメータ設定（例えばコーデックの設定）が必要な場合などには、再生開始コマンドにこのパラメータ設定に必要なパラメータを含ませるようにしてもよい。同様に、録音開始コマンドにも、例えば、エンコーダ５６に対して、エンコード処理開始前にパラメータ設定（例えばコーデックの設定やビットレートの設定）が必要な場合などには、録音開始コマンドにこのパラメータ設定に必要なパラメータを含ませるようにしてもよい。
【０２１０】
さらに上述の第２及び第３の実施の形態においては、ハードディスクドライブ５２にインストールされたプログラムにしたがって、メインプロセッサ４４が、サブプロセッサ５４を制御して音楽再生処理及び録音処理などを実行する場合について述べたが、本発明はこれに限らず、例えばこのプログラムをＣＤなどの記録媒体に記録しておき、この記録媒体から読み出して実行するようにしてもよい。
【産業上の利用可能性】
【０２１１】
本発明は、マルチプロセッサ構成の様々な情報処理装置で広く利用できる。
【図面の簡単な説明】
【０２１２】
【図１】情報処理装置の構成を示す略線図である。
【図２】マルチプロセッサシステムの構成を示す略線図である。
【図３】メモリバスブリッジの構成を示す略線図である。
【図４】コントロールレジスタの構成を示す略線図である。
【図５】メイン側アクセス手順を示すフローチャートである。
【図６】サブ側アクセス手順を示すフローチャートである。
【図７】メモリに対するアクセス制限を示す略線図である。
【図８】コントロールレジスタに対するアクセス制限を示す略線図である。
【図９】第２の実施の形態による音楽再生／録音装置の構成を示す略線図である。
【図１０】第２の実施の形態によるメモリバスブリッジの構成を示す略線図である。
【図１１】第２の実施の形態によるコントロールレジスタの構成を示す略線図である。
【図１２】第２の実施の形態によるメモリに対するアクセス制限を示す略線図である。
【図１３】第２の実施の形態によるコントロールレジスタに対するアクセス制限を示す略線図である。
【図１４】第２の実施の形態による音楽再生処理手順を示すフローチャートである。
【図１５】再生データの書き込み領域を示す略線図である。
【図１６】第２の実施の形態による録音処理手順を示すフローチャートである。
【図１７】録音データの書き込み領域を示す略線図である。
【図１８】第３の実施の形態によるメモリに対するアクセス制限を示す略線図である。
【図１９】第３の実施の形態による音楽再生処理手順を示すフローチャートである。
【図２０】復号鍵及び暗号化再生データの書き込み領域を示す略線図である。
【図２１】暗号鍵及び暗号化録音データの書き込み領域を示す略線図である。
【符号の説明】
【０２１３】
１……情報処理装置、２、２１、４４……メインプロセッサ、３、２３、４９……メインプロセッサシステムバス、４、２４、４８……メモリコントローラ、５……第１のメモリバス、６、２６、５５……メモリバスブリッジ、７、２９、６１……サブプロセッサシステムバス、８、２２、５４……サブプロセッサ、９……第２のメモリバス、１０、２８、４１……メモリ、１１、ＣｍＲ、ＣｍＲｘ……コマンドレジスタ、１２、ＣｔＲ、ＣｔＲｘ……コントロールレジスタ、２０……マルチプロセッサシステム、２５……メモリバス、２６Ａ、５５Ａ……サブプロセッサコントロールレジスタ、２６Ｂ、５５Ｂ……ブリッジ／アービタ、２７……メモリバス、３０、３１、６６、６７……割り込み線、３２、６８……リセット線、ＰＫ１……メインプロセッサパッケージ、ＰＫ２……サブプロセッサシステムパッケージ。
【図１】
2007141166.tif 000003
【図２】
2007141166.tif 000004
【図３】
2007141166.tif 000005
【図４】
2007141166.tif 000006
【図５】
2007141166.tif 000007
【図６】
2007141166.tif 000008
【図７】
2007141166.tif 000009
【図８】
2007141166.tif 000010
【図９】
2007141166.tif 000011
【図１０】
2007141166.tif 000012
【図１１】
2007141166.tif 000013
【図１２】
2007141166.tif 000014
【図１３】
2007141166.tif 000015
【図１４】
2007141166.tif 000016
【図１５】
2007141166.tif 000017
【図１６】
2007141166.tif 000018
【図１７】
2007141166.tif 000019
【図１８】
2007141166.tif 000020
【図１９】
2007141166.tif 000021
【図２０】
2007141166.tif 000022
【図２１】
2007141166.tif 000023