(57)【特許請求の範囲】
【請求項１】
複数のプロセッサが対応する交信用メモリ部を介してデータバス等からなるデータ交換部によって接続されてなるマルチプロセッサシステム装置において、
無同期実行を行う無同期モードと同期実行を行う同期モードを有する複数のプロセッサと、
該各プロセッサに対応して設けられた各メモリ部と、
上記各プロセッサと対応するメモリ部との間に設けられた各キャッシュメモリ部と、
無同期モード時に上記各プロセッサにおけるキャッシュミス発生の検出を行い、少なくとも１つのプロセッサでキャッシュミス発生を検出すると、上記各プロセッサに対して、画一的に無同期モードから同期モードに動作モードの切り替えを行わせる動作モード切替制御部と、
を備えることを特徴とするマルチプロセッサシステム装置。
【請求項２】
上記各プロセッサは、無同期モード時にキャッシュミスが発生すると所定の信号を出力し、上記動作モード切替制御部は、各プロセッサの少なくとも１つから該所定の信号が出力されると、該各プロセッサに対して、画一的に無同期モードから同期モードに動作モードの切り替えを行わせることを特徴とする請求項１記載のマルチプロセッサシステム装置。
【請求項３】
上記各プロセッサは、実行するための各命令ごとにあらかじめ対応して付加された少なくとも１ビットのデータからなるタグを上記動作モード切替制御部にそれぞれ出力し、動作モード切替制御部は、同期モード時の各プロセッサから出力された上記タグが一致すると、該各プロセッサに対して画一的に同期モードから無同期モードに動作モードの切り替えを行わせることを特徴とする請求項１又は２記載のマルチプロセッサシステム装置。
【請求項４】
上記タグは、同一時期に各プロセッサが実行することをコンパイラによってスケジュールされた命令に対して有効となるように付加されることを特徴とする請求項３記載のマルチプロセッサシステム装置。
【請求項５】
上記各プロセッサは、タグのビット数に対応した信号線で構成された同一の同期検出用信号線を介して、上記動作モード切替制御部にタグをそれぞれ出力すると共に、出力したタグと同一のデータが該同期検出用信号線から入力されるまで新たな命令の実行を停止することを特徴とする請求項３又は４記載のマルチプロセッサシステム装置。
【請求項６】
上記各交信用メモリ部は、所定の単位データごとにフラグを設け、データが書き込まれると該フラグをデータ有効状態にすると共に、書き込まれたデータが読み出されると該フラグをデータ無効状態にし、上記各プロセッサは、同期モード時に所望の交信用メモリ部に対して、上記フラグがデータ有効状態のときのみデータ読み出しを行い、上記フラグがデータ無効状態のときのみデータ書き込みを行うことを特徴とする請求項１、２、３、４又は５記載のマルチプロセッサシステム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサを使用したマルチプロセッサシステム装置に関し、特に、マルチプロセッサに対して無同期実行を行うマルチプロセッサシステム装置に関する。
【０００２】
【従来の技術】
図７は、無同期実行を行うマルチプロセッサシステム装置の構成を示した概略のブロック図である。
従来、図７で示すように、各プロセッサＣＰＵ１〜ＣＰＵｎが無同期実行を行うマルチプロセッサシステム装置１００においては、ローカルメモリＬＯＣＡＬ１〜ＬＯＣＡＬｎ（ｎは、ｎ＞１の自然数）を有する各プロセッサＣＰＵ１〜ＣＰＵｎを、交信用メモリＣＯＭＭ１〜ＣＯＭＭｎを介してバス等のデータ交換装置、図７ではデータ交信用バス１０１で接続していた。
【０００３】
無同期実行が行われる場合は、各ローカルメモリＬＯＣＡＬ１〜ＬＯＣＡＬｎにあらかじめデータ及び命令が格納され、データ交換装置の遅延も考慮して詳細にスケジュールする。このようにすることにより、任意のプロセッサが対応する交信用メモリにアクセスする際、該交信用メモリに格納されているデータが必ず有効であるようにすることで無同期実行が可能となる。
【０００４】
【発明が解決しようとする課題】
しかし、このような従来の構成では、高速なローカルメモリＬＯＣＡＬ１〜ＬＯＣＡＬｎにすべてのデータを格納しておかなければ無同期実行を実現することができないことから、記憶容量の大きなローカルメモリＬＯＣＡＬ１〜ＬＯＣＡＬｎを必要とするという問題があった。また、一般的なメモリの高速化技術であるキャッシュメモリを使用した場合には、キャッシュミス時にプロセッサの動作時間に不確定性が生じることから、無同期実行を行うことができなかった。
【０００５】
本発明は、上記のような問題を解決するためになされたものであり、キャッシュヒット時には無同期実行を行い、キャッシュミスが発生すると同期実行を行うと共に、各命令に同期用タグを付加してバリア同期を行いバリア成立と同時に無同期実行を行うようにして、ローカルメモリにキャッシュメモリを備えた一般的なメモリ構成で無同期実行を行うことができるマルチプロセッサシステム装置を得ることを目的とする。
【０００６】
【課題を解決するための手段】
この発明に係るマルチプロセッサシステム装置は、複数のプロセッサが対応する交信用メモリ部を介してデータバス等からなるデータ交換部によって接続されてなるマルチプロセッサシステム装置において、無同期実行を行う無同期モードと同期実行を行う同期モードを有する複数のプロセッサと、該各プロセッサに対応して設けられた各メモリ部と、各プロセッサと対応するメモリ部との間に設けられた各キャッシュメモリ部と、無同期モード時に各プロセッサにおけるキャッシュミス発生の検出を行い、少なくとも１つのプロセッサでキャッシュミス発生を検出すると、各プロセッサに対して、画一的に無同期モードから同期モードに動作モードの切り替えを行わせる動作モード切替制御部とを備えるものである。
【０００７】
具体的には、上記各プロセッサは、無同期モード時にキャッシュミスが発生すると所定の信号を出力し、上記動作モード切替制御部は、各プロセッサの少なくとも１つから該所定の信号が出力されると、該各プロセッサに対して、画一的に無同期モードから同期モードに動作モードの切り替えを行わせるようにした。
【０００８】
また、上記各プロセッサは、実行するための各命令ごとにあらかじめ対応して付加された少なくとも１ビットのデータからなるタグを動作モード切替制御部にそれぞれ出力し、動作モード切替制御部は、同期モード時の各プロセッサから出力されたタグが一致すると、該各プロセッサに対して画一的に同期モードから無同期モードに動作モードの切り替えを行わせるようにしてもよい。
【０００９】
具体的には、上記タグは、同一時期に各プロセッサが実行することをコンパイラによってスケジュールされた命令に対して有効となるように付加されるようにした。
【００１０】
また、上記各プロセッサは、タグのビット数に対応した信号線で構成された同一の同期検出用信号線を介して、動作モード切替制御部にタグをそれぞれ出力すると共に、出力したタグと同一のデータが該同期検出用信号線から入力されるまで新たな命令の実行を停止するようにしてもよい。
【００１１】
更に、上記各交信用メモリ部は、所定の単位データごとにフラグを設け、データが書き込まれると該フラグをデータ有効状態にすると共に、書き込まれたデータが読み出されると該フラグをデータ無効状態にし、各プロセッサは、同期モード時に所望の交信用メモリ部に対して、上記フラグがデータ有効状態のときのみデータ読み出しを行い、上記フラグがデータ無効状態のときのみデータ書き込みを行うようにしてもよい。
【００１２】
【発明の実施の形態】
次に、図面に示す実施の形態に基づいて、本発明を詳細に説明する。
第１の実施の形態．
図１は、本発明の第１の実施の形態におけるマルチプロセッサシステム装置の例を示した概略のブロック図である。
【００１３】
図１において、マルチプロセッサシステム装置１は、複数のプロセッサＣＰＵ１〜ＣＰＵｎ（ｎは、ｎ＞１の自然数）と、ローカルメモリＬＯＣＡＬ１〜ＬＯＣＡＬｎと、キャッシュメモリＣＡＣＨＥ１〜ＣＡＣＨＥｎと、ロック・アンロック式の交信用メモリＣＯＭＭ１〜ＣＯＭＭｎとを備えている。更に、マルチプロセッサシステム装置１は、各プロセッサＣＰＵ１〜ＣＰＵｎに対する動作モードの切替制御を行う動作モード切替制御部２と、各プロセッサＣＰＵ１〜ＣＰＵｎを交信用メモリＣＯＭＭ１〜ＣＯＭＭｎを介して接続するデータ交信用バス３とを備えている。
【００１４】
動作モード切替制御部２は、プルアップ抵抗４でプルアップされ、無同期実行時の各プロセッサＣＰＵ１〜ＣＰＵｎにおけるキャッシュミスの発生の有無を検出するために使用するキャッシュミス検出用信号線５、及び同期モード時に各プロセッサＣＰＵ１〜ＣＰＵｎがすべて同期したことを検出するための同期検出用信号線６で各プロセッサＣＰＵ１〜ＣＰＵｎと接続されている。更に、動作モード切替制御部２は、各プロセッサＣＰＵ１〜ＣＰＵｎに対して動作モードの切替制御を行うための制御信号線７で各プロセッサＣＰＵ１〜ＣＰＵｎにそれぞれ接続されている。
【００１５】
また、ローカルメモリＬＯＣＡＬ１〜ＬＯＣＡＬｎ、キャッシュメモリＣＡＣＨＥ１〜ＣＡＣＨＥｎ及び交信用メモリＣＯＭＭ１〜ＣＯＭＭｎは、プロセッサＣＰＵ１〜ＣＰＵｎにそれぞれ対応して設けられている。ローカルメモリＬＯＣＡＬ１〜ＬＯＣＡＬｎは、対応するキャッシュメモリＣＡＣＨＥ１〜ＣＡＣＨＥｎを介してプロセッサＣＰＵ１〜ＣＰＵｎに対応して接続されている。
【００１６】
このような構成において、各プロセッサＣＰＵ１〜ＣＰＵｎは、キャッシュミスが発生していない通常時にキャッシュミス検出用信号線５をＨｉｇｈレベルにし、キャッシュミスを検出するとキャッシュミス検出用信号線５をＬｏｗレベルにする。このことから、各プロセッサＣＰＵ１〜ＣＰＵｎのいずれか１つでキャッシュミスが検出されると、キャッシュミス検出用信号線５はＬｏｗレベルとなり、プロセッサＣＰＵ１〜ＣＰＵｎのすべてでキャッシュミスが検出されなかった場合、キャッシュミス検出用信号線５はＨｉｇｈレベルとなる。
【００１７】
動作モード切替制御部２は、各プロセッサＣＰＵ１〜ＣＰＵｎに対して、キャッシュミス検出用信号線５がＨｉｇｈレベルのときは、無同期動作を行う無同期モードで動作するように制御信号を出力し、キャッシュミス検出用信号線５がＬｏｗレベルのときは、同期動作を行う同期モードで動作するように制御信号を出力する。各プロセッサＣＰＵ１〜ＣＰＵｎは、同期モードで動作するように制御信号が入力されると、システムクロックの検出を行い、検出したシステムクロックで同期モードに切り替わる。
【００１８】
例えば、図２で示すように各プロセッサＣＰＵ１〜ＣＰＵｎが無同期モードで動作している際、プロセッサＣＰＵ１でキャッシュミスが発生したとすると、プロセッサＣＰＵ１によってキャッシュミス検出用信号線５はＬｏｗレベルになることから、動作モード切替制御部２は、各プロセッサＣＰＵ１〜ＣＰＵｎをそれぞれ同期モードに切り替えさせる。なお、無同期モードから同期モードに切り替わる際、各プロセッサごとに切り替わりタイミングに多少の差が生じても、交信用メモリの動作速度に比べてキャッシュミス検出用信号線５の伝搬速度が高速であれば問題は生じない。
【００１９】
一方、各プロセッサＣＰＵ１〜ＣＰＵｎがそれぞれ実行する命令には、図３で示すように、数ビット、例えば図３では４ビットのタグが付加され、該４ビットデータは、同期検出用信号線６を介して動作モード切替制御部２に出力される。該タグは、同一時期に実行することがコンパイラによってスケジュールされた命令に対して、同一のビットを「１」にして設定し、これを同期ポイントと呼び、図３では、命令Ｂ及び命令Ｄが同期ポイントとなる。このようなタグは、無同期モードでは命令と共に読み出されるだけであるが、同期モードでは、プロセッサＣＰＵ１〜ＣＰＵｎからそれぞれ同期検出用信号線６に出力され、プロセッサＣＰＵ１〜ＣＰＵｎは、出力したタグと同一のタグを同期検出用信号線６から受け取らない限り、次の命令を実行しないように制御される。
【００２０】
図４で示すように、各プロセッサＣＰＵ１〜ＣＰＵｎから同期検出用信号線６に同一のタグがそれぞれ出力されると、動作モード切替制御部２は、各プロセッサＣＰＵ１〜ＣＰＵｎに対して、無同期モードに切り替えるように制御信号を出力し、各プロセッサＣＰＵ１〜ＣＰＵｎは、該制御信号によってそれぞれ無同期実行を開始する。なお、上記説明では、タグが４ビットデータで構成されている場合を例にして説明したが、タグは少なくとも１ビットのデータで構成されればよく、同期検出用信号線６は、タグのビット数に対応した数の信号線で構成されている。また、キャッシュミス検出用信号線５及び同期検出用信号線６に、バリア同期線を使用してもよく、このようにすることにより、ハードウェアを増加させることなく実現することができる。
【００２１】
このように、本第１の実施の形態におけるマルチプロセッサシステム装置は、キャッシュミスが発生したプロセッサがキャッシュミス検出用信号線５をＬｏｗレベルにすることによって、動作モード切替制御部２がキャッシュミスの発生を検出し、各プロセッサＣＰＵ１〜ＣＰＵｎをそれぞれ同期モードに切り替えるようにした。更に、各プロセッサＣＰＵ１〜ＣＰＵｎが実行する命令にタグを付加し、各プロセッサＣＰＵ１〜ＣＰＵｎから同期検出用信号線６に同期ポイントとして設定された同一のタグがそれぞれ出力されると、動作モード切替制御部２によって各プロセッサＣＰＵ１〜ＣＰＵｎが無同期モードに切り替わるようにした。このことから、ローカルメモリにキャッシュメモリを備えた一般的なメモリ構成で無同期実行を行うことができる。
【００２２】
第２の実施の形態．
上記第１の実施の形態では、複数のプロセッサが連続してキャッシュミスを起こすと頻繁に同期モードに切り替わり、その都度すべてのプロセッサＣＰＵ１〜ＣＰＵｎの同期を取ることになるため、性能が低下する可能性があった。そこで、第１の実施の形態におけるマルチプロセッサシステム装置において、交信用メモリＣＯＭＭ１〜ＣＯＭＭｎに格納されたデータの各ワードごとに同期フラグを設け、該同期フラグに応じてデータの読み出し及び書き込みを行うようにしてもよく、このようにしたものを本発明の第２の実施の形態とする。
【００２３】
図５は、本発明の第２の実施の形態におけるマルチプロセッサシステム装置の例を示した概略のブロック図である。なお、図５では、図１と同じものは同じ符号で示しており、ここではその説明を省略すると共に図１との相違点のみ説明する。
図５における図１との相違点は、図１の交信用メモリＣＯＭＭ１〜ＣＯＭＭｎに格納されたデータに対して、交信用メモリＣＯＭＭ１〜ＣＯＭＭｎが各ワードごとに同期フラグを設けるようにしたことにある。このことから、図５では、図１の交信用メモリＣＯＭＭ１〜ＣＯＭＭｎを交信用メモリＣＯＭＭＡ１〜ＣＯＭＭＡｎとし、図１のマルチプロセッサシステム装置１をマルチプロセッサシステム装置１Ａとした。
【００２４】
図５において、各交信用メモリＣＯＭＭＡ１〜ＣＯＭＭＡｎは、図６で示すように、データが書き込まれると各ワードごとに同期フラグＦをセットしてデータ有効状態にし、書き込まれたデータが読み出されると該読み出されたデータに対する各ワードごとの同期フラグＦをリセットしてデータ無効状態にする。各プロセッサＣＰＵ１〜ＣＰＵｎは、無同期モードでは該同期フラグＦを無視し、同期モードにおいて、次に説明するような動作を行う。
【００２５】
各プロセッサＣＰＵ１〜ＣＰＵｎにおいて、交信用メモリに対してデータ書き込みを行うプロセッサは、上記データ有効状態の場合は、データ書き込みを行うことができず処理待ち状態になり、上記データ無効状態の場合は、データ書き込みを行うことができ、データ書き込みを行うと交信用メモリの各ワードはデータ有効状態となる。
【００２６】
次に、交信用メモリからデータの読み出しを行うプロセッサは、上記データ無効状態のワードからデータ読み出しを行うことができず処理待ち状態になり、上記データ有効状態のワードからはデータ読み出しを行うことができ、データ読み出しを行うと該読み出された交信用メモリのワードはデータ無効状態となる。このように、各プロセッサＣＰＵ１〜ＣＰＵｎは、同期モードに切り替わると、同期フラグＦによって正常に並列プログラムを実行し、ループの１回分等の一定のプログラムを実行した後、上記第１の実施の形態で示した方法で無同期モードに切り替わる。
【００２７】
上記のように、本第２の実施の形態におけるマルチプロセッサシステム装置は、第１の実施の形態におけるマルチプロセッサシステム装置に対して、更に交信用メモリＣＯＭＭＡ１〜ＣＯＭＭＡｎに格納されたデータの各ワードごとに同期フラグを設け、該同期フラグに応じてデータの読み出し及び書き込みを行うようにした。このことから、上記第１の実施の形態と同様の効果を得ることができると共に、複数のプロセッサが連続してキャッシュミスを起こして頻繁に同期モードに切り替わり、その都度すべてのプロセッサＣＰＵ１〜ＣＰＵｎの同期を取ることによる性能低下を防止することができる。
【００２８】
【発明の効果】
上記の説明から明らかなように、本発明のマルチプロセッサシステム装置によれば、無同期モード時に、例えばキャッシュミスが発生すると各プロセッサから所定の信号を出力するようにして、各プロセッサにおけるキャッシュミス発生の検出を行い、少なくとも１つのプロセッサでキャッシュミス発生を検出すると、各プロセッサの動作モードを画一的に無同期モードから同期モードに切り替えるようにした。このことから、無同期モード時にキャッシュミスが発生した際は、各プロセッサを同期モードで動作させることができるため、一般的なメモリ構成で無同期実行を行うことができる。
【００２９】
また、各プロセッサが実行する命令に、例えば同一時期に各プロセッサが実行することをコンパイラによってスケジュールされた命令に対して有効となるようにタグを付加し、同期モード時に各プロセッサから同一のタグがそれぞれ出力されると、各プロセッサを同期モードから無同期モードに切り替えるようにした。このことから、例え実行しなくても生じてしまう同期命令によるパイプラインのバブルを避けることができる。
【００３０】
また、各プロセッサは、同期検出用信号線に出力したタグと同一のデータが該同期検出用信号線から入力されるまで新たな命令の実行を停止するようにしたことから、同期モードにおける各プロセッサの同期を取ることができ、各プロセッサを同期モードから無同期モードに切り替え、無同期実行を行わせることができる。
【００３１】
更に、各交信用メモリ部に、所定の単位データごとにフラグをそれぞれ設け、各プロセッサは該各フラグに応じて所望の交信用メモリ部に対してデータの読み出し及び書き込みを行うようにした。このことから、複数のプロセッサが連続してキャッシュミスを起こす等して頻繁に動作モードの切り替えが起き、これに伴う損失を低減することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるマルチプロセッサシステム装置の例を示した概略のブロック図である。
【図２】図１のマルチプロセッサシステム装置におけるキャッシュミス検出用信号線５の例を示した概略図である。
【図３】同期用のタグの例を示した図である。
【図４】図１のマルチプロセッサシステム装置における同期検出用信号線６の例を示した概略図である。
【図５】本発明の第２の実施の形態におけるマルチプロセッサシステム装置の例を示した概略のブロック図である。
【図６】同期フラグＦの状態遷移例を示した図である。
【図７】従来のマルチプロセッサシステム装置の例を示した概略のブロック図である。
【符号の説明】
１，１Ａ  マルチプロセッサシステム装置
２  動作モード切替制御部
３  データ交信用バス
５  キャッシュミス検出用信号線
６  同期検出用信号線
７  制御信号線
ＣＰＵ１〜ＣＰＵｎ  プロセッサ
ＬＯＣＡＬ１〜ＬＯＣＡＬｎ  ローカルメモリ
ＣＡＣＨＥ１〜ＣＡＣＨＥｎ  キャッシュメモリ
ＣＯＭＭ１〜ＣＯＭＭｎ，ＣＯＭＭＡ１〜ＣＯＭＭＡｎ  交信用メモリ
【図１】
0003628265.tif 000002
【図２】
0003628265.tif 000003
【図３】
0003628265.tif 000004
【図４】
0003628265.tif 000005
【図５】
0003628265.tif 000006
【図６】
0003628265.tif 000007
【図７】
0003628265.tif 000008