説明

多重化実行に対してスケーラブルなパイプラインプロセッサシステム

【課題】パイプラインプロセッサシステムにおいて、多重化コストを削減する。
【解決手段】多重化実行が可能な複数のパイプラインプロセッサ1a〜1eと、前記複数のパイプラインプロセッサの多重化度を適応的に変更する制御部3と、を備えていることを特徴とする多重化実行に対してスケーラブルなパイプラインプロセッサシステム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多重化実行に対してスケーラブルなパイプラインプロセッサシステムに関するものである。
【背景技術】
【0002】
プロセッサにおけるパイプライン処理は、プログラム中の命令をパイプライン・ステージ毎に流れ作業で処理することで、処理の高速化を図るための技術である。
一つの命令は、例えば、プログラム・カウンタに従い命令をメモリから読み出す「フェッチ」、命令を解釈して処理を同定する「デコード」、演算対象となる数値を読み出す「レジスタ読み出し」、解釈された命令に応じて演算を実行する「実行」、演算結果の格納を行う「ライトバック」などのステージがある。また、命令によっては実行の際にメモリ・アクセスが行われる場合があり、この場合「メモリ・アクセス」のステージが含まれることもある。
なお、VLIWプロセッサに高信頼性モードを持たせて、高信頼性と高性能性を切換使用する高信頼性モード動作併用長命令実行プロセッサが、特許文献1に開示されている。
【0003】
【特許文献1】特開2003−316598号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
さて、近年の半導体製造技術の微細化に伴って、プロセッサの故障の増加が問題となっている。
プロセッサの故障には、放射線の影響等による一時故障と、エレクトロ・マイグレーション等による永久故障と、がある。
【0005】
一時故障は、一時的にプロセッサ内における信号の0/1(Low/High)の状態が放射線等によって反転するために生じる故障であり、半導体の微細化によって回路中の静電容量の減少が大きく影響している。ただし、この一時故障は、放射線等の環境的要因によって一時的に故障するだけであり、回復する見込みのある故障である。
【0006】
一方、永久故障は、回路自体の故障であり、回復の見込みがない故障である。永久故障の原因としては、回路配線が断線する現象であるエレクトロ・マイグレーションがある。半導体の微細化によって、配線も微細化し、エレクトロ・マイグレーションが生じやすくなっている。
【0007】
また、故障としては、負バイアス温度不安定性(Negative Bias Temperature Instability;NBTI)等によるトランジスタ特性劣化によるものがある。ただし、NBTIによる特性劣化は、通電を停止することによって回復することができる。
【0008】
故障が発生しても信頼性を確保するための技術としては、多重化が一般に知られている。
多重化は、例えば、図9(a)に示すように、同一の組み合わせ論理回路A,A’,A”を3系統準備して処理を三重化し、各系統の論理回路A,A’,A”の出力に基づいて、多数決論理回路による多数決をとることで行われる(Triple Modular Redundancy;TMR)。
【0009】
図9(a)の構成によれば、3系統のうち、1系統で故障(一時故障又は永久故障)が発生しても、他の2系統が正常であれば、多数決論理によって、正しい出力が得られ、正常動作を維持することができる。
なお、いずれかの系統で故障発生したことを検出するだけでよいのであれば、2系統準備すれば足りる(Dual Modular Redundancy;DMR)。2系統を持つ2重化の場合、各系統の論理回路の出力を比較して、一致しなければ故障であることがわかる。このような2重化では、故障が検出された場合、一時故障であれば、命令を再度実行することで正しい結果を得られる可能性が高いが、3重化よりは信頼性が低くなる。
【0010】
ここで、従来の多重化手法では、パイプラインプロセッサの高信頼性を実現する場合、高コストであるという問題がある。
すなわち、多重化を実現するには、同じ処理を行うパイプラインプロセッサが多重化度に応じた数ほど必要であり、高い信頼性を確保しようとすると、より多くのプロセッサが必要となって、回路面積コストや消費電力コストが増大する。
【0011】
さらに、従来の多重化手法では、多重化を行っても、いずれかの系統に永久故障が発生すると、その後の信頼性が低下するという問題もある。
すなわち、プロセッサを3重化したとしても、例えば図9(b)に示すように、いずれか一つの系統にでも永久故障が発生すると、正常な系統は、残る2系統だけとなる。したがって、残る2系統のいずれかに一時故障が発生すると、正常な系統は、1つだけとなり、多数決論理では、正しい出力は得られなくなる。
【0012】
そこで、本発明は、パイプラインプロセッサシステムにおいて、多重化コストを削減するための新たな技術を提供することを目的とする。
また、本発明の他の目的は、永久故障が発生しても、信頼性を確保することである。
【課題を解決するための手段】
【0013】
本発明は、多重化実行が可能な複数のパイプラインプロセッサと、前記複数のパイプラインプロセッサの多重化度を適応的に変更する制御部と、を備えていることを特徴とする多重化実行に対してスケーラブルなパイプラインプロセッサシステムである。
【0014】
上記本発明によれば、適応的に多重度を変更できるため、必要に応じて動的に多重化度を高めたり、低くしたりすることができる。したがって、高い多重化が必要な場合には、多重化度を高くし、低い多重化で十分な場合には、多重化度を低くすることができる。多重化度を低くすることで余ったパイプラインプロセッサは、他の処理に用いたり、パイプラインプロセッサの経時劣化を抑制したり消費電力を削減するために電源遮断したりすることができる。
よって、常に高い多重化度のパイプラインプロセッサを固定的に設ける場合に比べて、平均的な多重化度が低下し、多重化コストを削減することができる。
【0015】
本発明のパイプラインプロセッサシステムは、多重化実行している複数のパイプラインプロセッサにおける故障を検出する故障検出手段を更に備え、前記制御部は、前記故障検出手段によって故障が検出されると、パイプラインプロセッサの多重化度を上げる多重化度変更手段を備えるのが好ましい。
この場合、故障が検出されていない通常状態では、比較的低い多重化度で処理を行うことで平均的な多重化度を抑える一方、多重化実行している複数のパイプラインプロセッサに故障が検出されると、パイプラインプロセッサの多重化度を上げることで、より高い信頼性を確保することができる。
【0016】
本発明のパイプラインプロセッサにおける処理の実行は、通常は、多重化は二重化(DMR)とし、永久故障検出時の多重化は三重化(TMR)とするのが好ましい。つまり、通常時は、故障の有無が検出可能な二重化とし、故障が検出されると、故障が一時故障か永久故障かを判別するため命令の実行を再実行することができる。故障が一時故障の場合、再実行によって故障は回復する。再実行を繰り返しても故障が継続する場合、その故障は永久故障と判断し、永久故障したパイプラインプロセッサを特定可能な三重化(TMR)とするのが好ましい。ただし、多重化度がこれらに限定されるものではない。
【0017】
つまり、前記多重化度変更手段は、前記故障検出手段によってパイプラインプロセッサの一時故障が検出されても、パイプラインプロセッサの多重化度を上げず、パイプラインプロセッサの永久故障が検出されると、パイプラインプロセッサの多重化度を上げるものであるのが好ましい。
この場合、一時故障が検出されても多重化度は上がらず、永久故障が検出された場合に多重化度が上がる。つまり、一時故障は命令の再実行によって対処できるため、多重化度を上げる必要性は低い。そこで、一時故障があっても多重化度を上げずに、多重化度を抑制し、永久故障が検出されたときに多重化度を上げることで、時間平均的な多重化度を抑制しつつ信頼性を確保することができる。
【0018】
前記パイプラインプロセッサシステムは、パイプラインプロセッサの故障が検出されると、多重化実行している複数のパイプラインプロセッサのうち故障しているパイプラインプロセッサを特定する故障部位特定手段を更に備えるのが好ましい。
この場合、故障検出がなされると、多重化度が上がっている状態で故障しているパイプラインプロセッサを特定する処理が行えるため、故障している部位の特定が容易になる。
なお、故障検出手段の実装の例として、各パイプラインプロセッサの出力を2入力比較器で比較し、不一致となる比較結果に必ず含まれるパイプラインプロセッサが故障しているものと判断する方法がある。
【0019】
前記制御部は、多重化実行しているパイプラインプロセッサにおける永久故障が検出されると、永久故障をしているパイプラインプロセッサを多重化実行している複数のパイプラインプロセッサから切り離す故障部位切離手段を更に備えるのが好ましい。この場合、永久故障が検出されると、永久故障をしているパイプラインプロセッサを多重化実行している複数のパイプラインプロセッサから切り離すことができる。また、故障したパイプラインプロセッサを切り離すことで多重化実行しているパイプラインプロセッサの数が減少しても、故障部位検出のために予め多重化度が上げられているため、代替パイプラインプロセッサを追加した形となっており、永久故障が発生しても信頼性低下を防止できる。
【0020】
前記制御部は、前記故障部位切離手段によって切り離されたパイプラインプロセッサに対して、電源遮断を行う電源遮断手段を更に備えるのが好ましい。この場合、故障したパイプラインプロセッサに電源供給を行うことによる電力ロスを防止できる。
また、前記制御部は、電源遮断手段によって電源遮断されたプロセッサに対して電源再投入を行う電源再投入手段を更に備えるのが好ましい。切り離されたパイプラインプロセッサの電源遮断を行うことによって、NBTI等の特性劣化から回復することができる場合ある。したがって、電源遮断の後、必要に応じて電源再投入を行うことで、そのパイプラインプロセッサの利用が可能となる可能性がある。故障が、電源遮断によっても回復不可能なものであった場合、制御部はそのパイプラインプロセッサを、以後使用不可能なものとして取り扱うのが好ましい。
【0021】
前記制御部は、パイプラインプロセッサが他のパイプラインプロセッサとの多重化実行を行う高信頼性モードと、単一パイプラインプロセッサでパイプライン処理の実行を行う高性能モードと、を切り替える切替手段を更に備えるのが好ましい。この場合、高信頼性が必要ない場合には、高性能化が可能である。
【0022】
また、前記制御部は、パイプラインプロセッサが他のパイプラインプロセッサとの多重化実行を行う高信頼性モードと、複数のパイプラインプロセッサによる2−wayイン・オーダ実行スーパスカラモードと、を切り替える切替手段を更に備えるのが好ましい。この場合も、高信頼性が必要ない場合には、高性能化が可能である。
【発明の効果】
【0023】
本発明によれば、適応的に多重度を変更できるため、必要に応じて多重化度を高めたり、低くしたりすることができ、常に高い多重化度の回路を固定的に設ける場合に比べて、多重化コストを削減することができる。
【発明を実施するための最良の形態】
【0024】
以下、本発明の実施形態を図面に基づいて説明する。
[パイプラインプロセッサシステムの全体構成]
図1は、パイプラインプロセッサシステム(以下、単に「システム」という)の全体構成図を示している。このシステムは、複数のパイプラインプロセッサ(以下、単に「プロセッサ」ともいう)1a〜1eと、各プロセッサ1a〜1eの協調状態等を制御する制御回路(制御部)3と、各プロセッサ1a〜1eの周囲に位置するようにメッシュ状に形成された配線ネットワーク4と、を有している。
なお、図1においてパイプラインプロセッサ1a〜1eは、5個しか図示されていないが、実際には、システム内において2次元アレイ状に多数配置されている。
【0025】
[パイプラインプロセッサについて]
図2に示すように、各パイプラインプロセッサ1a〜1eは、プログラム・カウンタ+更新論理部10と、複数のパイプライン・ステージ11〜15と、を有している。なお、これらのパイプラインプロセッサの構成要素10〜15は、組み合わせ論理回路によって構成されている。また、複数のパイプラインプロセッサ1a〜1eは、それぞれ、プロセッサ内制御部21を有しており、このプロセッサ内制御部21は、命令の実行の制御やプロセッサの故障検出などを行う。
【0026】
複数のパイプライン・ステージ11〜15としては、命令キャッシュ11、デコード論理部12、レジスタ・ファイル13、ALU14、及びデータ・キャッシュ15が設けられている。
なお、命令キャッシュ11は、必要に応じて、図示しないプロセッサ外部のキャッシュから、配線ネットワーク4を介して、命令を取得し、保持する。なお、プロセッサ外部のキャッシュは、システム内に存在するが、複数のプロセッサ間で共有されるため、図2には示していない。
また、データ・キャッシュ15についても、図示しないプロセッサ外部のキャッシュへのライトバックが、配線ネットワーク4を介して行われる場合がある。
【0027】
各ステージ11〜15の出力は、各ステージ11〜15の後段に設けられたパイプライン・レジスタ16〜20に与えられて保持されるほか、プロセッサ外部の配線ネットワーク4へ出力されるとともに、後述の比較器11a〜15aへ出力される。
また、プログラム・カウンタ+更新論理部10も、配線ネットワーク4を介して、外部入力を受付可能であるとともに、配線ネットワーク4へ外部出力可能となっている。
【0028】
各パイプライン・ステージ11〜15は、それぞれ比較器11a〜15aを備えている。これらの比較器11a〜15aは、比較器11a〜15aが設けられているステージ11〜15の出力と、他のプロセッサにおける同一のステージ11〜15の出力と、を比較するものである。
【0029】
プロセッサ間で各ステージの出力の比較を行うため、各比較器11a〜15aは、比較器11a〜15aが設けられているステージ11〜15の出力を受け付け可能であるとともに、配線ネットワーク4を介して、他のプロセッサのステージ出力を外部入力として受け付け可能である。
比較器11a〜15aでの比較は、多重化実行している複数のプロセッサにおける同一ステージ11〜15の出力が一致するか否かを確認するためのものであり、一致しなければ、いずれかのプロセッサが故障していることになる。
このため、各比較器11a〜15aの出力(比較結果)は、プロセッサ内の制御部21に与えられ、その制御部21において、プロセッサ又はステージの故障の検出に用いられる。制御部21は、故障を検出すると、故障情報を出力する。故障情報は、配線ネットワーク4を介して、プロセッサ外の制御回路3に与えられる。
【0030】
また、各ステージ11〜15の後段に設けられたパイプライン・レジスタ16〜20の出力側は、それぞれ、配線ネットワーク4に接続されており、パイプライン・レジスタ16〜20にそれぞれ保持された各ステージ11〜15の出力を、他のプロセッサに与えることが可能である。
さらに、各ステージ11〜16への入力は、各ステージ11〜16の前段にあるパイプライン・レジスタ16〜20から受け取ることができるほか、配線ネットワーク4を介して、他のプロセッサのパイプライン・レジスタ16〜20から受け取ることもできる。
なお、プログラム・カウンタ+更新論理部10と命令キャッシュ11との間にも同様の配線ネットワーク4への接続が存在する。
【0031】
本実施形態では、上記のように、パイプライン・レジスタ16〜20に保持された各ステージ11〜15の出力が外部出力可能であるとともに、各ステージ11〜15の入力を他のプロセッサのパイプライン・レジスタ16〜20から受け取ることもできるように構成されているため、後述のステージ単位でのプロセッサの再構成が可能となっている。この再構成の詳細については後述する。
【0032】
[制御回路について]
図1の制御回路3は、各プロセッサ1a〜1eの協調状態を制御するため、各プロセッサ1a〜1eに対して動作モード(動作状態)を指示する機能と、ネットワーク4上の各スイッチ5,6にプロセッサ間の接続情報を指示して、接続状態を切り替える機能とを有している。
【0033】
図3に示すように、プロセッサ1a〜1eの動作モードとしては、単一モード(多重化なし)、二重化モード、三重化モード、2−wayイン・オーダ実行スーパスカラモード、及び電源遮断が設けられている。これらのモードの詳細については後述する。
制御回路3は、これらの動作モードを、各プロセッサ1a〜1eへ指示し、各プロセッサを指示した動作モードで実行させる。
【0034】
[配線ネットワークについて]
配線ネットワーク4は、プロセッサのプログラム・カウンタ+更新論理部10又は各ステージ11〜15の外部出力部10b〜15bを、それぞれ、他のプロセッサのプログラム・カウンタ+更新論理部10又は各ステージ11〜15の外部入力部10c〜15cに接続するための配線を有している。この配線ネットワーク4上には、あるプロセッサからの外部出力部10b〜15bからの出力を、どのプロセッサの外部入力部10c〜15cに与えるかを切り替えるスイッチ5,6が設けられている。
【0035】
制御回路3は、あるプロセッサの外部出力部10b〜15bからの出力が、そのプロセッサと協調動作(多重化実行又は2−wayイン・オーダ実行スーパスカラ)している他のプロセッサの対応する外部入力部10c〜15cに与えられるように、前記スイッチ5,6の切り替え制御を行う。
【0036】
したがって、二重化モード又は三重化モードのような多重化モードの場合には、配線ネットワーク4によって、あるプロセッサのあるステージの外部出力を、他のプロセッサにおいて対応するステージの比較器に与えることができる。
また、2−wayイン・オーダ実行スーパスカラモードの場合には、配線ネットワーク4によって、あるプロセッサのあるステージの外部出力を、他のプロセッサに直接与えることができる。
【0037】
さらに配線ネットワーク4は、プロセッサの各パイプライン・レジスタ16〜20の出力を、他のプロセッサにおける任意のステージ11〜15の入力に与えるための配線も含んでいる。なお、パイプライン・レジスタ16〜20の出力を、どのプロセッサのどのステージ11〜15の入力に与えるかは、スイッチ5,6によって切り替えられる。
これにより、あるプロセッサのあるステージの出力を保持するパイプライン・レジスタ16〜20から、他のプロセッサの次ステージの入力へ与えることが可能であり、後述のステージ単位でのプロセッサの再構成が可能となる。
なお、配線ネットワーク4は、比較器11a〜15aの出力(比較結果)を制御回路3に与えるための配線、制御回路3から動作モードを指示するための配線、その他システムの動作に必要な配線を含んでいる。
【0038】
[プロセッサの動作モード]
プロセッサ1a〜1eの前記動作モードのうち、前記二重化モードは、二つのプロセッサでパイプライン処理を二重化実行する高信頼性モードである(DMR)。この二重化モードでは、プロセッサの故障の検出は可能であるが、故障しているプロセッサの特定はできない。
前記三重化モードは、三つのプロセッサでパイプライン処理を三重化実行する高信頼性モードである(TMR)。この三重化モードでは、いずれか一つのプロセッサに故障が発生した場合、故障したプロセッサの特定が可能である。
【0039】
前記単一モードは、個々のプロセッサ1a〜1eが、それぞれ、単一パイプラインで動作するもの高性能モードである。システム内の複数のプロセッサが単一モードにあると、単一パイプラインプロセッサがマルチ・コア構成を採っていることになる。
【0040】
前記2−wayイン・オーダ実行スーパスカラモードは、2つのプロセッサを連結して、1スレッドより2命令を同時実行させて、連結された2つのプロセッサを、2−wayイン・オーダ実行スーパスカラプロセッサとして機能させる高性能モードである。
【0041】
前記電源遮断は、プロセッサへの電源を遮断した状態とするための休止モードであり、故障したプロセッサや動作不要なプロセッサの電源を遮断することで、電源供給が継続することによる特性劣化を防止することができる。
【0042】
各プロセッサ1a〜1eは、制御回路3からの指示により、上記各モードで処理を実行可能であり、そのモードは動的に切替可能である。
図3は、5個のプロセッサ1a〜1eの多重化構成(協調状態構成)を、動的に変更した例を示している。
【0043】
図3(a)では、5個のプロセッサ1a〜1eのうち、2個のプロセッサ1a,1bが二重化モードで動作し、他の2個のプロセッサ1c,1dが電源遮断となり、残りの1個のプロセッサ1eが単一モード(多重化なし)で動作している。
図3(b)は、図3(a)の状態から動的に構成が変更された状態を示している。図3(a)の状態において、二重化モードで実行中のプロセッサ1a,1bに永久故障が起きたという判断が下され、プロセッサ1cを追加して三重化モードに移行している。
図3(c)は、図3(b)の三重化モードによって永久故障がプロセッサ1aで発生したということが分かり、プロセッサ1aを多重化実行から切り離し、電源遮断としたものである。これにより、プロセッサ1b,1cは二重化実行となる。
【0044】
図5に示すように、二重化モードの場合、同一の処理(命令1、命令1’)が、2個のプロセッサ1a,1bで並列的にパイプライン処理される。また、二重化モードにある両プロセッサ1a,1bは、各ステージ11〜15の外部出力が、配線ネットワーク4を介して、他方のプロセッサ1a,1bのステージ11〜15の比較器11a〜15aに外部入力される。
これにより、両プロセッサ1a,1bのうち、いずれかのプロセッサ1a,1bのうちのいずれかのステージ11〜15の比較器11a〜15aにて、比較結果が不一致になると、プロセッサ内制御部21では、二重化モードの両プロセッサ1a,1bのいずれかが故障していることを検出することができる。
【0045】
故障が検出された場合、その故障が一時故障であれば、命令の再実行により正常な結果が得られる可能性が非常に高いため、両プロセッサ1a,1bは命令の再実行を行う。この命令の再実行を行う機構は、通常のプロセッサの制御部21に搭載される例外処理時の命令再実行の機構を拡張する形で行う。よって、この再実行は、比較器11aから15aにより故障が検出されるとプロセッサ内制御部21によって自動的に行われ、プロセッサ外の制御回路3は、故障が検出されたこと(故障情報)、及び、故障による再実行を行ったとの報告を受ける。
故障が繰り返し検出された場合(例えば、所定時間内に閾値を超える数の故障が検出された場合)、永久故障の可能性があるため、制御回路3によって永久故障であると判定される。そして、制御回路3は、故障しているプロセッサを特定して、そのプロセッサを多重化実行から切り離すため、三重化実行に移行するための指示をプロセッサ及びスイッチ5,6に対して出力する(図4参照)。三重化実行は、二重化実行している2個のプロセッサに1個のプロセッサを加えた計3個のプロセッサによって行われる。
【0046】
図6に示すように、三重化実行を行う三重化モードの場合、同一の処理(命令1、命令1’、命令1”)が、3個のプロセッサ1a,1b,1cで並列的にパイプライン処理される。また、三重化モードにある3個のプロセッサ1a,1b,1cは、各ステージ11〜15の外部出力が、配線ネットワーク4を介して、他のプロセッサ1a,1b,1cのステージ11〜15の比較器11a〜15aに外部入力される。
【0047】
ここで、3個のプロセッサ1a,1b,1cのうち、例えば、プロセッサ1cにて、故障が発生し、プロセッサ1a,1bは正常であるとする。
この場合、プロセッサ1aとプロセッサ1bの各ステージ出力を比較するためのプロセッサ1bの比較器11a〜15aは、出力一致の比較結果を出力する。これに対し、プロセッサ1cの出力を比較対象とするプロセッサ1a,1cの比較器では、出力不一致の比較結果を出力する。これらの比較結果は、各プロセッサのプロセッサ内制御部21を介して、制御回路3へ送信される。これにより、制御回路3は、出力が一致したプロセッサ1a,1bが正常であり、プロセッサ1cが故障していることを検出することができる。
【0048】
続いて、制御回路3では、故障(永久故障)していると特定されたプロセッサ1cを、三重化実行から切り離すべく、プロセッサ1cを電源遮断(休止モード)とするとともに、残りの2つのプロセッサ1a,1bを二重化モードに戻す(図4参照)。
【0049】
このように、本実施形態では、通常は、二重化モードで実行し、故障が検出されると故障部位を特定するために三重化実行し、故障部位が特定されると、故障していない残りのプロセッサによる二重化実行に戻すことで、平均的な多重化度を抑えつつ、三重化実行を常に行う場合と同様の故障部位特定が可能となる。そして、通常は、多重化度を低く抑えることができるため、余ったプロセッサを別プロセッサとして利用したり、電源遮断して消費電力の削減やプロセッサの特性劣化を防止したりすることができる。
【0050】
また、本実施形態では、二重化モードにおいて故障が検出されると、常に三重化モードに移行するのではなく、永久故障であることが検出(例えば、所定時間内に閾値を超える数の故障が検出)されてから、三重化モードに移行するため、多重化度が増加する頻度が抑えられている。
つまり、制御回路3では、単に故障が検出されても、前記所定時間内における故障検出回数が、閾値未満であった場合には、一時故障とみなし、二重化モードを維持し、前記所定時間内における故障検出回数が、閾値を超えた場合には、永久故障が検出されたとみなし、永久故障のときにだけ三重化モードに移行する。
【0051】
さらに、本実施形態では、制御回路3は、故障により多重化実行から切り離されて、電源遮断となったプロセッサ1cに対して、電源遮断してから所定時間が経過するか、電源遮断後の必要な時に、電源再投入を行う。
エレクトロ・マイグレーションによる永久故障の場合、故障から回復することはないが、NBTI等の特性劣化の場合、永久故障と判定されても、プロセッサ1cへの通電を停止すると特性が回復して、正常に動作することがある。したがって、一旦、永久故障と判定されたプロセッサも、電源遮断/電源再投入によって、正常に動作させることが可能である。
なお、電源遮断/電源再投入を行っても、故障が検出される場合、制御回路3は、エレクトロ・マイグレーション等の回復しない永久故障とみなして、電源再投入を行わないようにプロセッサを制御するのが望ましい。
【0052】
また、本実施形態では、プロセッサの動作モードとして、高信頼性モードである多重化モード(二重化モード又は三重化モード)と、非多重化モード(単一モード、2−wayイン・オーダ実行スーパスカラモード、又は電源遮断)と、切り替えることが可能であるため、高信頼性が必要な場合には多重化モードとし、高信頼性が必要ない場合には非多重化モードとすることができる。
【0053】
例えば、暗号処理、データ圧縮時など、高信頼性が必要なアプリケーション実行時や、放射線の影響を受けやすい飛行中の飛行機の中など故障発生確率が高い環境中の動作時には、信頼性の高い多重化モードとし、それ以外のときには、非多重化モードとすることができる。
【0054】
しかも、非多重化モードとしても、高性能モード(単一モード、又は2−wayイン・オーダ実行スーパスカラモード)と、休止モード(電源遮断)と、を選択できるため、状況に応じて、多重化実行していないプロセッサを高性能モードで動作させて高い性能を確保したり、多重化実行していないプロセッサを休止モードとして消費電力を削減したり特性劣化を防止したりすることができる。
【0055】
図7は、2個のプロセッサ1a,1bを、それぞれ、単一モードで動作させた状態を示している。両プロセッサ1a,1bは、それぞれ、別個のパイプラインプロセッサとして動作するため、別スレッドの動作によって、多重化した場合よりも高性能な動作を行うことができる。
なお、単一モードの場合、各ステージ11〜15の出力は、他のプロセッサに与える必要はない。
【0056】
図8は、2個のプロセッサ1a,1bを、2−wayイン・オーダ実行スーパスカラモードで動作させた状態を示している。ここでは、プロセッサ1aで実行中のスレッドにより2命令(命令1,命令2)を発行する。プロセッサ1bは、多重化実行時には各パイプラインの結果を外部出力する外部出力部10b〜15bを利用してプロセッサ1aとの間でデータのやりとりを行い、データ依存チェック、レジスタ読み出しなどを行う。
2−wayイン・オーダ実行スーパスカラモードにおいても、多重化した場合よりも高性能な動作を行うことができる。
【0057】
[プロセッサのステージ単位での再構成]
本実施形態のシステムでは、ステージ毎に設けられた比較器11a〜15aによって、制御回路4では、プロセッサ単位だけでなく、ステージ単位で故障を検出することもできる。故障は、ステージ単位で起こることもあるため、例えば、一つのプロセッサを構成する複数のステージのうち、一つのステージだけが故障した場合に、そのプロセッサ全体の電源遮断を行って使用中止とした場合、故障していない正常なステージも使用中止となり、プロセッサ利用効率が低下する。
【0058】
そこで、故障したステージ以外の正常なステージ同士を組み合わせて、新たにパイプラインプロセッサを再構成することで、システム内のプロセッサ利用効率が上昇する。
例えば、第1のプロセッサ1aでは、デコード論理部12とレジスタ・ファイル13が故障しているものの、他のステージ10,11,14,15は正常であるとする。また、第2のプロセッサ1bでは、ALU14だけが故障し、他のステージ10,11,12,15は正常であるとする。
この場合、例えば、第2のプロセッサ1bのプログラム・カウンタ更新論理部10及び命令キャッシュ11及びデコード論理部12及びレジスタ・ファイル13、第1のプロセッサ1aのALU14及びデータ・キャッシュ15を、一つの新たなパイプラインプロセッサとして再構成することで、故障していないステージを有効活用することができる。
なお、各ステージ11〜15の出力を保持するパイプライン・レジスタ16〜20の出力が、配線ネットワーク4に接続されているため、このような再構成は、パイプライン・レジスタ16〜20の出力を入力として与えるステージを再構成の仕方に合わせて切り替えるように、制御回路3がスイッチ5,6を制御すればよい。
【0059】
なお、本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
例えば、プロセッサの故障を検出する機能は、各プロセッサに設ける必要はなく、比較器の出力を制御回路3が集約して、故障を検出するようにしてもよい。ただし、故障(一時故障)検出時に命令再実行を行う場合には、上記実施形態のように各プロセッサ内部で故障検出及び命令再実行を行う方が、故障時に命令再実行を即座に行えるため好ましい。
また、システム内において、多重化実行しているプロセッサは、一組である必要はなく、多数組存在し得る。
【図面の簡単な説明】
【0060】
【図1】パイプラインプロセッサシステムの全体構成図である。
【図2】パイプラインプロセッサの構成図である。
【図3】プロセッサのモード切替を示す状態遷移図である。
【図4】多重化構成を動的に変更する様子を示す模式図である。
【図5】二重化実行の説明図である。
【図6】三重化実行の説明図である。
【図7】単一パイプラインのプロセッサのマルチ・コア構成を示す説明図である。
【図8】2−wayイン・オーダ実行スーパスカラを示す説明図である。
【図9】(a)は一般的な多重化の仕方を示す説明図であり、(b)は一般的な多重化における問題点を示す説明図である。
【符号の説明】
【0061】
1a〜1e パイプラインプロセッサ
3 制御回路(制御部)
4 配線ネットワーク
5,6 スイッチ

【特許請求の範囲】
【請求項1】
多重化実行が可能な複数のパイプラインプロセッサと、
前記複数のパイプラインプロセッサの多重化度を適応的に変更する制御部と、
を備えていることを特徴とする多重化実行に対してスケーラブルなパイプラインプロセッサシステム。
【請求項2】
多重化実行している複数のパイプラインプロセッサにおける故障を検出する故障検出手段を更に備え、
前記制御部は、前記故障検出手段によって故障が検出されると、パイプラインプロセッサの多重化度を上げる多重化度変更手段
を備える請求項1記載のパイプラインプロセッサシステム。
【請求項3】
前記多重化度変更手段は、パイプラインプロセッサの一時故障が検出されても、パイプラインプロセッサの多重化度を上げず、パイプラインプロセッサの永久故障が検出されると、パイプラインプロセッサの多重化度を上げるものである請求項2記載のパイプラインプロセッサシステム。
【請求項4】
パイプラインプロセッサの故障が検出されると、多重化実行している複数のパイプラインプロセッサのうち故障しているパイプラインプロセッサを特定する故障部位特定手段
を更に備える請求項2又は3記載のパイプラインプロセッサシステム。
【請求項5】
前記制御部は、
多重化実行しているパイプラインプロセッサにおける永久故障が検出されると、永久故障をしているパイプラインプロセッサを多重化実行している複数のパイプラインプロセッサから切り離す故障部位切離手段
を更に備える請求項2又は3記載のパイプラインプロセッサシステム。
【請求項6】
前記制御部は、
前記故障部位切離手段によって切り離されたパイプラインプロセッサに対して、電源遮断を行う電源遮断手段
を更に備える請求項5記載のパイプラインプロセッサシステム。
【請求項7】
前記制御部は、
電源遮断手段によって電源遮断されたプロセッサに対して、電源再投入を行う電源再投入手段
を更に備える請求項6記載のパイプラインプロセッサシステム。
【請求項8】
前記制御部は、
パイプラインプロセッサが他のパイプラインプロセッサとの多重化実行を行う高信頼性モードと、単一パイプラインプロセッサでパイプライン処理の実行を行う高性能モードと、を切り替える切替手段
を更に備える請求項1〜7のいずれか1項に記載のパイプラインプロセッサシステム。
【請求項9】
前記制御部は、
パイプラインプロセッサが他のパイプラインプロセッサとの多重化実行を行う高信頼性モードと、複数のパイプラインプロセッサによる2−wayイン・オーダ実行スーパスカラモードと、を切り替える切替手段
を更に備える請求項1〜8のいずれか1項に記載のパイプラインプロセッサシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−49589(P2010−49589A)
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2008−214900(P2008−214900)
【出願日】平成20年8月25日(2008.8.25)
【出願人】(504132272)国立大学法人京都大学 (1,269)
【Fターム(参考)】