(57)【要約】【課題】マルチプロセッサ間の完全な相互アクセスを実現し、マルチプロセッサがアドレス空間、周辺制御装置及びメモリを共有し、拡張性を向上し、システムの性能を大幅に向上させる。【解決手段】本発明は、独立したブートメモリと、独立したアドレスマッピングモジュールとを、各プロセッサに割り当て、いずれか１つのプロセッサが起動した後、アドレスマッピングモジュールにより、複数のプロセッサ間の相互アクセスを実現する、マルチプロセッサの完全な相互アクセス方法及びシステムを開示する。【選択図】図２
2013516010.tif 000002
【特許請求の範囲】
【請求項１】
独立したブートメモリと、独立したアドレスマッピングモジュールとを、各プロセッサに割り当て、
いずれか１つのプロセッサが起動した後、アドレスマッピングモジュールにより、複数のプロセッサ間の相互アクセスを実現する
マルチプロセッサの完全な相互アクセス方法。
【請求項２】
さらに、前記プロセッサが起動する前に、電源をオンした後、各プロセッサを起動可能にする
請求項１に記載の方法。
【請求項３】
さらに、プロセッサが起動して初期化するとき、アドレスマッピングモジュールにより、各プロセッサの先頭アドレスを、プロセッサに対応するブートメモリにマッピングする
請求項２に記載の方法。
【請求項４】
さらに、各２つのプロセッサの間の通信を共有するためのメールボックスを設定する
請求項１〜３のいずれか１項に記載の方法。
【請求項５】
マルチプロセッサの完全な相互アクセスを実現することは、具体的には、
アドレスマッピングモジュールが、プロセッサが送信した論理アドレスを、別のプロセッサが認識可能な物理アドレスに変換して、マルチプロセッサ間の相互アクセスを実現することである
請求項４に記載の方法。
【請求項６】
１以上のプロセッサを含み、システム内部の全てのデータを処理するマルチプロセッサモジュールと、
マルチプロセッサモジュールに含まれる１つのプロセッサから送信された論理アドレスを、別のプロセッサが識別可能な対応する物理アドレスに変換する１以上のアドレスマッピングモジュールと、
データ、データアドレス及び制御信号を伝送するオンチップ相互接続バスと、
メインメモリと、１以上のブートメモリとを含み、アプリケーションプログラム及びデータを格納するメモリモジュールとを含み、
各プロセッサは、１つのブートメモリと、１つのアドレスマッピングモジュールとに対応する
マルチプロセッサの完全な相互アクセスシステム。
【請求項７】
少なくとも１つのメールボックス及び／又は少なくとも１つの周辺制御装置を更に含み、
各メールボックスは、各２つのプロセッサの間に配置され、２つのプロセッサの間の通信を共有し、
周辺制御装置は、他の周辺装置を搭載する
請求項６に記載のシステム。
【請求項８】
起動モジュール及び／又はダイレクトメモリアクセス（ＤＭＡ：Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）モジュールを更に含み、
起動モジュールは、各プロセッサを起動可能とし、
ＤＭＡモジュールは、データを搬送する
請求項６又は７に記載のシステム。
【請求項９】
前記オンチップ相互接続バスは、少なくとも１つのレベルのバスを含み、
レベル１のバスは、マルチプロセッサモジュールと、メモリモジュールとを接続し、
レベル２のバスは、下位のバスであり、上位のバスと周辺制御装置とを接続し、上位のバスとメールボックスとを接続する
請求項８に記載のシステム。
【請求項１０】
２つのレベルのバス同士を接続するブリッジを更に含む
請求項９に記載のシステム。
【請求項１１】
レベル１のバスを経由せずにレベル２のバスに直接アクセスする通信伝送路をプロセッサに提供するバイパスモジュールを更に含む
請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサ技術に関し、特に、システムオンチップ（Ｓｏｃ：Ｓｙｓｔｅｍ  ｏｎ  ｃｈｉｐ）におけるマルチプロセッサの完全な相互アクセス方法及びシステムに関する。
【背景技術】
【０００２】
集積回路（ＩＣ：Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）技術が進歩し、組み込み型（ｅｍｂｅｄｄｅｄ）処理への要求が急増している。これに伴い、プロセッサシステムアーキテクチャは、マルチコアプロセッサに向かって発展している。マルチコアプロセッサにより、複雑さや、不十分な計算能力といった、シングルプロセッサシステムにおける克服し難い問題の解決が望まれる。
【０００３】
従来技術では、一般的に、通信分野に係るマルチコアプロセッサシステムにおいて、複数のプロセッサは、明確に分業化されている。複数のプロセッサは、それぞれが独立した処理タスクを取り扱う必要がある。ここで、専用処理モジュールは、各処理タスクを独自に実行する。各専用処理モジュールには、専用プロセッサと、周辺装置セットとが割り当てられる。各専用プロセッサは、自身の独立したアドレス空間を有する。結果的に、各専用プロセッサ間では、完全な相互アクセスをすることができない。
【０００４】
上記のように、従来技術において、マルチプロセッサ間では、完全な相互アクセスを実現することができない。つまり、マルチプロセッシングシステムに含まれるリソースは、完全に共有されているわけではない。これにより、データ処理の高速化が阻害され、更に、サービスの正常な動作が阻害される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上を鑑み、本発明の主な目的は、複数のプロセッサ間のリソース共有を実現し、これにより、データ処理を高速化し、サービスの正常な動作を保証することが可能な、マルチプロセッサの完全な相互アクセス方法及びシステムを提供することにある。
【課題を解決するための手段】
【０００６】
前記目的を実現するために、本発明の技術的スキームは、下記のように実現される。
【０００７】
本発明は、
独立したブートメモリと、独立したアドレスマッピングモジュールとを、各プロセッサに割り当て、
いずれか１つのプロセッサが起動した後、アドレスマッピングモジュールにより、複数のプロセッサ間の相互アクセスを実現する
マルチプロセッサの完全な相互アクセス方法を提供する。
【０００８】
前記スキームにおいて、さらに、前記プロセッサが起動する前に、電源をオンした後、各プロセッサを起動可能にする。
【０００９】
前記スキームにおいて、さらに、プロセッサが起動して初期化するとき、アドレスマッピングモジュールにより、各プロセッサの先頭アドレスを、プロセッサに対応するブートメモリにマッピングする。
【００１０】
前記スキームにおいて、さらに、各２つのプロセッサの間の通信を共有するためのメールボックスを設定する。
【００１１】
前記スキームにおいて、マルチプロセッサの完全な相互アクセスを実現することは、具体的には、
アドレスマッピングモジュールが、プロセッサが送信した論理アドレスを、別のプロセッサが認識可能な物理アドレスに変換して、マルチプロセッサ間の相互アクセスを実現することである。
【００１２】
本発明は、マルチプロセッサの完全な相互アクセスシステムを更に提供する。前記システムは、
１以上のプロセッサを含み、システム内部の全てのデータを処理するマルチプロセッサモジュールと、
マルチプロセッサモジュールに含まれる１つのプロセッサから送信された論理アドレスを、別のプロセッサが識別可能な対応する物理アドレスに変換する１以上のアドレスマッピングモジュールと、
データ、データアドレス及び制御信号を伝送するオンチップ相互接続バスと、
メインメモリと、１以上のブートメモリとを含み、アプリケーションプログラム及びデータを格納するメモリモジュールとを含み、
各プロセッサは、１つのブートメモリと、１つのアドレスマッピングモジュールとに対応する。
【００１３】
前記スキームにおいて、前記システムは、少なくとも１つのメールボックス及び／又は少なくとも１つの周辺制御装置を更に含み、
各メールボックスは、各２つのプロセッサの間に配置され、２つのプロセッサの間の通信を共有し、
周辺制御装置は、他の周辺装置を搭載する。
【００１４】
前記スキームにおいて、前記システムは、起動モジュール及び／又はダイレクトメモリアクセス（ＤＭＡ：Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）モジュールを更に含み、
起動モジュールは、各プロセッサを起動可能とし、
ＤＭＡモジュールは、データを搬送する。
【００１５】
前記スキームにおいて、前記オンチップ相互接続バスは、少なくとも１つのレベルのバスを含み、
レベル１のバスは、マルチプロセッサモジュールと、メモリモジュールとを接続し、
レベル２のバスは、下位のバスであり、上位のバスと周辺制御装置とを接続し、上位のバスとメールボックスとを接続する。
【００１６】
前記スキームにおいて、前記システムは、２つのレベルのバス同士を接続するブリッジを更に含む。
【００１７】
前記スキームにおいて、前記システムは、レベル１のバスを経由せずにレベル２のバスに直接アクセスする通信伝送路をプロセッサに提供するバイパスモジュールを更に含む。
【発明の効果】
【００１８】
本発明が提供するマルチプロセッサの完全な相互アクセス方法及びシステムは、下記のような特徴及び利点を有する。
【００１９】
１）本発明は、各プロセッサに、独立したブート（起動）メモリを設ける。これにより、電源をオンする際、起動モードが柔軟になる。例えば、１つのプロセッサが先に起動してメインプロセッサとして機能し、他のプロセッサの起動を制御することができる。あるいは、複数のプロセッサが同時に起動することもできる。
【００２０】
２）本発明によれば、アドレスマッピングメカニズムにより、プロセッサが周辺装置を処理するために割り当てたアドレス空間を、アクセス対象のプロセッサに対応する周辺装置のアドレス空間にマッピングする。これにより、プロセッサが送信した論理アドレスを、アクセス対象のプロセッサに対応する周辺装置の物理アドレスに、確実に対応させることができる。その結果、プロセッサは、アクセス対象のプロセッサに対応する周辺装置にアクセスすることができる。同機種環境のプロセッサをサポートするだけでなく、異機種環境のプロセッサもサポートすることができる。このため、全てのリソースが、各プロセッサに対して同等のステータスとなる。また、各プロセッサがリソースを共有できる。例えば、マルチプロセッサ間で、周辺装置及びメモリなどを共有することができる。
【００２１】
３）本発明によれば、バス階層化技術でデータの伝送を実現する。高速の周辺装置をレベル１のバスに接続し、低速の周辺装置をレベル２のバスに接続する。これにより、高速周辺装置と低速周辺装置とをよく統合することができる。さらに、具体的なアプリケーションに応じて、バスの階層数を増減したり、レベル２のバスの数を増減することができる。これにより、多数のスレーブ装置を接続することができ、拡張性が向上する。
【００２２】
本発明によれば、プロセッサとレベル２のバスとの間に、バイパス伝送路が設けられる。プロセッサは、レベル１のバスを経由せずに、バイパス伝送路を介して、レベル２のバスに接続される周辺装置に直接アクセスできる。このため、プロセッサと周辺装置との間の帯域幅を大幅に向上させることができる。また、レベル１のバスの帯域幅負荷を低下させることができる。これにより、サービスの正常な動作を保証することができる。
【００２３】
４）本発明によれば、各２つのプロセッサにメールボックスを設ける。これにより、関連する２つのプロセッサだけが、このメールボックスにアクセスすることができる。一方、他のプロセッサは、このメールボックスに対するアクセス権を持たない。これにより、マルチプロセッサ間での相互制御の目的を達成することができる。これにより、タスクを迅速に、順序良く処理することを保証することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明のマルチプロセッサの完全な相互アクセスシステムの構造図である。
【図２】本発明のマルチプロセッサの完全な相互アクセス方法のフローチャートである。
【図３】本発明の実施形態におけるシステム構築のフレームワークの模式図である。
【図４】本発明の実施形態における相互アクセス実現方法のフローチャートである。
【図５】本発明の実施形態におけるアドレスマッピングメカニズムの実現に係る模式図である。
【図６】本発明の実施形態におけるプロセッサアクセスメカニズムの模式図である。
【図７】本発明の実施形態におけるマルチコア通信メカニズムの模式図である。
【発明を実施するための形態】
【００２５】
以下、図面及び具体的な実施形態を参照し、本発明をより詳細に説明する。
【００２６】
本発明のシステムは、マスタ装置と、スレーブ装置とに関する。マスタ装置は、システム内で読み書きコマンドを能動的に送信することが可能である（プロセッサ、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）など）。スレーブ装置は、システム内で読み書きコマンドを能動的に送信することができず、読み書きコマンドを受動的に受信することが可能である（メモリ、周辺制御装置など）。
【００２７】
図１に示すように、本発明のマルチプロセッサの完全な相互アクセスシステムは、マルチプロセッサモジュール１１と、アドレスマッピングモジュール１２と、オンチップ相互接続バス１３と、メモリモジュール１４とを含む。
【００２８】
マルチプロセッサモジュール１１は、システム内部の全てのデータを処理及び演算する。
【００２９】
マルチプロセッサモジュール１１は、複数のプロセッサ（例えば、ＡＲＭ、デジタルシグナルプロセッサ（ＤＳＰ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ）、ＭＩＰＳ（Ｍｉｃｒｏｐｒｏｃｅｓｓｒ  ｗｉｔｈｏｕｔ  Ｉｎｔｅｒｌｏｃｋｅｄ  Ｐｉｐｅｄ  Ｓｔａｇｅｓ：パイプラインステージがインターロックされないマイクロプロセッサ）、ＰｏｗｅｒＰＣプロセッサなど）を含んでもよい。
【００３０】
アドレスマッピングモジュール１２は、マルチプロセッサモジュール１１に含まれるプロセッサから送信された論理アドレスを、プロセッサが識別可能な対応する物理アドレスに変換する。これにより、プロセッサが、対応するスレーブ装置に正確にアクセスすることが可能となる。
【００３１】
ここで、各プロセッサは、各プロセッサに対応する独立したアドレスマッピングモジュールを備える。
【００３２】
オンチップ相互接続バス１３は、データ、アドレス及び制御信号を伝送する。
【００３３】
アドレスマッピングモジュール１２は、マルチプロセッサモジュール１１が送信したデータを変換する。オンチップ相互接続バス１３は、マルチプロセッサモジュール１１が送信した制御情報を解析する。その後、各データは、対応するスレーブ装置（メモリモジュール１４など）に割り当てられる。
【００３４】
ここで、オンチップ相互接続バスには、バス階層化技術が採用される。オンチップ相互接続バスは、レベル１のバスと、レベル２のバスとを含む。レベル１のバスとレベル２のバスとの間には、ブリッジが構成される。レベル１のバス及びレベル２のバスは、異なるクロック周波数、異なる帯域幅又は異なるデータフォーマットを有してもよく、異なるプロトコルを用いてもよい。ブリッジは、バッファ機能を有してもよい。バッファ機能を有する場合、ブリッジは、レベル１のバスが取得した制御コマンド及びデータを、バッファに格納する。その後、ブリッジは、受信した制御コマンドを解析する。そして、ブリッジは、レベル２のバスのプロトコルに基づいて、受信したデータを、対応するスレーブ装置に割り当てる。
【００３５】
マルチプロセッサモジュール１１は、アドレスマッピングモジュール１２と、レベル１のバスとを介して、メモリモジュール１４にアクセス可能である。レベル２のバスは、低速のスレーブ装置に接続される。マルチプロセッサモジュール１１は、アドレスマッピングモジュール１２、レベル１のバス及びレベル２のバスを介して、レベル２のバスに接続されるスレーブ装置にアクセス可能である。更に、レベル２のバスにレベル３のバスを接続することもできる。これにより、必要に応じて、さらに多くのスレーブ装置をサポートすることができる。
【００３６】
メモリモジュール１４は、複数のブートメモリと、メインメモリとを含む。各プロセッサは、１つの独立したブートメモリに対応する。このブートメモリは、固定アドレスを有するプログラム（割込みエントリプログラムなど）と、プロセッサのブートプログラムとを格納する。メインメモリは、ブートメモリに格納されるプログラム及びデータ以外のプログラム及びデータを格納する。
【００３７】
システムは、プロセッサ間の通信に用いられる複数のメールボックス１５を更に含む。各２つのプロセッサは、１つのメールボックスを共有する。メールボックスを共有する２つのプロセッサだけが、対応するメールボックスにアクセスすることができる。他のプロセッサは、このメールボックスにアクセスすることができない。
【００３８】
具体的には、アドレスマッピングモジュールは、一方のプロセッサに、アドレスをマッピングする。その後、この一方のプロセッサは、メールボックスに、制御情報を書き込む。一方、アドレスマッピングモジュールは、他方のプロセッサに、アドレスをマッピングする。その後、この他方のプロセッサは、メールボックスから、制御情報を読み取る。これにより、２つのプロセッサ間における相互制御を実現する。
【００３９】
システムは、周辺制御装置１６をさらに含む。アドレスマッピングモジュール１２は、マルチプロセッサモジュール１１が送信したデータを、マッピングする。このデータは、オンチップ相互接続バス１３に伝送される。オンチップ相互接続バス１３は、マルチプロセッサモジュール１１が送信した制御情報を解析する。その後、データが、対応する周辺制御装置１６に割り当てられる。これにより、マルチプロセッサは、対応する周辺制御装置１６に正確にアクセスすることができる。
【００４０】
周辺制御装置１６は、フラッシュ（Ｆｌａｓｈ）、ユニバーサルシリアルバス（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  ＢＵＳ）、インターインテグレイテッドサーキット（Ｉ２Ｃ：Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、シリアルペリフェラルインタフェース（ＳＰＩ：Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）、汎用非同期送受信装置（ＵＡＲＴ：Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ）、ＩＣ間サウンド（Ｉ２Ｓ：Ｉｎｔｅｒ−ＩＣ  Ｓｏｕｎｄ）などのうちの１以上の装置である。各周辺制御装置は、異なる機能を持つ。例えば、Ｆｌａｓｈは、プロセッサのブートプログラムを格納する。ＵＳＢは、周辺装置との接続及び通信を行う。Ｉ２Ｓは、音声装置間でデータをやりとりする。
【００４１】
本発明に係るマルチプロセッサの完全なアクセスシステムによれば、電源をオンした後、アドレスマッピングモジュール１２は、マルチプロセッサモジュール１１に含まれる各プロセッサの先頭アドレスを、対応するブートメモリにマッピングする。システムの動作中、マルチプロセッサモジュール１１に含まれるプロセッサ（アドレスマッピングモジュール１２がアドレスマッピングしたプロセッサ）が送信した情報は、オンチップ相互接続バス１３に伝送される。オンチップ相互接続バス１３は、この情報に含まれる制御コマンドを解析する。その後、この情報に含まれるデータを、対応するアドレスに応じて、対応するスレーブ装置（メモリモジュール１４、複数のメールボックス１５及び周辺制御装置１６）に割り当てる。
【００４２】
マルチプロセッサシステムの動作中、マルチプロセッサモジュール１１に含まれるプロセッサＡが、プロセッサＢのスレーブ装置にアクセスする必要があるとする。この場合、アドレスマッピングモジュール１２は、プロセッサＡの各スレーブ装置のアドレス空間を、プロセッサＢに対応する各スレーブ装置のアドレス空間にマッピングする。これにより、プロセッサＡが送信する、アクセス対象の論理アドレスが、プロセッサＢの各スレーブ装置の物理アドレスに対応する。即ち、プロセッサＡは、プロセッサＢに対応するスレーブ装置にアクセスすることができる。これにより、プロセッサ間の相互アクセスを実現することができる。複数のプロセッサは、各２つのプロセッサが共有するメールボックスを介して、相互制御を実現する。これにより、処理タスクを迅速に順序良く処理することが保証される。
【００４３】
システムは、ブートモジュールを更に含む。ブートモジュールは、システムの電源をオンすると、各プロセッサのブートプログラムをｆｌａｓｈから取り出す。ブートモジュールは、ブートプログラムを、各プロセッサに対応するブートメモリに格納する。
【００４４】
前記システムは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）モジュールを更に含む。ＤＭＡモジュールは、データを搬送する。
【００４５】
マルチプロセッサモジュール１１に含まれるプロセッサは、ＤＭＡコントローラを初期化し、ＤＭＡ要求を送信する。ＤＭＡコントローラは、バスの制御権を取得する。その後、プロセッサは、直ちに停止する。あるいは、プロセッサは、内部操作のみを実行する。ＤＭＡコントローラは、読み書きコマンドを出力する。マルチプロセッサモジュール１１に含まれる複数のプロセッサは、ＤＭＡモジュールを制御することができる。
【００４６】
システムは、バイパスモジュールを更に含む。バイパスモジュールは、プロセッサとレベル２のバスとを接続することで、バイパス伝送路を形成する。
【００４７】
バイパス伝送路の使用条件は、オンチップ相互接続バス１３に予め設定される。即ち、マルチプロセッサモジュール１１に含まれるプロセッサは、レベル１のバスを経由せずに、バイパス伝送路を介して、レベル２のバスに接続されたスレーブ装置に直接アクセスすることができる。これにより、プロセッサと周辺制御装置１６との間に、より高い帯域幅を提供することができる。
【００４８】
前記システムによれば、本発明のマルチプロセッサの完全な相互アクセス方法は、図２に示すように、以下のステップを含む。
【００４９】
ステップ２０１：各プロセッサに、独立したブートメモリと、独立したアドレスマッピングモジュールとを割り当てる。
【００５０】
ステップ２０２：プロセッサが起動した後、アドレスマッピングモジュールは、各プロセッサの先頭アドレスを、対応するブートメモリにマッピングする。
【００５１】
ステップ２０２を実行する前、前記方法は、以下のステップを更に含む。すなわち、電源をオンすると、ブートモジュールは、各プロセッサのブートプログラムをｆｌａｓｈから取り出し、各プロセッサの対応するブートメモリに格納する。これにより、各プロセッサが起動可能となる。
【００５２】
各プロセッサの先頭アドレスを対応するブートメモリにマッピングした後は、各プロセッサは、リセットした後、先頭アドレスから動作する。また、割込みエントリプログラムに割り当てられたアドレスは、固定である。このため、複数のプロセッサの固定アドレスに格納されたプログラム（割込みエントリプログラムなど）同士が競合することは無い。
【００５３】
ステップ２０３：アドレスマッピングモジュールがアドレスマッピングすることで、マルチプロセッサ間の相互アクセスを実現する。複数のプロセッサは、周辺制御装置と、メモリとを共有する。
【００５４】
ここで、バス階層化技術を利用して、データの伝送タスクを実行する。前記バス階層化技術は、具体的には、以下のような技術である。すなわち、一般的には、高速スレーブ装置（オンチップメモリ、外部メモリなど）を、直接レベル１のバスに接続する。レベル１のバスは、システムバスと称される場合もある。レベル２のバスは、レベル１のバスの下位のバスである。レベル２のバスは、低速スレーブ装置（例えば、Ｆｌａｓｈ、ＵＳＢ、Ｉ２Ｃなど）に接続される。さらに多くのスレーブ装置を接続する必要があるにも拘らず、レベル２のバスがこの要求を満たせないとする。この場合、さらに多くのスレーブ装置をサポートするため、レベル２のバスにレベル３のバスを接続することが可能である。
【００５５】
複数のマスタ装置が、同時に１つのスレーブ装置にアクセスすることを要求する。この場合、バスシステムのアービタがアービトレーションを行う。
【００５６】
ここで、プロセッサ間は、各２つのプロセッサが共有するメールボックスを介して、通信を実行する。これにより、プロセッサの相互制御を実現することができる。
【００５７】
システムの動作中、ＤＭＡモジュールを介してデータを搬送することで、プロセッサの処理タスクを減少させることができ、処理速度を速くすることができる。
【００５８】
上記から分かるように、マルチプロセッサの完全な相互アクセスのための上記スキームによれば、プロセッサ間で完全な相互アクセスを実現することができる。複数のプロセッサが、周辺装置とメモリとを完全に共有することができる。これにより、システム性能が向上する。必要に応じて、バスの階層数を増加したり減少したりすることができる。これにより、実際に、複数のスレーブ装置を接続することができる。
【００５９】
以下、実施形態を参照し、本発明のスキームをより詳しく説明する。
【００６０】
図３は、実施形態に係るシステムの構成を示す模式図である。図３に示すように、本実施形態のシステムは、２つのＡＲＭ１１プロセッサと、２つのＺＳＰ５００プロセッサとを含む。ＡＲＭ１１プロセッサ及びＺＳＰ５００プロセッサは、システム内部の全てのデータを処理及び演算する。
【００６１】
ここで、ＡＲＭ１１プロセッサのデータビット幅は６４ビットであり、アドレスビット幅は３２ビットであり、システムのアドレス空間は４Ｇである。ＺＳＰ５００プロセッサのデータビット幅は３２ビットであり、アドレスビット幅は２４ビットである。ＡＲＭ１１プロセッサとＺＳＰ５００プロセッサとは、異機種環境のプロセッサである。
【００６２】
システムは、さらに、外部メモリ、オンチップメモリ及びローカルメモリを含む。これらのメモリは、プログラム及びデータを格納する。外部メモリとして、ＤＤＲ−ＳＤＲＡＭを使用してもよい。オンチップメモリとして、ＲＡＭを使用してもよい。
【００６３】
外部メモリは、ＡＲＭ１１プロセッサにより駆動されるメインメモリである。オンチップメモリは、起動した後、ＡＲＭ１１プロセッサのブートメモリとして機能する。オンチップメモリは、システム動作時、固定アドレスのプログラム（割込みエントリプログラムなど）を格納する。
【００６４】
ローカルメモリは、ＺＳＰ５００プロセッサのブートメモリとして機能するとともに、ＺＳＰ５００プロセッサのメインメモリとして機能する。ローカルメモリは、ＺＳＰ５００プロセッサに直接接続される。これにより、アクセス速度が向上し、計算集約型プロセッサ（例えば、ＺＳＰ）の性能を最大限に発揮することができる。
【００６５】
アドレスマッピングモジュール０、１、２、３は、論理アドレスを物理アドレスに変換する。
【００６６】
ここで、アドレスマッピングモジュール０、１、２、３は、２つのＡＲＭ１１プロセッサ及び２つのＺＳＰ５００プロセッサに、一対一に接続される。アドレスマッピングモジュールは、送信されたアドレスをマッピングする。その後、ＡＲＭ１１プロセッサ及びＺＳＰ５００プロセッサは、スレーブ装置に正確にアクセスすることができる。ＺＳＰ５００プロセッサは、ＡＲＭ１１プロセッサの４Ｇアドレス空間に直接アクセスすることができない。しかし、アドレスマッピングモジュールがアドレスマッピングした後は、ＺＳＰ５００プロセッサは、ＡＲＭ１１プロセッサのスレーブ装置にアクセスすることができる。これにより、拡張アクセス機能が実現される。
【００６７】
ＤＭＡモジュールは、データを搬送する。上記４つのプロセッサは、ＤＭＡモジュールを制御可能である。
【００６８】
ブートモジュールは、システムの電源をオンしたとき、各プロセッサの起動プログラムを、不揮発性記憶媒体から取り出す。ブートモジュールは、起動プログラムを、各プロセッサに対応するブートメモリに入れる。これにより、各プロセッサが起動可能となる。
【００６９】
ここで、不揮発性記憶媒体とは、周辺制御装置内のｆｌａｓｈである。ＡＲＭ１１プロセッサに対応するブートメモリは、図３のオンチップメモリである。ＺＳＰ５００プロセッサのブートメモリは、ＺＳＰ５００プロセッサに含まれるローカルメモリである。
【００７０】
アドバンストエクステンシブルインターフェース（ＡＸＩ：Ａｄｖａｎｃｅｄ  ｅｘｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）、アドバンスト高性能バス（Ａｄｃａｎｃｅｄ  Ｈｉｇｈ−ｐｅｒｆｏｒｍａｎｃｅ  Ｂｕｓ）及びアドバンストペリフェラルバス（ＡＰＢ：Ａｄｖａｎｃｅｄ  Ｐｅｒｉｐｈｅｒａｌ  Ｂｕｓ）は、データ、アドレス及び制御信号を送信する。
【００７１】
ここで、ＡＸＩは、システムのレベル１のバスである。ＡＸＩは、高性能、高帯域幅、低遅延のオンチップバスである。ＡＸＩは、複数のマスタ装置が同時に複数のスレーブ装置にアクセスすることをサポートする。ＡＸＩのデータビット幅は６４ビットであり、アドレスビット幅は３２ビットである。ＡＸＩは、プロセッサ、メインメモリ、オンチップメモリ及びレベル２のバスなどに、高速データ伝送路を提供する。複数のマスタ装置が同時に同一スレーブ装置にアクセスすることを要求する場合、ＡＸＩバスのアービタは、複数のプロセッサからのアクセス要求の順番を判断する。
【００７２】
ＡＨＢとＡＰＢは、システムのレベル２のバスである。ＡＨＢとＡＰＢは、それぞれ、ブリッジを介して、レベル１のバスに接続される。ここで、ＡＨＢは、マトリックス構造を有し、複数のマスタ装置が同時に複数のスレーブ装置にアクセスすることをサポートする。ＡＨＢのデータビット幅は３２ビットであり、アドレスビット幅は３２ビットである。ＡＰＢは、高性能インターフェース又は高帯域幅インターフェースを用いた装置との相互接続を必要とすることなく、１つのマスタ装置が同時に複数のスレーブ装置にアクセスすることをサポートする。ＡＰＢのアドレスビット幅は３２ビットであり、データビット幅は１６ビットである。
【００７３】
ブリッジ１及びブリッジ２は、それぞれ、ＡＸＩとＡＰＢとの間と、ＡＸＩとＡＨＢとの間とを切り替える。
【００７４】
具体的には、ブリッジ１は、ＡＸＩとＡＰＢとの間を切り替える。ブリッジ２は、ＡＸＩとＡＨＢとの間を切り替える。ＡＸＩバス、ＡＨＢバス及びＡＰＢバスは、異なるクロック周波数、異なる帯域幅又は異なるデータビット幅で動作することができる。ブリッジは、バッファの機能を有し、システムのＡＸＩバスの制御コマンド及びデータをバッファに格納する。ブリッジは、制御コマンドを解析した後、ＡＨＢ又はＡＰＢのプロトコルに応じて、受信したデータを、対応するスレーブ装置に割り当てる。
【００７５】
周辺制御装置は、ＦＬＡＳＨ、ＵＳＢ、Ｉ２Ｃ、ＳＰＩ、ＵＡＲＴ、Ｉ２Ｓなどである。
【００７６】
バイパス伝送路は、第２のＺＳＰ５００プロセッサと、ＡＨＢとを接続する。
【００７７】
具体的には、第２のＺＳＰ５００プロセッサは、ＡＸＩを経由せず、バイパス伝送路を介して、ＡＨＢに接続されるスレーブ装置に直接アクセスする。
【００７８】
複数のメールボックスは、プロセッサ間の通信に用いられる。各２つのプロセッサは、１つのメールボックスを共有する。
【００７９】
ここで、本実施形態の装置における各ユニットの具体的な処理プロセスは、上記に詳しく説明されているため、説明を省略する。
【００８０】
図３に示すシステムに基づいて、ＡＲＭ１１プロセッサとＺＳＰ５００プロセッサとの相互アクセスを実現する方法は、図４に示すように、下記のようなステップを含む。
【００８１】
ステップ４０１：２つのＡＲＭ１１プロセッサ及び２つのＺＳＰ５００プロセッサに、独立したブートメモリを、一対一で割り当てる。
【００８２】
ここで、ＡＲＭ１１プロセッサのブートメモリは、オンチップメモリである。ＺＳＰ５００プロセッサのブートメモリは、ローカルメモリである。
【００８３】
ステップ４０２：電源をオンした後、ブートモジュールは、各プロセッサのブートプログラムを、ｆｌａｓｈから、対応するブートメモリに搬送する。これにより、各プロセッサを起動することが可能となる。
【００８４】
ステップ４０３：プロセッサが起動した後、アドレスマッピングメカニズムは、各プロセッサの先頭アドレスを、それぞれの独立したブートメモリにマッピングする。
【００８５】
図５は、アドレスマッピングメカニズムの実現を示す。プロセッサ起動初期化の後、ＡＲＭ１１プロセッサのアドレスマッピングモジュールは、プロセッサの先頭アドレスを、対応するブートメモリにマッピングする。即ち、第１のＡＲＭ１１プロセッサは、アドレスマッピングモジュール０によって、先頭アドレスをオンチップメモリ０にマッピングする。第２のＡＲＭ１１プロセッサは、アドレスマッピングモジュール１によって、先頭アドレスをオンチップメモリ１にマッピングする。第１のＺＳＰ５００プロセッサは、アドレスマッピングモジュール２によって、アドレスを、第１のＺＳＰ５００プロセッサのローカルメモリにマッピングする。第２のＺＳＰ５００プロセッサは、アドレスマッピングモジュール３によって、アドレスを、第２のＺＳＰ５００プロセッサのローカルメモリにマッピングする。
【００８６】
各ブートメモリは、システム動作時、対応するプロセッサの固定アドレスのプログラム（割込みエントリプログラムなど）を格納する。プロセッサの先頭アドレスは、変換され、その後、対応するブートメモリに格納される。これにより、プロセッサが、自身の割込みエントリプログラムを正確に実行することができる。このため、複数のプロセッサの固定アドレスに格納されたプログラム（割込みエントリプログラムなど）同士が競合することが無い。
【００８７】
ステップ４０４：プロセッサの初期化起動を実行した後、アドレスマッピングモジュールのアドレスマッピング機能により、ＡＲＭ１１プロセッサとＺＳＰ５００プロセッサとの相互アクセスを実現する。ＡＲＭ１１プロセッサ及びＺＳＰ５００プロセッサは、周辺装置と、メモリとを共有する。
【００８８】
図６は、ＺＳＰ５００プロセッサの拡張アクセスメカニズムを示す。ＺＳＰ５００プロセッサの拡張アクセスメカニズムは、具体的には、以下のとおりである。
【００８９】
ＡＲＭ１１プロセッサのアドレスビット幅が３２ビットであり、システムのアドレス空間が４Ｇであり、ＺＳＰ５００プロセッサのアドレスビット幅が２４ビットである。アドレスビット幅が異なるため、ＺＳＰ５００プロセッサは、ＡＲＭ１１に対応する４Ｇのアドレス空間全体にアクセスすることができない。
【００９０】
ＺＳＰ５００プロセッサのアドレスマッピングモジュールは、ＺＳＰ５００プロセッサのスレーブ装置に割り当てたアドレス空間を、ＡＲＭ１１の対応するスレーブ装置に割り当てたアドレス空間にマッピングする。これにより、ＺＳＰプロセッサは、拡張アクセスを実現することができる。
【００９１】
例えば、ＺＳＰ５００プロセッサがＵＳＢに割り当てたアドレス空間が１Ｍであり、ＡＲＭ１１プロセッサがＵＳＢに割り当てたアドレス空間が２Ｍである。しかし、実際には、ＵＳＢは、２Ｍのアドレス空間の全てを利用するわけではなく、アドレス空間の先頭の一部しか利用しない。このとき、アドレスマッピングモジュールは、ＺＳＰ５００プロセッサのＵＳＢのアドレス空間を、ＡＲＭ１１プロセッサの対応するＵＳＢに利用されるアドレス空間に、マッピングすることができる。これにより、ＺＳＰ５００プロセッサは、ＡＲＭ１１プロセッサのＵＳＢにアクセスするための論理アドレスを送信すると、ＡＲＭ１１プロセッサのＵＳＢにアクセスすることができる。
【００９２】
図７は、実施形態のマルチコア通信メカニズムの模式図である。図７は、プロセッサ間でメールボックスを用いて相互制御を実現する原理を示す。各２つのプロセッサは、１つのメールボックスを共有する。２つのプロセッサは、メールボックスにアクセスし、メールボックスに制御情報を書き込むことで、通信を実行する。具体的には、プロセッサＡは、メールボックス０に制御情報を書き込む。プロセッサＡに関連するプロセッサＢは、このメールボックス０中の制御情報を読み取る。これにより、プロセッサＡがプロセッサＢを制御することができる。一方、プロセッサＢがプロセッサＡを制御する必要がある場合、制御情報をメールボックス１に書き込む必要がある。プロセッサＡは、このメールボックス１中の制御情報を読み取る。これにより、プロセッサＢがプロセッサＡを制御することができる。これにより、２つのプロセッサの相互制御を実現することができる。
【００９３】
アドレスマッピングモジュールによりアドレスマッピングされると、通信中の２つのプロセッサだけが、メールボックスを閲覧し、メールボックスにアクセスすることができる。一方、他のプロセッサは、当該メールボックスへのアクセス権を持たない。これにより、通信の信頼性が保証される。本実施形態のシステムは、４つのプロセッサを有する。メールボックスは、一方向にしか読み書きできないため、本実施形態のシステムには、１２個のメールボックスが必要である。
【００９４】
以上のように、本発明の実施形態のスキームを適用すれば、複数の異機種環境のプロセッサ（ＡＲＭ１１プロセッサとＺＳＰ５００プロセッサ）の完全な相互アクセスを実現することができ、周辺装置とメモリとを完全に共有することができ、システムの性能を向上させることができる。
【００９５】
上記のものは本発明の好適な実施形態に過ぎず、本発明はこれに限定されず、種々の変更形態および変形形態が当業者によって可能である。また、特許請求の範囲に規定される本発明の趣旨及び範囲に逸脱しない限り、あらゆる変更、均等な置換、および改良が可能であることを理解されたい。
【図１】
2013516010.tif 000003
【図２】
2013516010.tif 000004
【図３】
2013516010.tif 000005
【図４】
2013516010.tif 000006
【図５】
2013516010.tif 000007
【図６】
2013516010.tif 000008
【図７】
2013516010.tif 000009
【手続補正書】
【提出日】平成24年8月30日(2012.8.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
前記オンチップ相互接続バスは、少なくとも１つのレベルのバスを含み、
レベル１のバスは、マルチプロセッサモジュールと、メモリモジュールとを接続し、
レベル２以上の下位のバスは、上位のバスと周辺制御装置とを接続し、上位のバスとメールボックスとを接続する
請求項８に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
前記スキームにおいて、前記オンチップ相互接続バスは、少なくとも１つのレベルのバスを含み、
レベル１のバスは、マルチプロセッサモジュールと、メモリモジュールとを接続し、
レベル２以上の下位のバスは、上位のバスと周辺制御装置とを接続し、上位のバスとメールボックスとを接続する。
【国際調査報告】
2013516010.tif 000010
2013516010.tif 000011
2013516010.tif 000012
2013516010.tif 000013