(57)【要約】【課題】高信頼かつリアルタイム性に優れたマルチコアプロセッサのアーキテクチャを提供する。【解決手段】ワーキングレジスタとシャドウレジスタの間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送を行う。バッファメモリは、レジスタサイズおよびキューサイズに関係なく、所定サイクルで、各プロセッサコアのストアキューの複製データ及びワーキングレジスタの複製データを、プロセッサコア間で比較する。故障検出・回復コントローラは、バッファメモリにおける比較結果に従い、各プロセッサコアに対して、チェックポイントにおいて、バックアップ命令信号、あるいは、ロールバックを行うリストア命令信号を出力する。また、バッファメモリにおける比較結果に従い、ストアキューからワークメモリへデータ転送を行うライトバック命令信号、あるいは、ストアキューを無効化するキャンセル命令信号を出力する。【選択図】図１
2014096127.tif 000002
【特許請求の範囲】
【請求項１】
２以上のプロセッサコアを１個のパッケージに集約したマルチコアプロセッサにおいて、
１）各プロセッサコアは、
汎用レジスタ及び状態レジスタから構成されるワーキングレジスタと、
該ワーキングレジスタと同一の種類及びビット数のレジスタを有するシャドウレジスタと、
チェックポイント周期内のストアデータを蓄積するストアキューと、
前記ストアデータを記憶するワークメモリと、
を備え、
前記ワーキングレジスタと前記シャドウレジスタの間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送が可能であり、
２）前記マルチコアプロセッサは、
各プロセッサコアの前記ストアキューの複製データ及び前記ワーキングレジスタの複製データを、プロセッサコア間で比較するバッファメモリと、
該バッファメモリにおける比較結果に従い、
各プロセッサコアに対して、チェックポイントにおいて、
前記ワーキングレジスタから前記シャドウレジスタへデータ転送を行うバックアップ命令信号、あるいは、前記シャドウレジスタから前記ワーキングレジスタへデータ転送をしてロールバックを行うリストア命令信号、を出力する、
及び、
前記ストアキューから前記ワークメモリへデータ転送を行うライトバック命令信号、あるいは、前記ストアキューを無効化するキャンセル命令信号、を出力する、故障検出・回復コントローラと、
を備え、
前記バッファメモリは、レジスタサイズおよびキューサイズに関係なく、所定サイクルで前記ストアキューの複製データ及び前記ワーキングレジスタの複製データを比較し得る、
ことを特徴とする高信頼マルチコアプロセッサ。
【請求項２】
２以上のプロセッサコアを１個のパッケージに集約したマルチコアプロセッサにおいて、
１）各プロセッサコアは、
汎用レジスタ及び状態レジスタから構成されるワーキングレジスタと、
該ワーキングレジスタと同一の種類及びビット数のレジスタを有するシャドウレジスタと、
チェックポイント周期内のストアデータを蓄積するストアキューと、
前記ストアデータを記憶するワークメモリと、
を備え、
前記ワーキングレジスタと前記シャドウレジスタの間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送が可能であり、
２）レジスタサイズおよびキューサイズに関係なく、所定サイクルで各プロセッサコアの前記ストアキューのデータおよび前記ワーキングレジスタのデータを、プロセッサコア間で比較し、
３）前記マルチコアプロセッサが備える故障検出・回復コントローラが、
上記のプロセッサコア間の比較結果に従い、
各プロセッサコアに対して、チェックポイントにおいて、
前記ワーキングレジスタから前記シャドウレジスタへデータ転送を行うバックアップ命令信号、あるいは、前記シャドウレジスタから前記ワーキングレジスタへデータ転送をしてロールバックを行うリストア命令信号、を出力する、
及び、
前記ストアキューから前記ワークメモリへデータ転送を行うライトバック命令信号、あるいは、前記ストアキューを無効化するキャンセル命令信号、を出力する、
ことを特徴とする高信頼マルチコアプロセッサ。
【請求項３】
請求項２に記載のマルチコアプロセッサにおいて、
さらに、メモリサイズに関係なく、所定サイクルで各プロセッサコアの前記ワークメモリのデータをプロセッサコア間で比較し、
比較結果を前記故障検出・回復コントローラに出力する、
ことを特徴とする高信頼マルチコアプロセッサ。
【請求項４】
２以上のプロセッサコアを１個のパッケージに集約したマルチコアプロセッサにおいて、
１）各プロセッサコアは、
汎用レジスタ及び状態レジスタから構成されるワーキングレジスタと、
該ワーキングレジスタと同一の種類及びビット数のレジスタを有するシャドウレジスタと、
チェックポイント周期内のストアデータを蓄積するストアキューと、
前記ストアデータを記憶するワークメモリと、
を備え、
前記ワーキングレジスタと前記シャドウレジスタの間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送が可能であり、
２）キューサイズに関係なく、所定サイクルで各プロセッサコアの前記ストアキューのデータをプロセッサコア間で比較し、
３）前記マルチコアプロセッサが備える故障検出・回復コントローラが、
上記のプロセッサコア間の比較結果に従い、
各プロセッサコアに対して、チェックポイントにおいて、
前記ワーキングレジスタから前記シャドウレジスタへデータ転送を行うバックアップ命令信号、あるいは、前記シャドウレジスタから前記ワーキングレジスタへデータ転送をしてロールバックを行うリストア命令信号、を出力する、
及び、
前記ストアキューから前記ワークメモリへデータ転送を行うライトバック命令信号、あるいは、前記ストアキューを無効化するキャンセル命令信号、を出力する、
ことを特徴とする高信頼マルチコアプロセッサ。
【請求項５】
前記マルチコアプロセッサがデュアルコアプロセッサであり、
前記ワーキングレジスタと前記シャドウレジスタは、
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、
各プロセッサコアの前記ワーキングレジスタと前記シャドウレジスタが、隣接するメモリセルペアになるように接続され、
前記バッファメモリは、
上記アレイ状に配列させた回路で構成され、かつ、隣接するメモリセルペアは、それぞれ異なるプロセッサコアの前記ストアキューの複製データのペア、およびそれぞれ異なるプロセッサコアの前記ワーキングレジスタの複製データのペアになるように接続された、
ことを特徴とする請求項１に記載の高信頼マルチコアプロセッサ。
【請求項６】
前記マルチコアプロセッサがデュアルコアプロセッサであり、
前記ワーキングレジスタと前記シャドウレジスタは、
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが少なくとも４段隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する少なくとも３本のモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、
各プロセッサコアの前記ワーキングレジスタと前記シャドウレジスタが、隣接するメモリセルペアになるように接続され、
かつ、各プロセッサコアのそれぞれの前記ワーキングレジスタが、隣接するメモリセルペアになるように接続され、
各プロセッサコアの前記ストアキューが、
上記アレイ状に配列させた回路で構成され、かつ、それぞれの前記ストアキューが、隣接するメモリセルペアになるように接続された、
ことを特徴とする請求項２に記載の高信頼マルチコアプロセッサ。
【請求項７】
前記マルチコアプロセッサがデュアルコアプロセッサであり、
前記ワーキングレジスタと前記シャドウレジスタは、
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが少なくとも４段隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する少なくとも３本のモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、
各プロセッサコアの前記ワーキングレジスタと前記シャドウレジスタが、隣接するメモリセルペアになるように接続され、
かつ、各プロセッサコアのそれぞれの前記ワーキングレジスタが、隣接するメモリセルペアになるように接続され、
各プロセッサコアの前記ストアキューが、
上記アレイ状に配列させた回路で構成され、かつ、それぞれの前記ストアキューが、隣接するメモリセルペアになるように接続され、
各プロセッサコアの前記ワークメモリが、
上記アレイ状に配列させた回路で構成され、かつ、それぞれの前記ワークメモリが、隣接するメモリセルペアになるように接続され、
ことを特徴とする請求項３に記載の高信頼マルチコアプロセッサ。
【請求項８】
前記マルチコアプロセッサがデュアルコアプロセッサであり、
前記ワーキングレジスタと前記シャドウレジスタは、
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、
各プロセッサコアの前記ワーキングレジスタと前記シャドウレジスタが、隣接するメモリセルペアになるように接続され、
各プロセッサコアの前記ストアキューが、
上記アレイ状に配列させた回路で構成され、かつ、それぞれの前記ストアキューが、隣接するメモリセルペアになるように接続された、
ことを特徴とする請求項４に記載の高信頼マルチコアプロセッサ。
【請求項９】
前記所定のサイクルが４サイクルである、
ことを特徴とする請求項５〜８のいずれかに記載の高信頼マルチコアプロセッサ。
【請求項１０】
前記ストアキュー及び前記ワークメモリは、
各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、
１ビットが１個の前記メモリセルで構成される通常モード（１ビット／１セルモード）と、１ビットがｎ（ｎは２以上）個の前記メモリセルを連結して構成される高信頼モード（１ビット／ｎセルモード）とを動的に切り替えることができ、前記１ビット／ｎセルモードに切り替えることにより、１ビットの動作安定性の増大、読出し動作のセル電流の増大（読出し動作の高速化）、ビットエラーの自己修復が行い得ることを特徴とする請求項１〜９のいずれかに記載の高信頼マルチコアプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低遅延・低消費電力での多重化冗長実行を可能にする高信頼マルチコアプロセッサに関する技術である。
【背景技術】
【０００２】
従来、並列コンピュータは、複数のプロセッサを結合したマルチプロセッサが主流であったが、近年は１チップのＣＰＵ上に複数のプロセッサコアが搭載されたマルチコアプロセッサが普及している。例えば、パソコンなどクライアントコンピュータではデュアルコア（２コア）プロセッサやクワッドコア（４コア）プロセッサが使用されており、サーバコンピュータでは８コアプロセッサも普及している。
このようなマルチコアプロセッサでは、各プロセッサコアは基本的に独立し、それぞれのコアは他のコアに影響されることなく動作して、計算処理を複数のコアで分担して行うことにより性能向上を図る。また、産業用途で用いられるマルチコアプロセッサの中には、信頼性向上のために、各プロセッサコアは同じ計算処理を行い、チェックポイントと呼ばれるタイミングでお互いの計算処理結果を照合し、不一致の場合は記録してあるチェックポイントにまでデータをロールバックし、改めて処理を開始する。
【０００３】
このような高信頼性が求められるマルチコアプロセッサの例として、従来から知られている２重化冗長（ＤＭＲ：Dual
Modular Redundancy）のマルチコアプロセッサについて説明する。
図１３に、従来のマルチコアプロセッサのアーキテクチャを示す。また、図１４に、従来のマルチコアプロセッサの故障検出・回復シーケンスのタイミングチャートを示す。
【０００４】
従来のマルチコアプロセッサのアーキテクチャでは、チェックポイント周期内のワーキングレジスタの更新内容とストアキューへの書込み内容を３２ビットＣＲＣ（Cyclic Redundancy Check）コードに符号化し、それぞれのプロセッサコアにおいて生成された３２ビットＣＲＣコードを比較することによって、２つのプロセッサコアの計算処理結果の比較を行う（特許文献６を参照）。比較結果が一致であれば、ストアキューの内容をワークメモリへライトバックし、また、ワーキングレジスタの内容を、バスを介してシャドウレジスタへバックアップを行う。
【０００５】
一方、比較結果が不一致であれば、ストアキューのエントリを無効化し、ロールバックを行うために、再びバスを介して、シャドウレジスタからワーキングレジスタへのデータのリストアを行う。このようにバックアップおよびリストアにかかる時間は、バスを介するため、バックアップすべきレジスタの本数・サイズに依存することになる。通常、従来のマルチコアプロセッサのアーキテクチャの場合、バックアップおよびリストアにかかる時間は２０〜５０サイクルが必要となり、リアルタイム性の弊害になっていた。
また、チェックポイント周期内のワーキングレジスタの更新内容とストアキューへの書込み内容を、毎周期、３２ビットＣＲＣコードに符号化する演算を行わなければならず、ＣＰＵのオーバーヘッドになっていた。
このような背景から、ＤＭＲのマルチコアプロセッサに関して、高信頼かつリアルタイム性に優れた新規なマルチコアプロセッサのアーキテクチャが求められている。
【０００６】
一方、近年のＳＲＡＭ等のメモリセルは、ＳｏＣに搭載されるＣＭＯＳプロセス技術が進展し、集積回路のスケーリングサイズが縮小され、より高いチップ密度と低いチップコストが実現され、メモリ容量が増大している。スケーリングサイズの縮小は、ＳＲＡＭ等のメモリセルを構成するトランジスタの閾値電圧のばらつきを拡大し、メモリセルにおける読み出しや書き込みのノイズマージンを低下させ、メモリセル動作を不安定性化し、ビット誤り率を増大させている。
【０００７】
上記状況に鑑みて、本発明者らは、アプリケーションやメモリ状況に応じてメモリセルのビット信頼性を動的に変化させることができ、動作の安定性を確保して低消費電力化および高信頼性化を実現できるメモリを提供することを目的として、１ビットが１個のメモリセルで構成されるモード（以下「通常モード」と称する）と、１ビットが２個のメモリセルを連結して構成されるモード（以下「高信頼モード」と称する）とを動的に切り替えることができ、通常モードから高信頼モードに切り替えることにより、１ビットの動作安定性の増大、読出し動作のセル電流の増大、ビットエラーの自己修復が可能なメモリセルを提案し（特許文献２）、また提案メモリの活用方法を様々提案してきた（例えば、特許文献３〜６を参照。）。
【０００８】
かかる提案のメモリセルの具体的な回路構成は、図２に示すように、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通が制御し得る１本のワードラインとから構成されるメモリセルにおいて、隣接する２つのメモリセルのデータ保持ノード間に、１対のＰ型ＭＯＳトランジスタと、該Ｐ型ＭＯＳトランジスタが導通するように制御し得るモード制御ラインを追加した構成とされる。
【０００９】
ここで、図２のメモリセルの回路動作を簡単に説明する。図２に示すメモリセル（ＭＣ０１）は、電源電位ＶＤＤＡおよび接地電位の間に直列に接続されるＰ型ＭＯＳトランジスタ（Ｍ００）およびＮ型ＭＯＳトランジスタ（Ｍ０２）と、電源電位ＶＤＤＡおよび接地電位の間に直列に接続されるＰ型ＭＯＳトランジスタ（Ｍ０１）およびＮ型ＭＯＳトランジスタ（Ｍ０３）とからなるラッチ回路を構成している。メモリセル（ＭＣ０１）自体は、一般的な６トランジスタの構成のメモリセルである。
メモリセル（ＭＣ１０）も同様に、電源電位ＶＤＤＢおよび接地電位の間に直列に接続されるＰ型ＭＯＳトランジスタ（Ｍ１０）およびＮ型ＭＯＳトランジスタ（Ｍ１２）と、電源電位ＶＤＤＢおよび接地電位の間に直列に接続されるＰ型ＭＯＳトランジスタ（Ｍ１１）およびＮ型ＭＯＳトランジスタ（Ｍ１３）とからなるラッチ回路を構成している。メモリセル（ＭＣ１０）自体も、一般的な６トランジスタの構成のメモリセルである。
【００１０】
メモリセル（ＭＣ０１）では、Ｐ型ＭＯＳトランジスタ（Ｍ００）およびＮ型ＭＯＳトランジスタ（Ｍ０２）のゲート端子は、共にＰ型ＭＯＳトランジスタ（Ｍ０１）およびＮ型ＭＯＳトランジスタ（Ｍ０３）のノード（Ｎ０１）に接続されている。また、Ｐ型ＭＯＳトランジスタ（Ｍ０１）およびＮ型ＭＯＳトランジスタ（Ｍ０３）のゲート端子は、共にＰ型ＭＯＳトランジスタ（Ｍ００）およびＮ型ＭＯＳトランジスタ（Ｍ０２）のノード（Ｎ００）に接続されている。このようにＭ００〜Ｍ０３のトランジスタはクロスカップル接続されているため、Ｐ型ＭＯＳトランジスタ（Ｍ００，Ｍ０１）は負荷トランジスタとして動作し、Ｎ型ＭＯＳトランジスタ（Ｍ０２，Ｍ０３）は駆動トランジスタとして動作する。メモリセル（ＭＣ１０）も同様である。
【００１１】
また、メモリセル（ＭＣ０１）は、相補なビットライン（ＢＬＡ，ＢＬ＿ＮＡ）と、ノード（Ｎ００，Ｎ０１）との間にそれぞれ接続されたＮ型ＭＯＳトランジスタ（Ｍ０４、Ｍ０５）のスイッチ部を備える。Ｎ型ＭＯＳトランジスタ（Ｍ０４，Ｍ０５）のゲート端子は、共に共通のワードライン（ＷＬＡ）に接続されており、Ｎ型ＭＯＳトランジスタ（Ｍ０４，Ｍ０５）のゲート電位はワードライン（ＷＬＡ）により制御される。すわなち、メモリセル（ＭＣ０１）においては、Ｐ型ＭＯＳトランジスタ（Ｍ００，Ｍ０１）を負荷トランジスタとし、Ｎ型ＭＯＳトランジスタ（Ｍ０２，Ｍ０３）を駆動トランジスタし、Ｎ型ＭＯＳトランジスタ（Ｍ０４，Ｍ０５）をスイッチ部として動作する。
【００１２】
また、メモリセル（ＭＣ１０）も、相補なビットライン（ＢＬＢ，ＢＬ＿ＮＢ）と、ノード（Ｎ１０，Ｎ１１）との間にそれぞれ接続されたＮ型ＭＯＳトランジスタ（Ｍ１４、Ｍ１５）のスイッチ部を備える。Ｎ型ＭＯＳトランジスタ（Ｍ１４，Ｍ１５）のゲート端子は、共に共通のワードライン（ＷＬＢ）に接続されており、Ｎ型ＭＯＳトランジスタ（Ｍ１４，Ｍ１５）のゲート電位はワードライン（ＷＬＢ）により制御される。
【００１３】
そして、メモリセル（ＭＣ０１，ＭＣ１０）のデータ保持ノード間（Ｎ００とＮ１０の間、Ｎ０１とＮ１１の間）に、モード制御スイッチ部となる１対のＰ型ＭＯＳトランジスタ（Ｍ２０、Ｍ２１）が設けられ、このＰ型ＭＯＳトランジスタ（Ｍ２０、Ｍ２１）の導通を制御する１本のモード制御ライン（ＣＴＲＬ）が設けられている。
【００１４】
以上のような回路構成のメモリセル（以下、「提案メモリセル」と称する）では、１ビットのデータをメモリセル（ＭＣ０１）に記憶する場合と、１ビットのデータをメモリセル（ＭＣ０１）とメモリセル（ＭＣ１０）の２つのメモリセルに記憶する場合とを、モード制御ライン（ＣＴＲＬ）を用いて、使い分けることが可能である。上記の提案メモリセルは、１ビットが１個のメモリセルで構成される通常モードと、１ビットが２個のメモリセルを連結して構成される高信頼モードの２つの状態を有し、メモリセルのビット信頼性を動的に変化させることができ、動作の安定性を確保して低消費電力化および高信頼性化を実現する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平０７−２３０３９２号公報
【特許文献２】再公表２００９／０８８０２０号公報
【特許文献３】国際公開パンフレットＷＯ２０１２／０２３２７７
【特許文献４】特開２０１０−２３７８２０号公報
【特許文献５】特開２０１０−２３８２８３号公報
【特許文献６】特開２０１２−０７４１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
上述したように、従来のＤＭＲのマルチコアプロセッサでは、バックアップおよびリストアにかかる時間は、レジスタサイズやキューサイズに依存し、２０〜５０サイクルが必要となり、リアルタイム性の弊害になっていた。また、チェックポイント周期内のワーキングレジスタの更新内容とストアキューへの書込み内容を、毎周期、３２ビットＣＲＣコードに符号化する演算を行わなければならず、ＣＰＵの消費電力オーバーヘッドになっていた。
上記状況に鑑みて、本発明は、高信頼かつリアルタイム性に優れたマルチコアプロセッサのアーキテクチャを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、本発明の第１の観点の高信頼マルチコアプロセッサは、２以上のプロセッサコアを１個のパッケージに集約したマルチコアプロセッサにおいて、各プロセッサコアは、以下のａ）〜ｄ）を備える。そして、ワーキングレジスタとシャドウレジスタの間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送を行える。
ａ）汎用レジスタ及び状態レジスタから構成されるワーキングレジスタ
ｂ）該ワーキングレジスタと同一の種類及びビット数のレジスタを有するシャドウレジスタ
ｃ）チェックポイント周期内のストアデータを蓄積するストアキュー
ｄ）ストアデータを記憶するワークメモリ
【００１８】
さらに、マルチコアプロセッサは、各プロセッサコアのストアキューの複製データ及びワーキングレジスタの複製データを、プロセッサコア間で比較するバッファメモリを備える。
バッファメモリは、レジスタサイズおよびキューサイズに関係なく、所定サイクルでストアキューの複製データ及びワーキングレジスタの複製データを比較する。
【００１９】
また、マルチコアプロセッサが備える故障検出・回復コントローラは、バッファメモリにおける比較結果に従い、各プロセッサコアに対して、チェックポイントにおいて、ワーキングレジスタからシャドウレジスタへデータ転送を行うバックアップ命令信号、あるいは、シャドウレジスタからワーキングレジスタへデータ転送をしてロールバックを行うリストア命令信号を出力する。故障検出・回復コントローラは、バッファメモリにおける比較結果に従い、ストアキューからワークメモリへデータ転送を行うライトバック命令信号、あるいは、ストアキューを無効化するキャンセル命令信号を出力する。
【００２０】
次に、本発明の第２の観点の高信頼マルチコアプロセッサは、２以上のプロセッサコアを１個のパッケージに集約したマルチコアプロセッサにおいて、各プロセッサコアは、以下のａ）〜ｄ）を備える。そして、ワーキングレジスタとシャドウレジスタの間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送を行える。
ａ）汎用レジスタ及び状態レジスタから構成されるワーキングレジスタ
ｂ）該ワーキングレジスタと同一の種類及びビット数のレジスタを有するシャドウレジスタ
ｃ）チェックポイント周期内のストアデータを蓄積するストアキュー
ｄ）ストアデータを記憶するワークメモリ
【００２１】
そして、レジスタサイズおよびキューサイズに関係なく、所定サイクルで各プロセッサコアのストアキューのデータおよびワーキングレジスタのデータを、プロセッサコア間で比較する。
さらに、マルチコアプロセッサが備える故障検出・回復コントローラが、プロセッサコア間の比較結果に従い、各プロセッサコアに対して、チェックポイントにおいて、ワーキングレジスタからシャドウレジスタへデータ転送を行うバックアップ命令信号、あるいは、シャドウレジスタからワーキングレジスタへデータ転送をしてロールバックを行うリストア命令信号を出力する。故障検出・回復コントローラは、バッファメモリにおける比較結果に従い、ストアキューからワークメモリへデータ転送を行うライトバック命令信号、あるいは、ストアキューを無効化するキャンセル命令信号を出力する。
【００２２】
次に、本発明の第３の観点の高信頼マルチコアプロセッサは、上述の第２の観点の高信頼マルチコアプロセッサにおいて、さらに、メモリサイズに関係なく、所定サイクルで各プロセッサコアのワークメモリのデータをプロセッサコア間で比較し、その比較結果を故障検出・回復コントローラに出力することを特徴とする。
【００２３】
次に、本発明の第４の観点の高信頼マルチコアプロセッサは、２以上のプロセッサコアを１個のパッケージに集約したマルチコアプロセッサにおいて、各プロセッサコアは、以下のａ）〜ｄ）を備える。そして、ワーキングレジスタとシャドウレジスタの間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送を行える。
ａ）汎用レジスタ及び状態レジスタから構成されるワーキングレジスタ
ｂ）該ワーキングレジスタと同一の種類及びビット数のレジスタを有するシャドウレジスタ
ｃ）チェックポイント周期内のストアデータを蓄積するストアキュー
ｄ）ストアデータを記憶するワークメモリ
【００２４】
そして、キューサイズに関係なく、所定サイクルで各プロセッサコアのストアキューのデータをプロセッサコア間で比較する。
さらに、マルチコアプロセッサが備える故障検出・回復コントローラが、プロセッサコア間の比較結果に従い、各プロセッサコアに対して、チェックポイントにおいて、ワーキングレジスタからシャドウレジスタへデータ転送を行うバックアップ命令信号、あるいは、シャドウレジスタからワーキングレジスタへデータ転送をしてロールバックを行うリストア命令信号を出力する。故障検出・回復コントローラは、バッファメモリにおける比較結果に従い、ストアキューからワークメモリへデータ転送を行うライトバック命令信号、あるいは、ストアキューを無効化するキャンセル命令信号を出力する。
【００２５】
また、本発明の第１の観点の高信頼マルチコアプロセッサにおいて、マルチコアプロセッサがデュアルコアプロセッサであり、ワーキングレジスタとシャドウレジスタは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、各プロセッサコアのワーキングレジスタとシャドウレジスタが、隣接するメモリセルペアになるように接続されることが好ましい。
また、バッファメモリは、上記のアレイ状に配列させた回路で構成され、かつ、隣接するメモリセルペアは、それぞれ異なるプロセッサコアのストアキューの複製データのペア、およびそれぞれ異なるプロセッサコアのワーキングレジスタの複製データのペアになるように接続されることが好ましい。
【００２６】
上記の第１の観点の高信頼マルチコアプロセッサの構成によれば、比較用のバッファメモリを用いて一括比較が可能で低電力化が図れるといった効果がある。また、ワーキングレジスタとシャドウレジスタの間のバックアップ・リストアに要するデータ転送サイクルが、レジスタ状態に依存することなく、一定のサイクルであり、高速化が図れ、リアルタイム性が確保できる。
【００２７】
また、本発明の第２の観点の高信頼マルチコアプロセッサにおいて、マルチコアプロセッサがデュアルコアプロセッサであり、ワーキングレジスタとシャドウレジスタは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが少なくとも４段隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する少なくとも３本のモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、各プロセッサコアのワーキングレジスタとシャドウレジスタが、隣接するメモリセルペアになるように接続され、かつ、各プロセッサコアのそれぞれのワーキングレジスタが、隣接するメモリセルペアになるように接続されることが好ましい。
【００２８】
また、各プロセッサコアのストアキューが、上記のアレイ状に配列させた回路で構成され、かつ、それぞれのストアキューが、隣接するメモリセルペアになるように接続されることが好ましい。
上記の第２の観点の高信頼マルチコアプロセッサの構成によれば、各プロセッサコアのストアキューを直接比較することができ、比較用のバッファメモリが不要となり、面積オーバーヘッドが低減できる。
【００２９】
また、本発明の第３の観点の高信頼マルチコアプロセッサにおいて、マルチコアプロセッサがデュアルコアプロセッサであり、ワーキングレジスタとシャドウレジスタは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが少なくとも４段隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御する少なくとも３本のモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、各プロセッサコアのワーキングレジスタとシャドウレジスタが、隣接するメモリセルペアになるように接続され、かつ、各プロセッサコアのそれぞれのワーキングレジスタが、隣接するメモリセルペアになるように接続されることが好ましい。
【００３０】
また、各プロセッサコアのストアキューが、上記のアレイ状に配列させた回路で構成され、かつ、それぞれのストアキューが、隣接するメモリセルペアになるように接続されることが好ましい。
さらに、各プロセッサコアのワークメモリが、上記のアレイ状に配列させた回路で構成され、かつ、それぞれのワークメモリが、隣接するメモリセルペアになるように接続されることが好ましい。
【００３１】
上記の第３の観点の高信頼マルチコアプロセッサの構成によれば、それぞれのプロセッサコアの全データ格納領域（ストアキュー，ワークメモリ，ワーキングレジスタ)を直接的にリアルタイムで比較できる。
これにより、従来では検出ができなかった（もしくは、多大な時間を要した）ワークメモリ内の潜在的故障の検出が可能となる。従来では、ワークメモリ内の一時故障が、ＣＰＵデータパス内を伝搬してストアキューもしくはワーキングレジスタに影響が表れるまで検出できなかったのに対し、第３の観点の高信頼マルチコアプロセッサでは、ワークメモリ内の全ての一時故障を早期に発見することが可能となる。
【００３２】
また、本発明の第４の観点の高信頼マルチコアプロセッサにおいて、マルチコアプロセッサがデュアルコアプロセッサであり、ワーキングレジスタとシャドウレジスタは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成され、各プロセッサコアのワーキングレジスタとシャドウレジスタが、隣接するメモリセルペアになるように接続されることが好ましい。
また、各プロセッサコアのストアキューが、上記のアレイ状に配列させた回路で構成され、かつ、それぞれのストアキューが、隣接するメモリセルペアになるように接続されることが好ましい。
【００３３】
また、上記の高信頼マルチコアプロセッサにおいて、具体的には、所定のサイクルが４サイクルである。
【００３４】
また、上記の高信頼マルチコアプロセッサにおいて、ストアキュー及びワークメモリは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成される。そして、１ビットが１個のメモリセルで構成される通常モード（１ビット／１セルモード）と、１ビットがｎ（ｎは２以上）個のメモリセルを連結して構成される高信頼モード（１ビット／ｎセルモード）とを動的に切り替えることができ、１ビット／ｎセルモードに切り替えることにより、１ビットの動作安定性の増大、読出し動作のセル電流の増大（読出し動作の高速化）、ビットエラーの自己修復を行うことが好ましい。
【発明の効果】
【００３５】
本発明のマルチコアプロセッサは、従来のＤＭＲのマルチコアプロセッサと比べて、高信頼性、リアルタイム性が大幅に向上できるといった効果を有する。
【図面の簡単な説明】
【００３６】
【図１】実施例１のマルチコアプロセッサのアーキテクチャ
【図２】メモリセルの回路構成図
【図３】バッファメモリの回路構成図
【図４】バッファメモリにおけるストアキューの複製データ及びワーキングレジスタの複製データの比較回路のブロック図
【図５】メモリセルの放電パスの説明図
【図６】比較シーケンス波形の説明図
【図７】ワーキングレジスタとシャドウレジスタの構造模式図
【図８】コピー処理の説明図
【図９】実施例１のマルチコアプロセッサの動作タイミングチャート
【図１０】実施例２のマルチコアプロセッサのアーキテクチャ
【図１１】実施例３のマルチコアプロセッサのアーキテクチャ
【図１２】実施例４のマルチコアプロセッサのアーキテクチャ
【図１３】従来のマルチコアプロセッサのアーキテクチャ
【図１４】従来のマルチコアプロセッサの動作タイミングチャート
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
【実施例１】
【００３８】
図１に、実施例１のマルチコアプロセッサのアーキテクチャを示す。実施例１のマルチコアプロセッサは、２つのプロセッサコア（１０，２０）を１個のパッケージに集約したマルチコアプロセッサにおいて、各プロセッサコアは、汎用レジスタ及び状態レジスタから構成されるワーキングレジスタ（１１，２１）と、ワーキングレジスタと同一の種類及びビット数のレジスタを有するシャドウレジスタ（１２，２２）と、チェックポイント周期内のストアデータを蓄積するストアキュー（１３，２３）と、ストアデータを記憶するワークメモリ（１４，２４）とから構成される。
【００３９】
バッファメモリ３は、各プロセッサコアのストアキューの複製データ（３１，３３）とワーキングレジスタの複製データ（３２，３４）を保持し、レジスタサイズおよびキューサイズに関係なく、所定サイクルでストアキューの複製データ（３１，３３）及びワーキングレジスタの複製データ（３２，３４）の比較を行う。この比較周期はチェックポイント周期に依存する。比較結果は故障検出・回復コントローラ４に送られる。
また、ストアキュー（１３，２３）は、チェックポイント周期内のストアデータを蓄積する。該当するチェックポイント周期が終了し、実行結果の比較結果が一致の場合、チェックポイント周期内で蓄積したデータをワークメモリ（１４，２４）へライトバックする（１９，２９）。比較結果が不一致の場合は、蓄積したデータを無効化し、破棄する。
【００４０】
ワーキングレジスタ（１１，２１）とシャドウレジスタ（１２，２２）の間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送を行い、レジスタ間で瞬時のコピーが可能である。
ワーキングレジスタ（１１，２１）は、レジスタファイル、プログラムカウンタ等のアーキテクチャ状態レジスタで構成され、通常のＣＰＵのレジスタと同様の動作を行う。シャドウレジスタ（１２，２２）はワーキングレジスタ（１１，２１）と同一の種類・ビット数のレジスタ(レジスタファイル、アーキテクチャ状態レジスタ)を持ち、ワーキングレジスタ（１１，２１）の内容のバックアップを保持する。
ワーキングレジスタ（１１，２１）とシャドウレジスタ（１２，２２）は、所定のサイクルで双方向の瞬時コピーが可能であり、ワーキングレジスタ（１１，２１）からシャドウレジスタ（１２，２２）へのバックアップと、シャドウレジスタ（１２，２２）からワーキングレジスタ（１１，２１）へのリストアが可能である。
【００４１】
また、故障検出・回復コントローラ４は、故障検出・回復系の制御を行う。バッファメモリ３における一括比較結果を基に、各プロセッサコアに対して、ストアキュー（１３，２３）の制御、ワーキングレジスタ（１１，２１）とシャドウレジスタ（１２，２２）と間のデータ転送（コピー）制御を行う。
比較結果が一致(正常)の場合は、ストアキュー（１３，２３）内のデータをワークメモリ（１４，２４）へライトバックさせる信号を出す。比較結果が不一致の場合(故障検出)の場合は、ストアキュー（１３，２３）のエントリを無効化し、前回チェックポイント時の状態へロールバックさせる信号を出す。ロールバックさせる信号により、シャドウレジスタ（１２，２２）からワーキングレジスタ（１１，２１）へのリストアが行われる。
【００４２】
（バッファメモリの構造）
ここで、バッファメモリ３の構造と、ストアキューの複製データ及びワーキングレジスタの複製データの比較を所定サイクルで行えることを説明する。
バッファメモリ３は、上述の背景技術で説明した提案メモリセルでメモリ回路を構築する。図３は、３２ビットを１ワードとするバッファメモリの回路構成図の一例である。図３に示すバッファメモリは、メモリセルを行方向に３２個並べて、３２ビットの１ワードを形成し、メモリセルペアのモード制御ラインをワード単位で分割する回路構成としている（１ワード単位を他のビット数、例えば、１６ビット、６４ビット、１２８ビットとしても構わない。）。バッファメモリは、３２ビットの１ワード単位に、制御ライン選択信号の信号ラインＣＬＳ０，ＣＬＳ１（ＣＬＳ：Ｃｏｎｔｒｏｌ ｌｉｎｅ
ｓｅｌｅｃｔｉｏｎ ｓｉｇｎａｌ）とグローバル制御信号の信号ラインＧＣＬ０，・・・，ＧＣＬ３（ＧＣＬ：Ｇｌｏｂａｌ Ｃｏｎｔｒｏｌ ｌｉｎｅ）とで制御するモード制御ライン選択回路としてのＡＮＤ回路が設けられている。そして、ＡＮＤ回路の出力信号ラインＬＣＬ００，ＬＣＬ０１，・・・，ＬＣＬ３０，ＬＣＬ３１（ＬＣＬ：Ｌｏｃａｌ
Ｃｏｎｔｒｏｌ ｌｉｎｅ）は、ワード単位に分割されたモード制御ラインとして機能する。また、バッファメモリは、３２ビットの１ワード単位に、ワードライン選択信号の信号ラインＷＬＳ０，ＷＬＳ１（ＷＬＳ：Ｗｏｒｄ ｌｉｎｅ Ｓｅｌｅｃｔｉｏｎ
ｓｉｇｎａｌ）とグローバルワード信号の信号ラインＧＷＬ０，ＧＷＬ１，・・・，ＧＷＬ６、ＧＷＬ７（ＧＷＬ：Ｇｌｏｂａｌ Ｗｏｒｄ ｌｉｎｅ）とで制御するワードライン選択回路としてのＡＮＤ回路が設けられている。そして、ＡＮＤ回路の出力信号ラインＬＷＬ００，ＬＷＬ０１，・・・，ＬＷＬ７０，ＬＷＬ７１（ＬＷＬ：Ｌｏｃａｌ
Ｗｏｒｄ ｌｉｎｅ）がワードラインとして機能する。
【００４３】
図３では、３２ビットワードのメモリセルペア（２個のメモリセルで１ペア）が行方向に２セット示され、列方向に４段示されている（２段目と３段目は記載省略）。図３の左上（一列目の一段目）の３２ビットワードのメモリセルペアでは、上段と下段のメモリセルのワードラインをＬＷＬ００，ＬＷＬ１０で表記し、モード制御ラインをＬＣＬ００で表記する。図３の右下（二列目の４段目）の３２ビットワードのメモリセルペアでは、上段と下段のメモリセルのワードラインをＬＷＬ６１，ＬＷＬ７１で表記し、モード制御ラインをＬＣＬ３１で表記する。
【００４４】
図３に示すワード単位のメモリセルペアが２列×４段（内２段目、３段目は省略）の場合は、ＣＬＳ０，ＣＬＳ１がそれぞれ４本ずつ必要となる。図３の表記では２本で示しているが、実際は４本である。ここで、メモリセルペアの段数が増えた場合、それぞれＣＬＳ０，ＣＬＳ１の本数が増えることになる。例えば、ワード単位のメモリセルペアがＭ×Ｎセット（Ｍ段×Ｎ列）になると、ＣＬＳはＭ本必要である。一方、ＷＬＳ０やＷＬＳ１は、読出し／書込み動作は同時に１行のみに対して行われるため、各ワード単位のメモリセルペアに対して必要な本数は２本である。ＷＬＳの本数は、３２ビットワードのメモリセルペアの段数が増えても変わらない。
【００４５】
図４は、バッファメモリ３における、ストアキューの複製データ及びワーキングレジスタの複製データの比較回路のブロック図である。２つのプロセッサコア（Ｃｏｒｅ０，Ｃｏｒｅ１）のそれぞれのＣＰＵパスから出力されるストアデータとレジスタへの書込みデータが、バッファメモリ３のそれぞれのストアキューの複製メモリブロックとワーキングレジスタの複製メモリブロックに書込まれる。プロセッサコア（Ｃｏｒｅ０）のストアキューの複製メモリブロックおよびワーキングレジスタの複製メモリブロックをブロックＡ、プロセッサコア（Ｃｏｒｅ１）のストアキューの複製メモリブロックおよびワーキングレジスタの複製メモリブロックをブロックＢとする。ブロックＡとブロックＢは、それぞれ図３のメモリセルアレイの上段のメモリセル群、下段のメモリセル群に対応させる。すなわち、図４に示すように、ブロックＡとブロックＢの領域が交互にかみ合うような形にする。
【００４６】
（バッファメモリにおける比較処理について）
次に、バッファメモリにおける比較処理について説明する。まず、図３における各メモリセルペアの上段と下段のメモリセルに、異なるデータが記憶されているものを検知する仕組みについて図５を参照して説明する。
図５（１）に示すメモリセルペアでは、メモリセルペアの上段のメモリセルＡと下段のメモリセルＢに、同じデータ（“１”）が記憶されている。また、図５（２）に示すメモリセルペアでは、メモリセルペアの上段のメモリセルＡと下段のメモリセルＢに、異なるデータ（“０”,“１”）が記憶されている。
図５（１）の状態でモード制御ライン（ＣＴＲＬ）を用いて、モード制御スイッチのＰＭＯＳトランジスタを導通させた場合、リーク電流以外に何も発生しない。ここで、図５中の円で囲んだＭＯＳトランジスタが導通状態となっている。
【００４７】
一方、図５（２）の状態でモード制御ライン（ＣＴＲＬ）を用いて、モード制御スイッチのＰＭＯＳトランジスタを導通させた場合、図５中に示す矢印に放電パスが生じることになる。図５（２）の状態、すなわち、メモリセルペアの上段のメモリセルＡと下段のメモリセルＢに、異なるデータが記憶され、上段と下段でデータが不一致となる場合、メモリセルの電源電圧ＶＤＤＡ，ＶＤＤＢの電圧が放電されるのである。なお、図５中の円で囲んだＭＯＳトランジスタが導通状態となっている。
【００４８】
メモリセルペアの上段と下段でデータが一致する場合は、メモリセルの電源電圧ＶＤＤＡ，ＶＤＤＢには何も変化がない。その一方で、メモリセルペアの上段と下段でデータが不一致となる場合は、メモリセルの電源電圧ＶＤＤＡ，ＶＤＤＢの電圧が放電される。このため、図６に示すメモリセルの電源電圧比較シーケンス波形図を得ることができる。
図６に示すメモリセルの電源電圧比較シーケンス波形図について説明する。先ず、メモリセルペアのモード制御ライン（ＣＴＲＬ）を制御して、モード制御スイッチ部を導通させ、上段・下段のメモリセルペアのノードを接続する。次に、ＳＷ信号により、メモリセルペアの電源電圧（ＶＤＤＡ，ＶＤＤＢ）をフローティング状態にする。その結果、メモリセルペアの上段・下段に書き込まれたデータが同じ場合は、放電パスは生じず電源電圧には変化がないが、メモリセルペアの上段・下段に書き込まれたデータが異なる場合は、放電パスが生じて電流が流れるために、メモリセルの電源電圧（ＶＤＤＡ，ＶＤＤＢ）は放電によって降下していくことになる。
【００４９】
すなわち、上記の処理により、メモリセルペアの上段・下段のデータを比較できる。このことから、メモリセルペアがアレイ状に配置された図３に示すバッファメモリで、図４に示すように、ブロックＡとブロックＢの領域が交互にかみ合うような形に配置された場合に、短時間のコストで、ブロックＡとブロックＢのデータを一括で比較することができることになる。
【００５０】
ブロックＡとブロックＢのデータを一括で比較は、次の手順（ａ）〜（ｅ）で行う。
（ａ）メモリセルペアのモード制御ラインをＯＦＦする。
（ｂ）メモリセルペアの上段（ブロックＡ）・下段（ブロックＢ）に、それぞれ異なるプロセッサコアのストアキューの複製データおよびワーキングレジスタの複製データを書き込む。
（ｃ）メモリセルペアのモード制御ラインをＯＮし、上段（ブロックＡ）・下段（ブロックＢ）のメモリセルペアのノードを接続する。
（ｄ）メモリセルペアの電源電圧（ＶＤＤＡ，ＶＤＤＢ）をフローティング状態にする。
（ｅ）メモリセルペアの電源電圧（ＶＤＤＡ，ＶＤＤＢ）の変化を検知して、メモリセルペアの電源電圧（ＶＤＤＡ，ＶＤＤＢ）がメモリセルを構成するＭＯＳトランジスタの閾値電圧に向かって降下している場合、メモリセルペアの上段（ブロックＡ）・下段（ブロックＢ）に書き込まれたデータは不一致と判定し、そうでない場合、データは一致と判定する。
【００５１】
以上のような処理を行うことにより、バッファメモリ３において、各プロセッサコアのそれぞれのストアキューの複製データ及びワーキングレジスタの複製データの一括比較を所定サイクルで行えるのである。
実際に、提案メモリセルで構成したバッファメモリの一括比較処理に要するサイクル数は、モード制御ラインをＯＮに１サイクル、電源電圧（ＶＤＤＡ，ＶＤＤＢ）のフローティング状態の変化の検知に２サイクル、モード制御ラインをＯＦＦに１サイクルの４サイクルあれば可能である。
【００５２】
なお、バッファメモリ内のデータ一括比較処理回路の回路構成や、モード制御ラインの制御方法については、特許文献６に詳細に説明しているので、そちらを参照いただきたい（特許文献６の段落００４９〜００５６，図７〜１３など）。
【００５３】
（ワーキングレジスタとシャドウレジスタの構造）
次に、ワーキングレジスタとシャドウレジスタの構成について説明する。また、ワーキングレジスタとシャドウレジスタの間は、レジスタサイズに関係なく、所定サイクルで双方向のデータ転送を行い、レジスタ間で瞬時のコピーが可能であることについて説明する。
ワーキングレジスタとシャドウレジスタの回路は、上述のバッファメモリと同様に、上述の背景技術で説明した提案メモリセルで、図３のような３２ビットのレジスタ回路を構築する。そして、ワーキングレジスタとシャドウレジスタは、それぞれ図３のメモリセルアレイの上段のメモリセル群、下段のメモリセル群に対応させる。すなわち、図７に示すように、ワーキングレジスタとシャドウレジスタのレジスタ領域が交互にかみ合うような形にする。
【００５４】
（ワーキングレジスタとシャドウレジスタとの間のデータコピー処理について）
次に、ワーキングレジスタとシャドウレジスタとの間のデータコピー処理について説明する。図７に示すように、ワーキングレジスタとシャドウレジスタのレジスタ領域を交互にかみ合うような形にして、上段のメモリセル群ワーキングレジスタ、下段のメモリセル群にシャドウレジスタを配置することで、ワーキングレジスタとシャドウレジスタは、所定のサイクルで双方向の瞬時コピーが可能であり、ワーキングレジスタからシャドウレジスタへのバックアップと、シャドウレジスタからワーキングレジスタへのリストアとが可能である。
【００５５】
まず、ワーキングレジスタからシャドウレジスタへのバックアップについて図８（１）〜（４）を参照して説明する。
図８（１）〜（４）において、上段のメモリセル（ＭＣ０１）のノード（ｍ０，ｍ１）の保持データを、下段のメモリセル（ＭＣ１０）へデータをコピーして、上段のメモリセル（ＭＣ０１）のノード（ｍ０，ｍ１）の保持データと下段のメモリセル（ＭＣ１０）のノード（ｎ０，ｎ１）の保持データを同一にする。ここでは、メモリセル（ＭＣ０１）のビット情報は、ノードｍ０が“Ｈ”で、ノードｍ１が“Ｌ”であるものとする。
【００５６】
先ず、図８（１）に示すように、一対のビットライン（ＢＬ，／ＢＬ）の状態をハイレベル（“Ｈ”）に、かつ、コピー先の下段のメモリセル（ＭＣ１０）のワードライン（ＷＬＢ）の状態をハイレベル（“Ｈ”）に、かつ、コピー先の下段のメモリセル（ＭＣ１０）のグランドライン（ＶＧＮＤＢ）を電源電位（“ＶＤＤ”）にする（第１サイクル）。
次に、図８（２）に示すように、コピー先の下段のメモリセル（ＭＣ１０）のワードライン（ＷＬＢ）の状態をローレベル（“Ｌ”）にする（第２サイクル）。
次に、図８（３）に示すように、コピー元の上段のメモリセル（ＭＣ０１）とコピー先の下段のメモリセル（ＭＣ１０）との間を接続しているＰ型ＭＯＳトランジスタ（Ｍ２０，Ｍ２１）の導通制御するモード制御ライン（／ＣＴＲＬ）をローレベル（“Ｌ”）にして、Ｐ型ＭＯＳトランジスタ（Ｍ２０，Ｍ２１）を導通させ、コピー元の上段のメモリセル（ＭＣ０１）のノード（ｍ０，ｍ１）の保持データをコピー先の下段のメモリセル（ＭＣ１０）へデータ転送する（第３サイクル）。
【００５７】
最後に、図８（４）に示すように、コピー先の下段のメモリセル（ＭＣ１０）のグランドライン（ＶＧＮＤＢ）を再びグランド電位（“ＧＮＤ”）の状態に戻す（第４サイクル）。
これにより、上段のメモリセル（ＭＣ０１）の保持データを下段のメモリセル（ＭＣ１０）へデータコピーする処理が完了する。
これらの処理により、グランドライン（ＶＧＮＤ）を共有するブロック内の全データを４サイクルでコピーすることが可能になる。
【００５８】
すなわち、図７に示すように、ワーキングレジスタとシャドウレジスタのレジスタ領域を交互にかみ合うような形にして、上段のメモリセル群ワーキングレジスタ、下段のメモリセル群にシャドウレジスタを配置することで、ワーキングレジスタからシャドウレジスタへの所定のサイクル（具体的には４サイクル）でバックアップが可能になる。
また、シャドウレジスタからワーキングレジスタへのリストアについても、所定のサイクル（具体的には４サイクル）で行えることが容易に理解できる。
なお、グランドライン（ＶＶＧＤＢ）を制御する以外に、電源ライン（ＶＶＤＤＢ）を制御する方法もあり、特許文献５に詳細に説明しているので、そちらを参照いただきたい（特許文献５の段落００３２〜００３８など）。
【００５９】
（ストアキューとワークメモリの構造）
ストアキューとワークメモリは、各々の出力がメモリセルの列に対応して配置される一対のビットラインの各々に至る経路に接続されるクロスカップル接続された一対のインバータと、ビットラインとインバータの出力との間に設けられた一対のスイッチ部と、スイッチ部の導通を制御する１本のワードラインと、から構成される１ビットのメモリセルが隣接し、隣接する２個のメモリセルのデータ保持ノード間にモード制御スイッチ部と、該モード制御スイッチ部の導通を制御するモード制御ラインと、を備えたメモリセルペアをアレイ状に配列させた回路で構成される。１ビットが２個のメモリセルを連結して構成される高信頼モードでの動作時は、ストアキューのエントリ数が半減し、ワークメモリの容量が半減する。
【００６０】
（動作タイミングについて）
図９に、実施例１のマルチコアプロセッサの動作タイミングチャートを示す。動作タイミングチャートでは、通常動作、比較・コミット、チェックポイント、通常動作、比較・エラー検出、ロールバック、再実行の一連の動作状況に関して示している。チャートに表した信号は、クロック（ｃｌｋ）、カウンター（ＣＯＵＮＴ）、カウント・イネーブル（ＣＮＴ＿ＥＮ）、カウント・リセット（ＣＮＴ＿ＲＥＳＥＴ）、プロセッサコア１（Ｃｏｒｅ０）のワーキングレジスタ（ＷＯＲＫＩＮＧ＿ＲＥＧ＿Ａ）およびシャドウレジスタ（ＳＨＡＤＯＷ＿ＲＥＧ＿Ａ）、プロセッサコア２（Ｃｏｒｅ１）のワーキングレジスタ（ＷＯＲＫＩＮＧ＿ＲＥＧ＿Ｂ）およびシャドウレジスタ（ＳＨＡＤＯＷ＿ＲＥＧ＿Ｂ）、ロールバック信号（ＲＯＬＬＢＡＫ）、プロセッサコア１（Ｃｏｒｅ０）のストアキュー（ＳＴＯＲＥ＿Ａ），プロセッサコア２（Ｃｏｒｅ１）のストアキュー（ＳＴＯＲＥ＿Ｂ），比較結果信号（ＥＲＲＯＲ）を示している。
【００６１】
比較・コミットにおいて、４サイクルかかっているが（図１４に示した従来のＣＲＣ比較によるＤＭＲのマルチコアプロセッサの動作タイミングチャートの場合、２サイクルで比較・コミットを実施）、チェックポイントでは、４サイクルでバックアップのための一括コピーを行っている（図１４の場合、バックアップする状態量に依存するが、例えば、２０〜５０サイクルで実施）。従来のＣＲＣ比較によるＤＭＲのマルチコアプロセッサでは、バスを介したレジスタ内容のバックアップのために多くのサイクルを費やすことになるが、実施例１のマルチコアプロセッサでは、バックアップする状態量に依存することなく、４サイクルで行える。
【００６２】
（実施例１のマルチプロセッサによる消費エネルギーの低減効果について）
従来のＣＲＣ比較によるＤＭＲのマルチコアプロセッサと比較して、実施例１のマルチコアプロセッサのメモリバッファを用いることで、低電力化が図れる。
これについて以下に説明する。
８ｋｂｉｔ分のデータ比較に要する消費エネルギーをＣＲＣ比較手法と、本実施例のバッファメモリによる比較手法とで比較を行った。評価は、６５ｎｍプロセスの回路シミュレーションによって行った。ＣＲＣ比較手法を用いた場合の消費エネルギーは、３２ｂｉｔ×２５６回のＣＲＣコード生成を各プロセッサコアで行い、各プロセッサコアで生成した３２ｂｉｔのＣＲＣコードを３２ｂｉｔの比較器で１回比較するという手法で評価した。本実施例のバッファメモリによる比較は、図５および図６に示した比較手法を、１６ｋｂｉｔ（８ｋｂｉｔ＋８ｋｂｉｔ）のメモリマクロに適用し評価を行った。結果として、従来のＣＲＣ比較による手法と比較して、バッファメモリを用いる比較手法の場合、比較にかかる消費エネルギーを１／４１８に低減できることを確認した。
【実施例２】
【００６３】
図１０に、実施例２のマルチコアプロセッサのアーキテクチャを示す。実施例２のマルチコアプロセッサは、実施例１のマルチコアプロセッサと同様に、２つのプロセッサコア（１０，２０）を１個のパッケージに集約したマルチコアプロセッサにおいて、各プロセッサコアは、汎用レジスタ及び状態レジスタから構成されるワーキングレジスタ（１１，２１）と、ワーキングレジスタと同一の種類及びビット数のレジスタを有するシャドウレジスタ（１２，２２）と、チェックポイント周期内のストアデータを蓄積するストアキュー（１３，２３）と、ストアデータを記憶するワークメモリ（１４，２４）とから構成される。
【００６４】
実施例２のマルチコアプロセッサでは、実施例１のマルチコアプロセッサのバッファメモリは無く、それぞれのプロセッサコアのストアキュー（１３，２３）が密結合したメモリブロック５の構成になっている。また、それぞれのプロセッサコアのワーキングレジスタ（１１，２１）が密結合したメモリブロック５の構成になっている。密結合したメモリブロック５は、上述の背景技術で説明した提案メモリセルでメモリ回路を用いて構築される。
【００６５】
すなわち、実施例１のマルチコアプロセッサの場合、上述の如く、図３、図４のようにバッファメモリを構築し、ストアキューの複製データ及びワーキングレジスタの複製データの比較を行っていたが、実施例２のマルチコアプロセッサでは、各プロセッサコアのストアキュー（１３，２３）を、図４のようにブロックＡとブロックＢの領域が交互にかみ合うような形にする（例えば、プロセッサコア１のストアキュー１３がブロックＡ、プロセッサコア２のストアキュー２３がブロックＢとする）。また、各プロセッサコアのワーキングレジスタ（１１，２１）も、図４のようにブロックＡとブロックＢの領域が交互にかみ合うような形にする（例えば、プロセッサコア１のワーキングレジスタ１１がブロックＡ、プロセッサコア２のワーキングレジスタ２１がブロックＢとする）。
【００６６】
これにより、実施例１で述べたデータ一括比較機能を用いて、それぞれのプロセッサコアのデータ格納領域（ストアキュー，ワーキングレジスタ)を直接比較できる。
実施例１のマルチコアプロセッサのようなバッファメモリを設ける必要がないので、バッファメモリを設けるといった面積オーバーヘッドがない。しかしながら、ストアキューとワーキングレジスタを直接比較する回路の面積増加(２０〜５０％程度)が存在し、速度オーバーヘッドも存在する。
【実施例３】
【００６７】
図１１に、実施例３のマルチコアプロセッサのアーキテクチャを示す。実施例３のマルチコアプロセッサでは、それぞれのプロセッサコアのデータ格納領域（ストアキュー，ワークメモリ，ワーキングレジスタ)を直接比較できるような構成にする。
実施例１で述べたデータ一括比較機能を用いて、直接的に各プロセッサコアのストアキューとワークメモリ全体を互いに比較できる。ワーキングレジスタについても同様に全体のデータ内容を互いに比較できる。
【００６８】
実施例３のマルチコアプロセッサの構造を持つことにより、全データ領域のリアルタイム比較が可能となる。これにより、従来では検出ができなかった（もしくは、多大な時間を要した）ワークメモリ内の潜在的故障の検出が可能となるのである。従来では、ワークメモリ内の一時故障が、ＣＰＵデータパス内を伝搬してストアキューもしくはワーキングレジスタに影響が表れるまで検出できなかったのに対し、実施例３のマルチコアプロセッサでは、ワークメモリ内の全ての一時故障を早期に発見することが可能となる。
【００６９】
但し、実施例３のマルチコアプロセッサでは、ワークメモリ・ストアキューの面積増加(２０〜５０％程度)、ワーキングレジスタの面積増加（６０〜１００％）、ワークメモリ，ワーキングレジスタ，ストアキューを２つのプロセッサコア間で共有構造にすることによるアクセス速度オーバーヘッドが存在する。
【実施例４】
【００７０】
図１２に、実施例４のマルチコアプロセッサのアーキテクチャを示す。
実施例４のマルチコアプロセッサは、実施例２のマルチコアプロセッサにおいて、ワーキングレジスタ（１１，２１）の比較を行わない構成である。ストアキュー（１３，２３）の比較結果５７によって、ワーキングレジスタ（１１，２１）とシャドウレジスタ（１２，２２）との間のデータのバックアップやリストアをコントローラ４で制御する（４１，４２）。実施例４のマルチコアプロセッサの場合、ストアキューの面積増加(２０〜５０％程度)、ストアキューを２つのプロセッサコア間で共有構造にすることによるアクセス速度オーバーヘッドが存在する。
【産業上の利用可能性】
【００７１】
本発明のマルチコアプロセッサは、高信頼かつリアルタイムな動作が必要な分野、特に、エンジン制御やブレーキ制御などの自動車制御、鉄道制御、航空宇宙制御、ロボット制御等の分野における制御処理プロセッサとして有用である。
【符号の説明】
【００７２】
１，１０１  プロセッサコア（Ｃｏｒｅ０）
２，１０２  プロセッサコア（Ｃｏｒｅ１）
３    バッファメモリ
４    故障検出・回復コントローラ
１０，２０，１１０，１２０  ＣＰＵデータパス
１１，２１，１１１，１２１  ワーキングレジスタ
１２，２２，１１２，１２２  シャドウレジスタ
１３，２３，１１３，１２３  ストアキュー
１４，２４，１１４，１２４  ワークメモリ
【図１】
2014096127.tif 000003
【図２】
2014096127.tif 000004
【図３】
2014096127.tif 000005
【図４】
2014096127.tif 000006
【図５】
2014096127.tif 000007
【図６】
2014096127.tif 000008
【図７】
2014096127.tif 000009
【図８】
2014096127.tif 000010
【図９】
2014096127.tif 000011
【図１０】
2014096127.tif 000012
【図１１】
2014096127.tif 000013
【図１２】
2014096127.tif 000014
【図１３】
2014096127.tif 000015
【図１４】
2014096127.tif 000016