JP2009301471A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステム Download PDFInfo
- Publication number
- JP2009301471A JP2009301471A JP2008157722A JP2008157722A JP2009301471A JP 2009301471 A JP2009301471 A JP 2009301471A JP 2008157722 A JP2008157722 A JP 2008157722A JP 2008157722 A JP2008157722 A JP 2008157722A JP 2009301471 A JP2009301471 A JP 2009301471A
- Authority
- JP
- Japan
- Prior art keywords
- processors
- processor
- clock signal
- processed
- multiprocessor system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
【課題】汎用的で処理性能を向上させたマルチプロセッサシステムを提供する。
【解決手段】処理対象ソフトウェアが与えられる単一又は複数の第1のプロセッサP1と、それぞれ前記第1のプロセッサと同一の構成である複数の第2のプロセッサP2〜P5と、第1のクロック信号と、前記第1のクロック信号より周波数の低い第2のクロック信号とを生成し、前記第1のクロック信号を前記第1のプロセッサに出力し、前記第2のクロック信号を前記複数の第2のプロセッサに出力するクロック生成部1と、を備え、前記第1のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第2のプロセッサに割り当てる。
【選択図】図1
【解決手段】処理対象ソフトウェアが与えられる単一又は複数の第1のプロセッサP1と、それぞれ前記第1のプロセッサと同一の構成である複数の第2のプロセッサP2〜P5と、第1のクロック信号と、前記第1のクロック信号より周波数の低い第2のクロック信号とを生成し、前記第1のクロック信号を前記第1のプロセッサに出力し、前記第2のクロック信号を前記複数の第2のプロセッサに出力するクロック生成部1と、を備え、前記第1のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第2のプロセッサに割り当てる。
【選択図】図1
Description
本発明は、マルチプロセッサシステムに関するものである。
プロセッサの演算能力を向上させる手段として複数のプロセッサを並列に動作させるマルチプロセッサシステムが利用されている。このマルチプロセッサはAMP(Asymmetric Multi Processing)型とSMP(Symmetric Multi Processing)型とに大別される。
AMP型ではそれぞれのプロセッサで固有のプログラムが動作するため、予め決められた処理を行う場合に好適である。例えば、自動的に並列性を持つタスクを抽出し、プロセッサユニットの特性に合わせてタスクを配置することでプロセッサを効率良くスケジューリングするプロセッサシステムが提案されている(例えば特許文献1参照)。
しかし、AMP型ではソフトウェアがプロセッサのハードウェア構造に依存するため、ソフトウェアの開発が困難であるという問題がある。また、一般的にハードウェア構造は世代によって変わるため、開発したソフトウェアが次世代で使用できず、ソフトウェア継承性が良くないという問題もある。
また、上述したようなプロセッサシステムは、搭載されたプロセッサの特徴に合うようにコンパイラやOSを開発する必要があり、汎用性が低い。
一方、SMP型はプロセッサがすべて同一の構造となっており、いずれか1つのプロセッサが全体を制御する。このプロセッサがソフトウェアをスレッドという処理単位に分割して各プロセッサに割り当て、分散処理を行う。SMP型はソフトウェアが特定のハードウェアに依存せず、汎用的な処理に好適であり、ソフトウェア継承性も良い。
しかし、SMP型では処理をスレッドに分割した際に、並列処理できるような命令列になっていない場合には、ある処理が終了するまでは他のプロセッサが処理を開始することができず、全体の処理能力が大幅に低下するという問題がある。
例えば、同一構造の100個のプロセッサで構築されたSMP型のマルチプロセッサシステムで、並列処理できないスレッドを処理する場合、そのスレッドを処理しているプロセッサ以外の99個のプロセッサが処理を行えず、プロセッサシステム全体の性能が1/100に低下する。
特開2006−293768号公報
本発明は汎用的で処理性能を向上させたマルチプロセッサシステムを提供することを目的とする。
本発明の一態様によるマルチプロセッサシステムは、処理対象ソフトウェアが与えられる単一又は複数の第1のプロセッサと、それぞれ前記第1のプロセッサと同一の構成である複数の第2のプロセッサと、第1のクロック信号と、前記第1のクロック信号より周波数の低い第2のクロック信号とを生成し、前記第1のクロック信号を前記第1のプロセッサに出力し、前記第2のクロック信号を前記複数の第2のプロセッサに出力するクロック生成部と、を備え、前記第1のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第2のプロセッサに処理を割り当てるものである。
また、本発明の一態様によるマルチプロセッサシステムは、処理対象ソフトウェアが与えられる単一又は複数の第1のプロセッサと、それぞれ前記第1のプロセッサより単位サイクルあたりの性能(Cycles Per Instruction)が低く、前記第1のプロセッサと命令セットが同一か又は一部がない複数の第2のプロセッサと、第1のクロック信号と、前記第1のクロック信号より周波数の低い第2のクロック信号とを生成し、前記第1のクロック信号を前記第1のプロセッサに出力し、前記第2のクロック信号を前記複数の第2のプロセッサに出力するクロック生成部と、を備え、前記第1のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第2のプロセッサに処理を割り当てるものである。
本発明によれば、汎用性が高く、かつ処理性能を向上させることができる。
以下、本発明の実施の形態を図面に基づいて説明する。
図1に本発明の実施形態に係るマルチプロセッサシステムの概略構成を示す。マルチプロセッサシステムは、プロセッサP1〜P5、クロック生成部1、及び電源電圧供給部2を有する。プロセッサP1〜P5は同一のアーキテクチャであり、本実施形態によるマルチプロセッサシステムは論理構造上SMP型である。
クロック生成部1はPLL回路11、分周回路12、13を有する。PLL回路11はシステムクロックが与えられ、周波数Fの内部クロックを出力する。分周回路12は内部クロックを整数分の1に分周し、周波数fのクロック信号CLK1をプロセッサP1へ出力する。分周回路13は、クロック信号CLK1を分周し、周波数f/2のクロック信号CLK2をプロセッサP2〜P5へ出力する。
電源電圧供給部2は外部から電圧V0が与えられて降圧し、電圧V1をプロセッサP1へ供給し、電圧V2をプロセッサP2〜P5へ供給する。ここで電圧V1、V2はプロセッサP2の消費電力がプロセッサP1の消費電力の1/4となるような値にする。
プロセッサの消費電力は周波数に比例し、電圧の二乗に比例する。プロセッサP1の周波数はプロセッサP2〜P5の周波数の2倍となっている。従って、電圧V2は電圧V1の0.71倍程度となるようにする。それにより、並列処理できないスレッドの処理能力を落とすことなく、製品化可能なパワーに抑えながら全体の性能を向上させたSMP型マルチプロセッサとすることが可能となる。
プロセッサP1はプロセッサP2〜P5の制御を行い、ソフトウェアをスレッドに分割し、各プロセッサに割り当てる。プロセッサP1は並列処理できるスレッドをプロセッサP2〜P5に割り当て並列処理を行わせ、並列処理できないスレッドはプロセッサP1自身で処理を行う。
プロセッサP1はプロセッサP2〜P5よりも高速動作するため、並列処理できないスレッドについてはプロセッサP2〜P5のいずれかに処理を行わせるよりも高速に処理でき、全体の性能が低下することを防止する。
また、プロセッサP2〜P5はプロセッサP1よりも動作速度は低いが、コア数が多い分並列処理可能なスレッドについては、プロセッサP2〜P5全体としての性能がプロセッサP1よりも良い。
図2に比較例として、従来構造のマルチプロセッサシステムの概略構成を示し、図3に本実施形態によるマルチプロセッサシステムと従来構造のマルチプロセッサシステムとの比較表を示す。
図2(a)に示すプロセッサシステム100はクロック周波数f、電圧V1が与えられるプロセッサ、すなわちプロセッサP1と同等の性能のプロセッサを2つ備える。
図2(b)に示すプロセッサシステム200はクロック周波数f、電圧V1が与えられるプロセッサ、すなわちプロセッサP1と同等の性能のプロセッサを5つ備える。
図2(c)に示すプロセッサシステム100はクロック周波数f/2、電圧V2が与えられるプロセッサ、すなわちプロセッサP2〜P5と同等の性能のプロセッサを5つ備える。
図3に示す比較表では、プロセッサP1の消費電力、処理能力をそれぞれ1としている。プロセッサP2〜P5はそれぞれ消費電力が1/4、処理能力が1/2となる。図1に示す本実施形態によるマルチプロセッサシステムは、消費電力は1+(1/4)×4=2であり、システム全体の処理能力は1+(1/2)×4=3となる。また、並列処理できないスレッドについてはプロセッサP1が処理を行うため、その処理能力は1である。
プロセッサシステム100は、消費電力は1×2=2であり、システム全体の処理能力は1×2=2となる。また、また、並列処理できないスレッドについてはプロセッサP1と同等の性能のプロセッサが処理を行うため、その処理能力は1である。
プロセッサシステム100と比較して、本実施形態によるマルチプロセッサシステムはシステム全体の処理能力が高いことが分かる。
プロセッサシステム200は、消費電力は1×5=5であり、システム全体の処理能力は1×5=5となる。また、また、並列処理できないスレッドについてはプロセッサP1と同等の性能のプロセッサが処理を行うため、その処理能力は1である。
プロセッサシステム200はシステム全体の消費電力がプロセッサP1の消費電力の5倍になり、通常、パワー制限により製品化出来ない構成である。
プロセッサシステム300は、消費電力は(1/4)×5=5/4であり、システム全体の処理能力は(1/2)×5=5/2となる。また、また、並列処理できないスレッドについてはプロセッサP2〜P5と同等の性能のプロセッサが処理を行うため、その処理能力は1/2である。
プロセッサシステム300と比較して、本実施形態によるマルチプロセッサシステムは並列処理できないスレッドについての処理能力が高いことが分かる。
本実施形態によるマルチプロセッサシステムは従来構造のSMP型マルチプロセッサと比較して、消費電力を維持して全体の処理能力を向上させ、また並列処理できないスレッドの処理能力を高くすることができる。
このように、それぞれ同一の構成の複数のプロセッサを備える論理構造上SMP型のマルチプロセッサシステムにおいて、いずれか1つのプロセッサのクロック周波数・供給電圧を他のプロセッサより大きくして処理性能を上げ、AMP的な内部物理構成とすることで、SMPでありながら、並列処理できないスレッドの処理も高速に行うことができる。また、論理構造上はSMP型であるため、汎用性が高いものとなる。
上記実施形態では外部から与えられた電圧V0を電源電圧供給部2が降圧して電圧V1、V2をプロセッサに供給していたが、外部から電圧V1、V2を与えるようにしてもよい。
上記実施形態ではクロック周波数f、電圧V1が与えられる処理能力が高いプロセッサを1個、クロック周波数f/2、電圧V2が与えられる処理能力が低いプロセッサを4個としたが、プロセッサ数はこれに限定されるものではない。また、プロセッサP2〜P5の消費電力はプロセッサP1の消費電力の1/4となるようにしたが、プロセッサP1の消費電力より小さければこれに限定されるものではない。プロセッサ数や各プロセッサのパワーは、処理能力(性能)、パワー、チップサイズ(コスト)の観点から製品として実現可能で最適な値となるようにする。
上記実施形態ではプロセッサP1は単一のプロセッサを前提としているが、プロセッサP1が複数のマルチプロセッサで構成されるようにしても、従来のSMP型マルチプロセッサシステムと比較して、並列処理できないスレッドの処理能力を落とすことなく、製品化可能なパワーに抑えながら全体の性能を向上させたSMP型マルチプロセッサシステムとすることが可能となる。
上記実施形態ではプロセッサP1とプロセッサP2〜P5は同一構成のプロセッサとしたが、プロセッサP2〜P5はプロセッサP1と命令セットが同一であれば単位サイクルあたりの性能(Cycles Per Instruction)が低い低位なプロセッサとしてもよい。
例えば、プロセッサP2〜P5のパワーを削減し、プロセッサP2〜P5と同等のプロセッサの搭載数を多くするために、プロセッサP1はスーパースカラーでパイプラインの段数8段のアウトオブオーダー、プロセッサP1以外(プロセッサP2〜)はスーパースカラーではなく、パイプラインの段数5段のインオーダーのプロセッサとすることも可能である。
また、プロセッサP1以外(プロセッサP2〜)はプロセッサP1により割り当てられた処理のみを行うため、必ずしもプロセッサP1が持つ全ての命令を持つ必要がなく、使用しない一部の命令を削除したプロセッサとすることでパワーを削減し、搭載数をより多くすることも可能となり得る。
上記実施形態では並列処理可能なスレッドをプロセッサP2〜P5が処理し、並列処理できないスレッドをプロセッサP1が処理していたが、図4に示すように、プロセッサP2〜P5よりも供給電圧、クロック周波数が低いより低位なプロセッサP6〜P21をさらに備えるようにしてもよい。
例えば、プロセッサP2が処理を行うスレッドがさらに細かい並列処理可能な命令に分割できる場合、各命令をプロセッサP6〜P9が処理する。このような構成にすることで、並列処理可能なスレッドの処理をさらに効率良く行うことができる。
ここで、プロセッサP6〜P21はプロセッサP2〜P5と同一の構成でもよく、またプロセッサP2〜P5と命令セットが同一であれば単位サイクルあたりの性能が低いプロセッサにしてもよい。また、プロセッサP6〜P21は、プロセッサP2〜P5の持つ命令のうち、使用しない一部の命令を削除したプロセッサとしてもよい。
上述した実施の形態は一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 クロック生成部
2 電源電圧供給部
P1〜P5 プロセッサ
2 電源電圧供給部
P1〜P5 プロセッサ
Claims (5)
- 処理対象ソフトウェアが与えられる単一又は複数の第1のプロセッサと、
それぞれ前記第1のプロセッサと同一の構成である複数の第2のプロセッサと、
第1のクロック信号と、前記第1のクロック信号より周波数の低い第2のクロック信号とを生成し、前記第1のクロック信号を前記第1のプロセッサに出力し、前記第2のクロック信号を前記複数の第2のプロセッサに出力するクロック生成部と、
を備え、
前記第1のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第2のプロセッサに処理を割り当てることを特徴とするマルチプロセッサシステム。 - 前記第2のクロック信号の周波数は、前記第1のクロック信号の周波数の1/n倍(nは2以上の整数)であることを特徴とする請求項1に記載のマルチプロセッサシステム。
- 前記第1のプロセッサには第1の電源電圧が与えられ、前記複数の第2のプロセッサには前記第1の電源電圧より電圧値が低い第2の電源電圧が与えられることを特徴とする請求項1又は2に記載のマルチプロセッサシステム。
- それぞれ前記第1及び第2のプロセッサと同一の構成であり、前記第2の電源電圧より電圧値が低い第3の電源電圧が与えられる複数の第3のプロセッサをさらに備え、
前記クロック生成部は前記第2のクロック信号より周波数の低い第3のクロック信号を生成し、前記複数の第3のプロセッサに出力することを特徴とする請求項3に記載のマルチプロセッサシステム。 - 処理対象ソフトウェアが与えられる単一又は複数の第1のプロセッサと、
それぞれ前記第1のプロセッサより単位サイクルあたりの性能(Cycles Per Instruction)が低く、前記第1のプロセッサと命令セットが同一か又は一部がない複数の第2のプロセッサと、
第1のクロック信号と、前記第1のクロック信号より周波数の低い第2のクロック信号とを生成し、前記第1のクロック信号を前記第1のプロセッサに出力し、前記第2のクロック信号を前記複数の第2のプロセッサに出力するクロック生成部と、
を備え、
前記第1のプロセッサは前記処理対象ソフトウェアを複数のスレッドに分割し、並列処理不能なスレッドの処理を実行し、並列処理可能なスレッドを前記複数の第2のプロセッサに処理を割り当てることを特徴とするマルチプロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008157722A JP2009301471A (ja) | 2008-06-17 | 2008-06-17 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008157722A JP2009301471A (ja) | 2008-06-17 | 2008-06-17 | マルチプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009301471A true JP2009301471A (ja) | 2009-12-24 |
Family
ID=41548272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008157722A Pending JP2009301471A (ja) | 2008-06-17 | 2008-06-17 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009301471A (ja) |
-
2008
- 2008-06-17 JP JP2008157722A patent/JP2009301471A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414197B (zh) | 数据处理系统、编译器、处理器的方法和机器可读介质 | |
US9207995B2 (en) | Mechanism to speed-up multithreaded execution by register file write port reallocation | |
Wang et al. | Exploiting concurrent kernel execution on graphic processing units | |
KR102340679B1 (ko) | 전압 드룹을 위한 클록 조정 | |
Venu | Multi-core processors-an overview | |
US10402223B1 (en) | Scheduling hardware resources for offloading functions in a heterogeneous computing system | |
WO2016119546A1 (en) | Method and apparatus for realizing self-timed parallelized many-core processor | |
JP2014216021A (ja) | バッチスレッド処理のためのプロセッサ、コード生成装置及びバッチスレッド処理方法 | |
US7594195B2 (en) | Multithreaded reachability | |
Albalwi et al. | Task Level Parallelization of All Pair Shortest Path Algorithm in OpenMP 3.0 | |
Toi et al. | Optimizing time and space multiplexed computation in a dynamically reconfigurable processor | |
Pager et al. | A software scheme for multithreading on CGRAs | |
Madhu et al. | Compiling HPC kernels for the REDEFINE CGRA | |
US9665354B2 (en) | Apparatus and method for translating multithread program code | |
Li et al. | An area-efficient FPGA overlay using DSP block based time-multiplexed functional units | |
Poss et al. | Apple-CORE: Microgrids of SVP Cores--Flexible, General-Purpose, Fine-Grained Hardware Concurrency Management | |
TW201734816A (zh) | 處理工作負載之方法及其多處理器系統 | |
TW201543357A (zh) | 基於同時多執行緒(smt)的中央處理單元以及用於檢測指令的資料相關性的裝置 | |
Gilani et al. | Exploiting GPU peak-power and performance tradeoffs through reduced effective pipeline latency | |
Hosseinabady et al. | Energy optimization of FPGA-based stream-oriented computing with power gating | |
Stillmaker et al. | Fine-grained energy-efficient sorting on a many-core processor array | |
US9841973B2 (en) | Information processing apparatus and method of controlling information processing apparatus | |
KR20120041581A (ko) | 중첩 루프를 처리하기 위한 재구성 가능 프로세서 및 방법 | |
Das et al. | Rhyme: Redefine hyper cell multicore for accelerating hpc kernels | |
JP2009301471A (ja) | マルチプロセッサシステム |