(57)【要約】【課題】汎用的で処理性能を向上させたマルチプロセッサシステムを提供する。【解決手段】処理対象ソフトウェアが与えられる単一又は複数の第１のプロセッサＰ１と、それぞれ前記第１のプロセッサと同一の構成である複数の第２のプロセッサＰ２〜Ｐ５と、第１のクロック信号と、前記第１のクロック信号より周波数の低い第２のクロック信号とを生成し、前記第１のクロック信号を前記第１のプロセッサに出力し、前記第２のクロック信号を前記複数の第２のプロセッサに出力するクロック生成部１と、を備え、前記第１のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第２のプロセッサに割り当てる。【選択図】図１
2009301471.tif 000002
【特許請求の範囲】
【請求項１】
処理対象ソフトウェアが与えられる単一又は複数の第１のプロセッサと、
それぞれ前記第１のプロセッサと同一の構成である複数の第２のプロセッサと、
第１のクロック信号と、前記第１のクロック信号より周波数の低い第２のクロック信号とを生成し、前記第１のクロック信号を前記第１のプロセッサに出力し、前記第２のクロック信号を前記複数の第２のプロセッサに出力するクロック生成部と、
を備え、
前記第１のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第２のプロセッサに処理を割り当てることを特徴とするマルチプロセッサシステム。
【請求項２】
前記第２のクロック信号の周波数は、前記第１のクロック信号の周波数の１／ｎ倍（ｎは２以上の整数）であることを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記第１のプロセッサには第１の電源電圧が与えられ、前記複数の第２のプロセッサには前記第１の電源電圧より電圧値が低い第２の電源電圧が与えられることを特徴とする請求項１又は２に記載のマルチプロセッサシステム。
【請求項４】
それぞれ前記第１及び第２のプロセッサと同一の構成であり、前記第２の電源電圧より電圧値が低い第３の電源電圧が与えられる複数の第３のプロセッサをさらに備え、
前記クロック生成部は前記第２のクロック信号より周波数の低い第３のクロック信号を生成し、前記複数の第３のプロセッサに出力することを特徴とする請求項３に記載のマルチプロセッサシステム。
【請求項５】
処理対象ソフトウェアが与えられる単一又は複数の第１のプロセッサと、
それぞれ前記第１のプロセッサより単位サイクルあたりの性能（Ｃｙｃｌｅｓ  Ｐｅｒ  Ｉｎｓｔｒｕｃｔｉｏｎ）が低く、前記第１のプロセッサと命令セットが同一か又は一部がない複数の第２のプロセッサと、
第１のクロック信号と、前記第１のクロック信号より周波数の低い第２のクロック信号とを生成し、前記第１のクロック信号を前記第１のプロセッサに出力し、前記第２のクロック信号を前記複数の第２のプロセッサに出力するクロック生成部と、
を備え、
前記第１のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第２のプロセッサに処理を割り当てることを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムに関するものである。
【背景技術】
【０００２】
プロセッサの演算能力を向上させる手段として複数のプロセッサを並列に動作させるマルチプロセッサシステムが利用されている。このマルチプロセッサはＡＭＰ（Asymmetric Multi Processing）型とＳＭＰ（Symmetric Multi Processing）型とに大別される。
【０００３】
ＡＭＰ型ではそれぞれのプロセッサで固有のプログラムが動作するため、予め決められた処理を行う場合に好適である。例えば、自動的に並列性を持つタスクを抽出し、プロセッサユニットの特性に合わせてタスクを配置することでプロセッサを効率良くスケジューリングするプロセッサシステムが提案されている（例えば特許文献１参照）。
【０００４】
しかし、ＡＭＰ型ではソフトウェアがプロセッサのハードウェア構造に依存するため、ソフトウェアの開発が困難であるという問題がある。また、一般的にハードウェア構造は世代によって変わるため、開発したソフトウェアが次世代で使用できず、ソフトウェア継承性が良くないという問題もある。
【０００５】
また、上述したようなプロセッサシステムは、搭載されたプロセッサの特徴に合うようにコンパイラやＯＳを開発する必要があり、汎用性が低い。
【０００６】
一方、ＳＭＰ型はプロセッサがすべて同一の構造となっており、いずれか１つのプロセッサが全体を制御する。このプロセッサがソフトウェアをスレッドという処理単位に分割して各プロセッサに割り当て、分散処理を行う。ＳＭＰ型はソフトウェアが特定のハードウェアに依存せず、汎用的な処理に好適であり、ソフトウェア継承性も良い。
【０００７】
しかし、ＳＭＰ型では処理をスレッドに分割した際に、並列処理できるような命令列になっていない場合には、ある処理が終了するまでは他のプロセッサが処理を開始することができず、全体の処理能力が大幅に低下するという問題がある。
【０００８】
例えば、同一構造の１００個のプロセッサで構築されたＳＭＰ型のマルチプロセッサシステムで、並列処理できないスレッドを処理する場合、そのスレッドを処理しているプロセッサ以外の９９個のプロセッサが処理を行えず、プロセッサシステム全体の性能が１／１００に低下する。
【特許文献１】特開２００６−２９３７６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は汎用的で処理性能を向上させたマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様によるマルチプロセッサシステムは、処理対象ソフトウェアが与えられる単一又は複数の第１のプロセッサと、それぞれ前記第１のプロセッサと同一の構成である複数の第２のプロセッサと、第１のクロック信号と、前記第１のクロック信号より周波数の低い第２のクロック信号とを生成し、前記第１のクロック信号を前記第１のプロセッサに出力し、前記第２のクロック信号を前記複数の第２のプロセッサに出力するクロック生成部と、を備え、前記第１のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第２のプロセッサに処理を割り当てるものである。
【００１１】
また、本発明の一態様によるマルチプロセッサシステムは、処理対象ソフトウェアが与えられる単一又は複数の第１のプロセッサと、それぞれ前記第１のプロセッサより単位サイクルあたりの性能（Ｃｙｃｌｅｓ  Ｐｅｒ  Ｉｎｓｔｒｕｃｔｉｏｎ）が低く、前記第１のプロセッサと命令セットが同一か又は一部がない複数の第２のプロセッサと、第１のクロック信号と、前記第１のクロック信号より周波数の低い第２のクロック信号とを生成し、前記第１のクロック信号を前記第１のプロセッサに出力し、前記第２のクロック信号を前記複数の第２のプロセッサに出力するクロック生成部と、を備え、前記第１のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第２のプロセッサに処理を割り当てるものである。
【発明の効果】
【００１２】
本発明によれば、汎用性が高く、かつ処理性能を向上させることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１４】
図１に本発明の実施形態に係るマルチプロセッサシステムの概略構成を示す。マルチプロセッサシステムは、プロセッサＰ１〜Ｐ５、クロック生成部１、及び電源電圧供給部２を有する。プロセッサＰ１〜Ｐ５は同一のアーキテクチャであり、本実施形態によるマルチプロセッサシステムは論理構造上ＳＭＰ型である。
【００１５】
クロック生成部１はＰＬＬ回路１１、分周回路１２、１３を有する。ＰＬＬ回路１１はシステムクロックが与えられ、周波数Ｆの内部クロックを出力する。分周回路１２は内部クロックを整数分の１に分周し、周波数ｆのクロック信号ＣＬＫ１をプロセッサＰ１へ出力する。分周回路１３は、クロック信号ＣＬＫ１を分周し、周波数ｆ／２のクロック信号ＣＬＫ２をプロセッサＰ２〜Ｐ５へ出力する。
【００１６】
電源電圧供給部２は外部から電圧Ｖ０が与えられて降圧し、電圧Ｖ１をプロセッサＰ１へ供給し、電圧Ｖ２をプロセッサＰ２〜Ｐ５へ供給する。ここで電圧Ｖ１、Ｖ２はプロセッサＰ２の消費電力がプロセッサＰ１の消費電力の１／４となるような値にする。
【００１７】
プロセッサの消費電力は周波数に比例し、電圧の二乗に比例する。プロセッサＰ１の周波数はプロセッサＰ２〜Ｐ５の周波数の２倍となっている。従って、電圧Ｖ２は電圧Ｖ１の０．７１倍程度となるようにする。それにより、並列処理できないスレッドの処理能力を落とすことなく、製品化可能なパワーに抑えながら全体の性能を向上させたＳＭＰ型マルチプロセッサとすることが可能となる。
【００１８】
プロセッサＰ１はプロセッサＰ２〜Ｐ５の制御を行い、ソフトウェアをスレッドに分割し、各プロセッサに割り当てる。プロセッサＰ１は並列処理できるスレッドをプロセッサＰ２〜Ｐ５に割り当て並列処理を行わせ、並列処理できないスレッドはプロセッサＰ１自身で処理を行う。
【００１９】
プロセッサＰ１はプロセッサＰ２〜Ｐ５よりも高速動作するため、並列処理できないスレッドについてはプロセッサＰ２〜Ｐ５のいずれかに処理を行わせるよりも高速に処理でき、全体の性能が低下することを防止する。
【００２０】
また、プロセッサＰ２〜Ｐ５はプロセッサＰ１よりも動作速度は低いが、コア数が多い分並列処理可能なスレッドについては、プロセッサＰ２〜Ｐ５全体としての性能がプロセッサＰ１よりも良い。
【００２１】
図２に比較例として、従来構造のマルチプロセッサシステムの概略構成を示し、図３に本実施形態によるマルチプロセッサシステムと従来構造のマルチプロセッサシステムとの比較表を示す。
【００２２】
図２（ａ）に示すプロセッサシステム１００はクロック周波数ｆ、電圧Ｖ１が与えられるプロセッサ、すなわちプロセッサＰ１と同等の性能のプロセッサを２つ備える。
【００２３】
図２（ｂ）に示すプロセッサシステム２００はクロック周波数ｆ、電圧Ｖ１が与えられるプロセッサ、すなわちプロセッサＰ１と同等の性能のプロセッサを５つ備える。
【００２４】
図２（ｃ）に示すプロセッサシステム１００はクロック周波数ｆ／２、電圧Ｖ２が与えられるプロセッサ、すなわちプロセッサＰ２〜Ｐ５と同等の性能のプロセッサを５つ備える。
【００２５】
図３に示す比較表では、プロセッサＰ１の消費電力、処理能力をそれぞれ１としている。プロセッサＰ２〜Ｐ５はそれぞれ消費電力が１／４、処理能力が１／２となる。図１に示す本実施形態によるマルチプロセッサシステムは、消費電力は１＋（１／４）×４＝２であり、システム全体の処理能力は１＋（１／２）×４＝３となる。また、並列処理できないスレッドについてはプロセッサＰ１が処理を行うため、その処理能力は１である。
【００２６】
プロセッサシステム１００は、消費電力は１×２＝２であり、システム全体の処理能力は１×２＝２となる。また、また、並列処理できないスレッドについてはプロセッサＰ１と同等の性能のプロセッサが処理を行うため、その処理能力は１である。
【００２７】
プロセッサシステム１００と比較して、本実施形態によるマルチプロセッサシステムはシステム全体の処理能力が高いことが分かる。
【００２８】
プロセッサシステム２００は、消費電力は１×５＝５であり、システム全体の処理能力は１×５＝５となる。また、また、並列処理できないスレッドについてはプロセッサＰ１と同等の性能のプロセッサが処理を行うため、その処理能力は１である。
【００２９】
プロセッサシステム２００はシステム全体の消費電力がプロセッサＰ１の消費電力の５倍になり、通常、パワー制限により製品化出来ない構成である。
【００３０】
プロセッサシステム３００は、消費電力は（１／４）×５＝５／４であり、システム全体の処理能力は（１／２）×５＝５／２となる。また、また、並列処理できないスレッドについてはプロセッサＰ２〜Ｐ５と同等の性能のプロセッサが処理を行うため、その処理能力は１／２である。
【００３１】
プロセッサシステム３００と比較して、本実施形態によるマルチプロセッサシステムは並列処理できないスレッドについての処理能力が高いことが分かる。
【００３２】
本実施形態によるマルチプロセッサシステムは従来構造のＳＭＰ型マルチプロセッサと比較して、消費電力を維持して全体の処理能力を向上させ、また並列処理できないスレッドの処理能力を高くすることができる。
【００３３】
このように、それぞれ同一の構成の複数のプロセッサを備える論理構造上ＳＭＰ型のマルチプロセッサシステムにおいて、いずれか１つのプロセッサのクロック周波数・供給電圧を他のプロセッサより大きくして処理性能を上げ、ＡＭＰ的な内部物理構成とすることで、ＳＭＰでありながら、並列処理できないスレッドの処理も高速に行うことができる。また、論理構造上はＳＭＰ型であるため、汎用性が高いものとなる。
【００３４】
上記実施形態では外部から与えられた電圧Ｖ０を電源電圧供給部２が降圧して電圧Ｖ１、Ｖ２をプロセッサに供給していたが、外部から電圧Ｖ１、Ｖ２を与えるようにしてもよい。
【００３５】
上記実施形態ではクロック周波数ｆ、電圧Ｖ１が与えられる処理能力が高いプロセッサを１個、クロック周波数ｆ／２、電圧Ｖ２が与えられる処理能力が低いプロセッサを４個としたが、プロセッサ数はこれに限定されるものではない。また、プロセッサＰ２〜Ｐ５の消費電力はプロセッサＰ１の消費電力の１／４となるようにしたが、プロセッサＰ１の消費電力より小さければこれに限定されるものではない。プロセッサ数や各プロセッサのパワーは、処理能力（性能）、パワー、チップサイズ（コスト）の観点から製品として実現可能で最適な値となるようにする。
【００３６】
上記実施形態ではプロセッサＰ１は単一のプロセッサを前提としているが、プロセッサＰ１が複数のマルチプロセッサで構成されるようにしても、従来のＳＭＰ型マルチプロセッサシステムと比較して、並列処理できないスレッドの処理能力を落とすことなく、製品化可能なパワーに抑えながら全体の性能を向上させたＳＭＰ型マルチプロセッサシステムとすることが可能となる。
【００３７】
上記実施形態ではプロセッサＰ１とプロセッサＰ２〜Ｐ５は同一構成のプロセッサとしたが、プロセッサＰ２〜Ｐ５はプロセッサＰ１と命令セットが同一であれば単位サイクルあたりの性能（Ｃｙｃｌｅｓ  Ｐｅｒ  Ｉｎｓｔｒｕｃｔｉｏｎ）が低い低位なプロセッサとしてもよい。
【００３８】
例えば、プロセッサＰ２〜Ｐ５のパワーを削減し、プロセッサＰ２〜Ｐ５と同等のプロセッサの搭載数を多くするために、プロセッサＰ１はスーパースカラーでパイプラインの段数８段のアウトオブオーダー、プロセッサＰ１以外（プロセッサＰ２〜）はスーパースカラーではなく、パイプラインの段数５段のインオーダーのプロセッサとすることも可能である。
【００３９】
また、プロセッサＰ１以外（プロセッサＰ２〜）はプロセッサＰ１により割り当てられた処理のみを行うため、必ずしもプロセッサＰ１が持つ全ての命令を持つ必要がなく、使用しない一部の命令を削除したプロセッサとすることでパワーを削減し、搭載数をより多くすることも可能となり得る。
【００４０】
上記実施形態では並列処理可能なスレッドをプロセッサＰ２〜Ｐ５が処理し、並列処理できないスレッドをプロセッサＰ１が処理していたが、図４に示すように、プロセッサＰ２〜Ｐ５よりも供給電圧、クロック周波数が低いより低位なプロセッサＰ６〜Ｐ２１をさらに備えるようにしてもよい。
【００４１】
例えば、プロセッサＰ２が処理を行うスレッドがさらに細かい並列処理可能な命令に分割できる場合、各命令をプロセッサＰ６〜Ｐ９が処理する。このような構成にすることで、並列処理可能なスレッドの処理をさらに効率良く行うことができる。
【００４２】
ここで、プロセッサＰ６〜Ｐ２１はプロセッサＰ２〜Ｐ５と同一の構成でもよく、またプロセッサＰ２〜Ｐ５と命令セットが同一であれば単位サイクルあたりの性能が低いプロセッサにしてもよい。また、プロセッサＰ６〜Ｐ２１は、プロセッサＰ２〜Ｐ５の持つ命令のうち、使用しない一部の命令を削除したプロセッサとしてもよい。
【００４３】
上述した実施の形態は一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態によるマルチプロセッサシステムの概略構成図である。
【図２】比較例によるマルチプロセッサシステムの概略構成図である。
【図３】同実施形態によるマルチプロセッサシステムと比較例によるマルチプロセッサシステムとの性能比較表である。
【図４】変形例によるマルチプロセッサシステムの概略構成図である。
【符号の説明】
【００４５】
１  クロック生成部
２  電源電圧供給部
Ｐ１〜Ｐ５  プロセッサ
【図１】
2009301471.tif 000003
【図２】
2009301471.tif 000004
【図３】
2009301471.tif 000005
【図４】
2009301471.tif 000006