JPH0883191A - マイクロプロセッサの故障阻止方法とその装置 - Google Patents

マイクロプロセッサの故障阻止方法とその装置

Info

Publication number
JPH0883191A
JPH0883191A JP6218865A JP21886594A JPH0883191A JP H0883191 A JPH0883191 A JP H0883191A JP 6218865 A JP6218865 A JP 6218865A JP 21886594 A JP21886594 A JP 21886594A JP H0883191 A JPH0883191 A JP H0883191A
Authority
JP
Japan
Prior art keywords
microprocessor
register
instruction
data
unit
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.)
Withdrawn
Application number
JP6218865A
Other languages
English (en)
Inventor
Koji Hayashi
耕司 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6218865A priority Critical patent/JPH0883191A/ja
Publication of JPH0883191A publication Critical patent/JPH0883191A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Retry When Errors Occur (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 人工衛星などに搭載されるコンピュータシス
テムにおけるマイクロプロセッサ内部で発生する一時故
障を高率で検出し、それらの検出されたデータのビット
列の中から不必要な部分を削除する。 【構成】 マイクロプロセッサ1は、レジスタグルー
プ内の内部レジスタ40の値をそれぞれ比較し、一致す
る場合に出力を行い、不一致の場合には出力をしないよ
うにして、データのビット列の中から不必要な部分を削
除するためビットパターンをマスクする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサの故
障阻止方法とその装置に係り、特に人工衛星などに搭載
されるコンピュータシステムにおけるマイクロプロセッ
サ内部で発生する一時故障を阻止するマイクロプロセッ
サの故障阻止方法とその装置に関する。
【0002】
【従来の技術】たとえば、人工衛星に搭載されるコンピ
ュータなどの計算機システムには、宇宙空間の強い放射
線によって引き起こされる集積回路内部の一時エラー
が、システムの故障原因の多くの割合を占めているもの
がある。
【0003】近年、使用されるマイクロプロセッサの高
集積化により、特にマイクロプロセッサ内部に発生する
一時故障が問題になっており、これを阻止することが重
要な問題になっている。
【0004】このような問題から、従来よりマイクロプ
ロセッサ内部に発生する一時故障を阻止するためさまさ
まな方法が採られてきた。図5はいわゆる冗長化回路を
用いたシステムによってマイクロプロセッサ内部に発生
する一時故障を阻止するシステムである。
【0005】この図5に示すシステムでは、たとえば同
一の処理を2つのプロセッサ301、302で実行し、
これらのプロセッサ301、302の処理結果を出力一
致/不一致検出回路104で比較することによって誤り
を検出する、二重冗長化回路を用いたシステムの例であ
る。
【0006】なお、プロセッサ101とバスラインを介
して双方向接続されているのが、メモリ105と入出力
装置106である。クロック発生回路103ではクロッ
ク300を発生し、2つのプロセッサ101、102を
同一クロック300によりクロックレベルで同期して動
作させる。
【0007】これらの2つのプロセッサ101、102
の処理結果の比較は、各クロック毎にプロセッサ10
1、102の出力信号の一致あるいは不一致を検出する
一致/不一致検出回路104で行う。
【0008】この一致/不一致検出回路104では、プ
ロセッサ101、102の出力信号の不一致を検出した
ときには故障通達が行われる。従って、このシステムで
は、誤りが発生しない間はシステムの処理速度を低下さ
せることなく処理を行うことが可能である。
【0009】図6は図5のシステムにおける読込命令の
変換、演算処理などの例を示すフローチャートである。
この図6において、読込命令の変換処理などを実行する
ためには、図5のメモリ105、入出力装置106など
の外部からの命令をプロセッサ101、102の内部レ
ジスタへ読み込むための命令列に変換する処理をスター
トし、プロセッサ101、102の内部レジスタrnへ
のロード命令を実行する(ST300)。
【0010】プロセッサ101、102の内部レジスタ
rnへのロード命令を実行したのちには、内部レジスタ
rnの値を用いた演算命令を実行する(ST301)。
内部レジスタrnの値を用いた演算命令を実行した後に
は、分岐条件の算出演算を行う分岐条件算出命令を実行
する(ST302)。
【0011】この分岐条件算出命令を実行した後には、
分岐命令を実行する(ST303)。 分岐命令を実行
した後には、レジスタrnのストア命令を実行する(S
T304)。
【0012】一方、図7は、内部レジスタに対して行う
命令列の挿入を行うための処理である。この処理では、
△T時間に実行可能な任意の命令1(ST305)から
任意の命令N(ST307)までの命令を実行した後、
任意の命令(N+1)の実行(ST308),任意の命
令(N+2)の実行(ST309)というように複数個
の命令を実行する。
【0013】その後、ST303と同様の分岐命令を実
行する(ST310)。この分岐命令を実行した後に
は、命令M(ST311)、命令(M+1)(ST31
2)、命令(M+2)(ST313)という任意の命令
を実行して以上の処理を終了する。
【0014】またハードウェアを用いずにソフトウェア
により処理を行う方法も知られている。この方法では、
たとえば図8に示すように同一の処理を複数回繰り返す
処理401ないし403を行い、これらの処理結果であ
る出力データ406〜出力データ408を比較404し
てそれぞれの結果が異なる場合には多数決によって多い
方の最終出力を選択して最終出力409を決定してい
た。
【0015】
【発明が解決しようとする課題】しかしながら、以上に
説明した図5に示す冗長化回路を用いて故障を阻止する
システムでは、冗長化回路を用いている分だけ回路構成
が余分に必要になる。
【0016】たとえば、図5のシステムでは、冗長化さ
れたプロセッサ102と一致/不一致検出回路104の
分だけ余分な回路が必要となり、消費電力や重量も増加
する。
【0017】また電力や重量などに制約が多い衛星搭載
用のコンピュータシステムでは、図19に示したような
冗長化回路を用いることができないという不具合もあっ
た。さらに誤りの検出をハードウェアで行うには、シス
テムに適合した一致/不一致検出回路104の開発も必
要になる。
【0018】たとえば衛星搭載用のコンピュータなどの
システムにおいては、これらに適合するハードウェアを
開発しなければならず、システムのコストがかさむ要因
になっていた。
【0019】一方、図8に示したソフトウェア処理の場
合には、同一の処理401〜403を繰り返す必要があ
る。またこのソフトウェア処理では、これらの処理結果
を比較して最終出力409を決定したとき複数回の処理
が終了するまで、処理を開始する前の入力データ405
の初期値と処理結果である出力データ406〜出力デー
タ408を保存しておく必要がある。
【0020】これは画像データの処理など、初期データ
量や出力データが大きく、しかも入力となるデータが処
理の進行に伴って書き換えられる場合に、データを保持
する領域が大量に必要になるので、大容量のメモリや磁
気ディスクが必要になる。
【0021】たとえば、衛星搭載用のコンピュータシス
テムでは、搭載できるメモリや磁気ディスクの容量など
に厳しい制約があり、これらの制約を克服しなければな
らなかった。
【0022】本発明はこのような課題に鑑みてなされた
もので、人工衛星などに搭載されるコンピュータシステ
ムにおけるマイクロプロセッサ内部で発生する一時故障
を高率で検出し、それらの検出されたデータのビット列
の中から不必要な部分を削除するためビットパターンを
マスクするマイクロプロセッサの故障阻止方法とその装
置を提供することを目的とする。
【0023】
【課題を解決するための手段】本発明は、前記課題を解
決するため、以下の手段を採用した。 (1)第1の発明の要旨 第1の発明は、マイクロプロセッサを用いた計算機シス
テムであって、マイクロプロセッサの内部レジスタを複
数のレジスタグループに分割し、それらレジスタグルー
プのマイクロプロセッサの外部装置から送出されたデー
タを各内部レジスタで読み込み、読み込んだデータに対
応した命令に変換し、それらの命令を比較してマイクロ
プロセッサ内部のデータに一時故障による誤りを検出
し、命令が一致しない場合にマイクロプロセッサからデ
ータが出力しないようにする。 〔マイクロプロセッサ〕本発明でマイクロプロセッサ1
は、たとえば、衛星搭載用のコンピュータシステムなど
に用いられるもので、放射線などの影響をうけにくい1
Mビットから256Kビットの記憶容量のものである。 〔内部レジスタ〕この内部レジスタ2は、たとえば複数
のレジスタグループA〜Nに論理的に分割し、実行され
る個々の命令をマイクロプロセッサ1の外部から送出さ
れる信号に基づいて読み込む。
【0024】ここで、論理的に区分するということの意
味は、実際に存在する物理的なレジスタグループではな
く、たとえばCPUが論理的に考えた仮想的なレジスタ
グループのことである。
【0025】読み込まれた命令は、それぞれのレジスタ
グループA〜Nに属する内部レジスタ2から重複して読
み込む複数の命令列に変換し、その内部レジスタ2に読
み込まれた命令列の値を用いて演算処理を実行する。 〔外部装置〕外部装置としては、記憶装置および入出力
装置である。 (2)第2の発明の要旨 (1)において、マイクロプロセッサの内部レジスタを
読み込みそれぞれのレジスタグループ毎に演算を実行す
る。
【0026】〔レジスタグループ毎に演算〕レジスタグ
ループ毎に演算するとは、たとえばレジスタグループ
A,レジスタグループB,レジスタグループCというよ
うにそれぞれのグループ毎に演算処理を実行する。 (3)第3の発明の要旨 (1)において、各レジスタグループのレジスタの出力
を相互に比較し、それらの多数決によって前記マイクロ
プロセッサのレジスタグループを選択する。
【0027】〔レジスタグループの出力を相互に比較〕
レジスタグループの出力を相互に比較するとは、たとえ
ばレジスタグループAのレジスタの出力とレジスタグル
ープBのレジスタ出力の比較をすることをいう。 (4)第4の発明の要旨 (1)において、各レジスタグループのレジスタの出力
を相互に比較し、それらの多数決によって決定されたレ
ジスタ出力を得る。 (5)第5の発明の要旨 (1)において、内部レジスタのレジスタ出力の値とあ
らかじめ設定された期待値とを比較し、一致しない場合
にマイクロプロセッサの内部で一時故障による命令の実
行順序の誤りが発生することを検出する。 (6)第6の発明の要旨 マイクロプロセッサを複数のレジスタグループに分割す
るレジスタグループ分割部と、マイクロプロセッサの外
部装置から送出されデータを読み込むデータ読込み部
と、このデータ読込み部の内部レジスタで読み込んだデ
ータに対応した命令にする変換部と、その変換部で変換
された命令を比較してマイクロプロセッサ内部のデータ
に一時故障による誤りがないことを検出する検出部と、
この検出部で検出した命令が一致しない場合にマイクロ
プロセッサからデータが出力しないよう阻止する阻止部
とを設けた。 〔レジスタグループ分割部〕レジスタグループ分割部と
は、マイクロプロセッサを用いた計算機システムの内部
レジスタを複数のレジスタグループに分割する。 〔データ読込み部〕データ読込み部では、マイクロプロ
セッサの外部装置から送出されデータを読み込む。
【0028】具体的にはマイクロプロセッサ内の内部レ
ジスタによりデータを読み込む。 〔変換部〕変換部では、データ読込み部の内部レジスタ
で読み込んだデータに対応した命令にする。 〔検出部〕検出部では、変換部で変換された命令を比較
してマイクロプロセッサ内部のデータに一時故障による
誤りがないことを検出する。 〔阻止部〕この阻止部では、検出部で検出した命令が一
致しない場合にマイクロプロセッサからデータが出力し
ないよう阻止する。
【0029】(7)第7の発明の要旨 (6)において、マイクロプロセッサの内部レジスタを
読み込みそれぞれのレジスタグループ毎に演算を実行す
る演算実行部とを包含する。
【0030】〔演算実行部〕この演算部では、マイクロ
プロセッサの内部レジスタを読み込みそれぞれのレジス
タグループ毎に演算を実行する。
【0031】(8)第8の発明の要旨 (6)において、各レジスタグループのレジスタの出力
を相互に比較し、それらの多数決によって前記マイクロ
プロセッサのレジスタグループを選択する選択部を包含
する、 〔選択部〕この選択部では、各レジスタグループのレジ
スタの出力を相互に比較し、それらの多数決によってマ
イクロプロセッサのレジスタグループを選択する。
【0032】(9)第9の発明の要旨 (6)において、各レジスタグループのレジスタの出力
を相互に比較して、それらの多推決によってレジスタ出
力を得るレジスタ出力決定部とを包含する。
【0033】〔レジスタ出力決定部〕このレジスタ出力
決定部では、各レジスタグループのレジスタの出力を相
互に比較して、それらの多推決によってレジスタ出力を
得る。
【0034】(10)第10の発明の要旨 (6)において、内部レジスタのレジスタ出力の値とあ
らかじめ設定された期待値とを比較する比較部と、この
比較部の出力が一致しない場合にマイクロプロセッサの
内部で一時故障による命令の実行順序の誤りが発生する
ことを検出する検出部とを具備する。
【0035】〔比較部〕この比較部では、内部レジスタ
のレジスタ出力の値とあらかじめ設定された期待値とを
比較する。
【0036】〔検出部〕この検出部では、比較部の出力
が一致しない場合にマイクロプロセッサの内部で一時故
障による命令の実行順序の誤りが発生することを検出す
る。
【0037】なお、(1)から(5)までの構成、また
は(6)から(10)までの構成はそれぞれ任意に組合
せることができる。
【0038】
【作用】
(1)第1の発明の作用 第1の発明では、たとえばマイクロプロセッサ1は、レ
ジスタグループ内の内部レジスタ2の値をそれぞれ比較
し、一致する場合に出力を行い、不一致の場合には出力
をしないようにして、データのビット列の中から不必要
な部分を削除するためビットパターンをマスクする。
【0039】これにより、マイクロプロセッサ1の動作
時においても、一時故障による誤りが含まれないように
することができる。 (2)第2の発明の作用 第2の発明では、マイクロプロセッサの内部レジスタを
読み込みそれぞれのレジスタグループ毎に演算を実行す
る。たとえば位置特定演算命令200を用いて演算処理
を実行する。
【0040】この位置特定演算命令200は、たとえば
予め定められたレジスタRnに対して、予め定められた
即値を二進数で表すと、VAL1=000000012,VAL
2=000000102,VAL3=000001102となり、これらの
即値VAL1〜VAL3により、まずビット毎の排他的
論理和(XOR)をとることにより求められる。
【0041】すなわち、先ずビット毎の排他的論理和
(XOR)をとり、つぎに1ビットだけ最終的なレジス
タRnの値から論理左シフト(LSFT)をするという
操作を順次繰り返し行う。
【0042】この場合、即値VAL1〜VAL3までの
演算処理について、全ての命令が正しく実行されたとき
の最終的なレジスタRnの値は、RES=000010002
なる。 (3)第3の発明の作用 第3の発明では、各レジスタグループのレジスタの出力
を相互に比較し、それらの多数決によって前記マイクロ
プロセッサのレジスタグループを選択する。 (4)第4の発明の作用 第4の発明では、各レジスタグループのレジスタの出力
を相互に比較し、それらの多数決によって決定されたレ
ジスタ出力を得る。
【0043】これにより、マイクロプロセッサ1内で発
生する一時故障を高率で阻止することができる。 (5)第5の発明の作用 第5の発明では、内部レジスタのレジスタ出力の値とあ
らかじめ設定された期待値とを比較し、一致しない場合
にマイクロプロセッサの内部で一時故障による命令の実
行順序の誤りが発生することを検出することにより、処
理を迅速に行うことが可能になる。 (6)第6の発明の要旨 第6の発明ではレジスタグループ分割部で、マイクロプ
ロセッサを用いた計算機システムの内部レジスタを複数
のレジスタグループに分割する。
【0044】データ読込み部では、マイクロプロセッサ
の外部装置から送出されデータをマイクロプロセッサ内
の内部レジスタにより読み込む。変換部では、データ読
込み部の内部レジスタで読み込んだデータに対応した命
令にする。
【0045】検出部では、変換部で変換された命令を比
較してマイクロプロセッサ内部のデータに一時故障によ
る誤りがないことを検出する。阻止部では、検出部で検
出した命令が一致しない場合にマイクロプロセッサから
データが出力しないよう阻止する。
【0046】これにより、処理の確実性を確保すること
が可能になる。 (7)第7の発明の作用 第7の発明では、マイクロプロセッサの内部レジスタを
読み込みそれぞれのレジスタグループ毎に演算を実行す
る演算実行部とを包含する。
【0047】演算部では、マイクロプロセッサの内部レ
ジスタを読み込みそれぞれのレジスタグループ毎に演算
を実行する。 (8)第8の発明の要旨 第8の発明では、選択部で各レジスタグループのレジス
タの出力を相互に比較し、それらの多数決によってマイ
クロプロセッサのレジスタグループを選択する。
【0048】(9)第9の発明の要旨 第9の発明では、レジスタ出力決定部では、各レジスタ
グループのレジスタの出力を相互に比較して、それらの
多推決によってレジスタ出力を得る。
【0049】(10)第10の発明の要旨 第10の発明では、比較部で内部レジスタのレジスタ出
力の値とあらかじめ設定された期待値とを比較する。
【0050】検出部では、比較部の出力が一致しない場
合にマイクロプロセッサの内部で一時故障による命令の
実行順序の誤りが発生することを検出する。これによ
り、処理の短縮が可能になる。
【0051】
【実施例】以下、本発明の実施例を図面を参照して説明
する。 (実施例1)第1の実施例を、図1〜図4に基づいて説
明する。 〔実施例1の概要〕実施例1は、コンピュータシステム
におけるマイクロプロセッサ内部で発生する一時故障を
高率で検出し、それらの検出されたデータのビット列の
中から不必要な部分を削除するためビットパターンをマ
スクする方法および装置を提供する 。<第1の実施例の内容>図1は本発明の一実施例に用
いたシステム構成図、図2は本発明の一実施例に用いた
マイクロプロセッサの構成図を示すものである。
【0052】これらの図において、マイクロプロセッサ
24はクロック発生回路23より供給されるクロック信
号に基づいて駆動する。このマイクロプロセッサ24
は、たとえば制御部27、変換部30、読込部31、演
算部32および比較部33から構成される。
【0053】この変換部30は、たとえば命令列を変換
する命令列変換部34、分岐命令の変換をする分岐命令
変換部35および分岐先を変換する分岐先変換部36か
ら成る。
【0054】比較部33では、たとえば外部メモリ25
の所定記憶領域に予め書き込まれた命令列のデータと入
出力装置26からマイクロプロセッサ24に送出された
信号を比較する。
【0055】このマイクロプロセッサ24は、図16に
示すようにレジスタグループA,B,C・・・から成
る。なお、レジスタグループC以降については説明の都
合上から省略した。
【0056】各レジスタグループA,B,Cには内部レ
ジスタ40が設けられている。たとえば、レジスタグル
ープAの内部レジスタ40は、a1・・・・aNから成
る。レジスタグループBの内部レジスタ40は、たとえ
ば、b1・・・・bNから成る。レジスタグループCの
内部レジスタ40は、たとえば、c1・・・・cNから
成る。
【0057】また比較演算部41では、図2に示す演算
部32および比較部33の両方の機能を有する。具体的
には、たとえば演算増幅器により構成される。
【0058】本実施例では、変換部30によってマイク
ロプロセッサ24で実行される命令列をあらかじめ変換
する。この変換部30では、図2に示すようにマイクロ
プロセッサ24の内部のレジスタ40を、論理的に複数
のグループレジスタグループAからレジスタグループC
に分割する。
【0059】ここで、論理的に分割するということの意
味は、実際に存在する物理的なレジスタグループではな
く、たとえばCPUが論理的に考えた仮想的なレジスタ
グループに区分することをいう。
【0060】本実施例では、図3に示すプログラム中の
命令を命令列201〜205に変換する。ここで、命令
列201〜205に対応する変換をa〜e変換として説
明する。
【0061】(命令列201のa変換)まず、変換部3
0では、レジスタグループAの内部レジスタ40の、た
とえばa変換を行うためメモリ25、入出力装置26な
ど外部から送出される値をマイクロプロセッサ24の内
部レジスタ40へ読み込む命令に変換する。
【0062】この命令では、それぞれのレジスタグルー
プAからレジスタグループCに属する内部レジスタ40
へ重複して読み込むレジスタグループA〜Cの数だけ連
続した命令列201へ変換する。
【0063】(命令列202のb変換)次に、b変換で
は、内部レジスタの値を用いて演算処理を実行する命令
をする。
【0064】この命令では、それぞれのレジスタグルー
プで、グループ内の対応する内部レジスタ40を用いて
独立に実行して、レジスタグループの数だけ連続した命
令列202へ変換する。
【0065】(命令列203のc変換)また、c変換で
は、分岐条件の算出演算と条件分岐命令に変換する。こ
の命令では、それぞれのグループの分岐条件の算出を連
続して行うレジスタグループの数だけ連続した命令列に
変換し、さらにそれらの多数決によって後続の分岐先を
選択するような命令列203を付加する。
【0066】(命令列204のd変換)さらに、d変換
では、内部レジスタ40の値をメモリ25、入出力装置
26などマイクロプロセッサ24の外部へ出力する命令
をする。
【0067】そして、複数のグループが持つレジスタの
値を交互に比較する命令列と、それらの多数決によって
決定された値を出力する命令列204へ変換する。 (命令列205のe変換)たとえば、e変換では、一時
故障が発生する確率が十分小さくなる時間間隔内で実行
可能な命令数毎、および分岐命令の直前の命令に挿入す
る。
【0068】ここで、たとえば、マイクロプロセッサ2
4内で発生する一時故障の単位時間当りの確率をρとす
ると、時間△Tの間に一時故障が発生する確率Pは、 P=△Tρ ・・・・・(1)式 と表すことができる。
【0069】いま、△Tで実行可能な命令数N毎に、そ
の命令がその位置で正しく実行されたことが、演算結果
により後続の命令で特定できるような演算を予め定めら
れた内部レジスタ40に対して行う命令(以下、この命
令を「位置特定演算命令」という)を挿入する。
【0070】位置特定演算命令200の例としては、命
令挿入位置毎に一意に定められた素数の即値によって、
特定の内部レジスタ40に対して、たとえば排他的論理
和を繰り返して行く命令である。
【0071】この位置特定演算命令200は、たとえば
予め定められたレジスタRnに対して、予め定められた
即値を二進数で表すと、VAL1=000000012,VAL
2=000000102,VAL3=000001102となり、これらの
即値VAL1〜VAL3により、まずビット毎の排他的
論理和(XOR)をとることにより求められる。
【0072】すなわち、先ずビット毎の排他的論理和
(XOR)をとり、つぎに1ビットだけ最終的なレジス
タRnの値から論理左シフト(LSFT)をするという
操作を順次繰り返し行う。
【0073】この場合、即値VAL1〜VAL3までの
演算処理について、全ての命令が正しく実行されたとき
の最終的なレジスタRnの値が、RES=000010002
なる。
【0074】このときの命令列の例を図5のフローチャ
ートに基づいて説明する。先ず、図5のフローチャート
において、排他的論理和(XOR)の最終的なレジスタ
Rnの一方の値を、Rn=0として初期化する(ST3
0)。
【0075】一方のレジスタRnの値を、Rn=0とし
て初期化した後に、他方のレジスタRnの即値VAL1
を000000012として排他的論理和を求める(ST3
1)。このときレジスタRnの論理を1ビツトだけ左に
シフトさせる(ST32)。
【0076】以上のST31とST32が先に説明した
位置特定演算命令200である。レジスタRnの論理を
1ビツトだけ左にシフトさせた後には、通常のロード命
令や演算命令などを実行する(ST33)。
【0077】このロード命令や演算命令を実行したのち
には、分岐条件算出命令などを実行する(ST34)。
次に、以上に説明したST30〜ST34と同様の処理
をレジスタRnの即値VAL2=000000102について同
様に実行する(ST35,36)。
【0078】以上のST35とST36の命令が先に説
明した位置特定演算命令200である。レジスタRnの
論理を1ビツトだけ左にシフトさせた後には、通常のロ
ード命令や演算命令などを実行する(ST37)。
【0079】このロード命令や演算命令を実行したのち
には、分岐条件算出命令などを実行する(ST38)。
また、以上に説明したST35〜ST37と同様の処理
をレジスタRnの即値VAL3=000001102について同
様に実行する(ST39,40)。
【0080】以上のST39とST40の命令が先に説
明した位置特定演算命令200である。レジスタRnの
論理を1ビツトだけ左にシフトさせた後には、通常のロ
ード命令や演算命令などを実行する(ST41)。
【0081】このロード命令や演算命令を実行したのち
には、分岐条件算出命令などを実行する(ST42)。
分岐条件算出命令などの命令を実行した後には、最終的
なレジスタRnの値がRES=000010002となるか否か
を判断する(ST43)。
【0082】最終的なレジスタRnの値がRES=0000
10002となる場合(ST43においてYesのとき)に
は、命令実行が正常であることをオペレータに認識させ
る。また最終的なレジスタRnの値がRES=00001000
2でない場合(ST43においてNoのとき)には、命
令実行の誤りがあることをオペレータに認識させる。
さらに命令列205のe変換では、命令列中の適当な位
置へ、位置特定演算命令が正しく実行されたことをチェ
ックする命令列を挿入する。
【0083】これは、特定の内部レジスタ40の値を、
命令中に予め格納された即値の期待値と比較すること
で、位置特定演算命令が正しく実行されたことをチェッ
クする先に説明した命令列205である。
【0084】<動作フローチャート>図3は本発明の一
実施例の動作を説明するためのフローチャートである。 (フローチャート201)フローチャート201は、メ
モリ25、入出力装置26など外部からの値をマイクロ
プロセッサ24の内部レジスタ40へ読み込む複数の命
令列に変換する処理をする。
【0085】この処理においては、まず内部レジスタ4
0のレジスタグループA〜レジスタグループCを論理的
に区分する。ここで、論理的に区分するということの意
味は、実際に存在する物理的なレジスタグループではな
く、たとえばCPUが論理的に考えた仮想的なレジスタ
グループ毎に分割することをいう。
【0086】レジスタanでは、レジスタグループAへ
のロード命令を行う(ST1)。レジスタanでレジス
タグループAへのロード命令を行った後には、レジスタ
bnでレジスタグループBへのロード命令を行う(ST
2)。
【0087】レジスタbnでレジスタグループBへのロ
ード命令を行った後には、レジスタcnでレジスタグル
ープCへのロード命令を行う(ST3)。以上により、
メモリ25、入出力装置26など外部からの値をマイク
ロプロセッサ24の内部レジスタ40へ読み込む複数の
命令列に変換することができる。 (フローチャート202)次に、フローチャート202
は、内部レジスタ40の値を用いて演算処理を実行する
命令に変換する処理である。
【0088】このフローチャート202は、メモリ2
5、入出力装置26など外部からの値をマイクロプロセ
ッサ24の内部レジスタ40へ読み込む命令の変換処理
をする。
【0089】まず、レジスタanのレジスタグループA
を用いた演算命令を実行する(ST4)。レジスタan
のレジスタグループAを用いた演算命令を実行した後に
は、レジスタbnのレジスタグループBを用いた演算命
令を実行する(ST5)。
【0090】レジスタbnのレジスタグループBを用い
た演算命令を実行した後には、レジスタcnのレジスタ
グループCを用いた演算命令を実行する((ST6)。
この処理フローチャート202を実行することにより、
内部レジスタの値を用いて演算処理を実行する命令は、
グループ内のレジスタを用してそれぞれのグループで独
立に実行される複数の命令列に変換することができる。 (フローチャート203)次に、フローチャート203
は、分岐条件の算出演算と条件分岐命令を、それぞれの
グループの分岐条件の算出を連続して行う命令列に変換
し、その処理結果の多数決によつて、後続の分岐先を選
択する命令列を付加する。
【0091】すなわち、レジスタグループAを用いた分
岐条件の算出命令を実行する(ST7)。レジスタグル
ープAを用いた分岐条件の算出命令を実行した後には、
レジスタグループBを用いた分岐条件の算出命令を実行
する(ST8)。
【0092】レジスタグループBを用いた分岐条件の算
出命令を実行した後には、レジスタグループCを用いた
分岐条件の算出命令を実行する(ST9)。レジスタグ
ループCを用いた分岐条件の算出命令を実行した後に
は、各グループの算出した分岐条件の比較命令列および
多数決による分岐条件の決定命令列を実行する(ST1
0)。
【0093】各グループの算出した分岐条件の比較命令
列および多数決による分岐条件の決定命令列を実行した
後には、分岐命令を実行する(ST11)。以上のフロ
ーチャート203では、分岐条件の算出演算と条件分岐
命令を、それぞれのグループの分岐条件の算出を連続し
て行う命令列に変換し、その処理結果の多数決によつ
て、後続の分岐先を選択する命令列を付加する。 (フローチャート204)次にフローチャート204
は、内部レジスタ40の値をマイクロプロセッサ24の
外部にあるメモリ25、入出力装置26などマイクロプ
ロセッサ24の外部へ出力する命令列へ変換する処理で
ある。
【0094】このフローチャート204では、an,b
n,cnの比較命令列と、多数決によって決定された値
を出力する命令列へ変換する(ST12)。その後にス
トア命令を実行する(ST13)。
【0095】以上のフローチャート204によれば、分
岐条件の算出演算と条件分岐命令を、それぞれのグルー
プの分岐条件の算出を連続して行う命令列に変換し、そ
の処理結果の多数決によつて、後続の分岐先を選択する
命令列を付加することができる。 (フローチャート205)次に図4に説明するフローチ
ャート205は、一時故障が発生する確率が十分小さく
なる時間間隔内で実行可能な命令数ごと、および分岐命
令の直前に命令列を挿入する処理である。
【0096】まず、この演算命令1を実行する(ST1
4)。この演算命令1を実行した後には、演算命令2を
実行する(ST15)。そして、実行可能命令数N(こ
こで、Nは3以上の自然数)を実行する(ST16)。
【0097】実行可能命令数N(ここで、Nは3以上の
自然数)を実行した後には、位置特定演算命令1を実行
する(ST17)。位置特定演算命令1を実行した後に
は、命令Nを実行する(ST18)。
【0098】この命令Nを実行した後には、命令(N+
1)を実行する(ST19)。命令(N+1)を実行し
た後には、命令(N+2)を実行する(ST20)。こ
のようにして命令(N+2)を実行した後には、位置特
定演算命令2を実行する(ST21)。
【0099】位置特定演算命令2を実行した後には、分
岐命令を実行する(ST22)。分岐命令を実行した後
には、命令Mを実行する(ST23)。この命令Mを実
行した後には、命令(M+1)を実行する(ST2
4)。
【0100】命令(M+1)を実行した後には、命令
(M+2)を実行する(ST25)。このようにして命
令(M+2)を実行した後には、位置特定演算命令の実
行履歴ヲチェックする命令列を挿入する(ST26)。
【0101】以上のフローチャート205の処理では、
一時故障が発生する確率が十分小さくなる時間間隔内で
実行可能な命令数ごと、および分岐命令の直前に命令列
を挿入することができる。
【0102】したがって、本実施例では、フローチャー
ト201〜205でする命令列に変換a〜変換dを行う
ことにより、プログラム実行時にプロセッサ101の内
部で複数の演算処理を独立して冗長に実行させることが
できるようになる。
【0103】また本実施例では、内部レジスタの値を外
部メモリ25、入出力装置26などのマイクロプロセッ
サ24の外部へ出力するとき、複数のグループがもつレ
ジスタの値を相互に照合することにより誤り検出が行わ
れ、それぞれの処理結果に一時エラーに起因する不一致
があるときには出力されず、いわゆるマスクされること
になり、マイクロプロセッサ24の動作時においても、
一時故障による誤りが含まれなくなる。
【0104】また本実施例では、条件分岐命令の実行に
おいても、独立して算出された分岐条件が比較されて、
条件分岐命令が最終的に用いる条件が多数決によって決
定されるので、それぞれの処理結果に一時エラ−に起因
する不一致があっても、やはりマスクされる。
【0105】一方、先に説明した変換eを行ったプログ
ラムの実行時に、位置特定演算命令が正しく実行された
ことが確認されたにもかかわらず、一時故障の発生によ
り命令列が順序どうり正しく実行されていない確率Pc
は、後続の命令を照合するまでの位置特定演算の命令実
行回数をMとすると、以下の式で与えられる。 Pc=P*M =(1ー△Tρ)*M ・・・・・・(2)式 この(2)式において、ρは1×10-6ERROR/C
PU/SEC程度の十分小さい値である。
【0106】この(2)式からあきらかなように、△T
とMを適当に選ぶことで、Pcを十分に小さな値とする
ことが可能である。以上説明してきたように、本実施例
では、従来のハードウェアの冗長化を用いた方法に比べ
て、使用するハードウェアの部品を削減することがで
き、またこの結果システムの消費電力や重量を減らすこ
とができるので、衛星搭載用コンピュータなどに用いる
ことが有効である。
【0107】また本実施例では、内部レジスタの値を外
部メモリ、入出力装置へプロセッサ外部へ出力すると
き、複数のグループがもつレジスタの値を相互に照合す
ることにより、誤り検出が行われるので、従来のように
処理を複数回繰り返す必要がなくなるので、処理の開始
前の入力データの初期値および出力データを保存してお
く必要もなくなる。
【0108】さらに、本実施例では、処理速度の向上が
可能である。すなわち、たとえば高速処理が必要となる
RISCアーキテクチャをとるマイクロプロセッサ24
が多く用いられている。
【0109】このマイクロプロセッサ24では、パイプ
ライン処理が採用されているが、このパイプライン処理
では連続した命令間での使用レジスタの競合により、パ
イプラインのインターロックが発生し、処理速度が著し
く低下することがある。
【0110】これに対して本実施例では、全く異なった
コンテクストの複数の命令列に属する命令が交互に実行
されるので、パイプライン処理のインターロック時に起
因する速度低下を招かなくなり、結果として同じ処理を
単純に複数回連続して繰り返す従来方法より処理速度が
向上する。 (変形例)以下に、第1実施例の変形例について説明す
る。 <変形例1>変形例1は、命令列を用いて演算処理を行
い、その演算処理命令により連続命令列に変換を行う第
2プロセスにおいて、図2に示す位置特定演算命令20
0を用いて演算処理を実行する。
【0111】
【発明の効果】これまで述べてきたように、本発明はマ
イクロプロセッサ内の一時故障の検出、マスクに有効
で、従来の方式にたいして以下の利点を持つものであ
る。 (1)本発明によれば、ハードウエアの削減をすること
ができる。すなわち、従来のハードウェアの冗長化を用
いた方法に比べて、使用するハードウェアを削減するこ
とができるので、システムの消費電力や重量を減らすこ
とができ、衛星搭載用コンピュータなどに用い場合など
に有利になるという効果が得られる。 (2)本発明によれば、メモリ領域などの削減を図るこ
とができる。
【0112】すなわち、内部レジスタの値を外部メモ
リ、入出力装置などプロセッサ外部へ出力する時点で、
複数のグループがもつレジスタの値を相互にチェックす
ることにより誤りの検出を行うことができるので、従来
の単純に処理を複数回繰り返す手法のように、処理を開
始する前の入力データの初期値および出力データを保存
しておく必要がなくなるので、メモリ領域を削減するこ
とが可能になるという効果が得られる。 (3)本発明によれば、処理速度の向上を図ることが可
能である。
【0113】すなわち、高速処理が必要とされる分野で
は、RISCアーキテクチャなどのアーキテクチャをと
るマイクロプロセッサが多く用いられている。これらの
プロセッサでは、命令をパイプライン処理しているが、
そのパイプライン処理では連続した命令間での使用レジ
スタの競合により、パイプラインのインターロックが発
生し、処理速度の低下を招くことがあるが、本発明によ
れば、全く異なったコンテクストの複数の命令列に属す
る命令が交互に実行されるので、パイプラインのインタ
−ロックに起因する速度低下がほとんどなくなる。
【0114】その結果として,同じ処理を単純に複数回
連続して繰り返す従来手法より処理速度を向上させるこ
とが可能になるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施例のブロック図である。
【図2】本発明の一実施例のブロック図である。
【図3】本発明の一実施例のフローチャートである。
【図4】本発明の一実施例のフローチャートである。
【図5】本発明の一実施例のフローチャートである。
【図6】従来の故障阻止回路の具体的な例を示すブロッ
ク図である。
【図7】図5の回路動作を説明するためのフローチャー
トである。
【図8】図5の回路動作を説明するためのフローチャー
トである。
【図9】従来のソフトウェアによるその他の処理の例で
ある。
【符号の説明】
24 マイクロプロセッサ 25 メモリ 26 入出力部 30 変換部 31 読込部 32 演算部 33 比較部 34 命令列変換部 35 分岐命令変換部 36 分岐先変換部 37 検出部 40 内部レジスタ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサを用いた計算機シ
    ステムであって、 前記マイクロプロセッサの内部レジスタを複数のレジス
    タグループに分割し、 それらレジスタグループからなるマイクロプロセッサの
    外部装置から送出されたデータを各内部レジスタでそれ
    ぞれ読み込み、それらの内部レジスタで読み込んだデー
    タに対応した命令にそれぞれ変換し、 それらの命令をそれぞれ比較することによりマイクロプ
    ロセッサ内部のデータに一時故障による誤りがないこと
    を検出し、 これら命令が一致しない場合には前記マイクロプロセッ
    サからデータが出力しないようにする、 マイクロプロセッサの故障阻止方法。
  2. 【請求項2】 前記マイクロプロセッサの内部レジス
    タを読み込みそれぞれのレジスタグループ毎に演算を実
    行する、 請求項1に記載のマイクロプロセッサの故障阻止方法。
  3. 【請求項3】 前記各レジスタグループのレジスタの
    出力を相互に比較し、それらの多数決によって前記マイ
    クロプロセッサのレジスタグループを選択する、 請求項1または請求項2のいずれに記載のマイクロプロ
    セッサの故障阻止方法。
  4. 【請求項4】 前記各レジスタグループのレジスタの
    出力を相互に比較し、 それらの多数決によって決定されたレジスタ出力を得
    る、 請求項1ないし請求項3のいずれかに記載のマイクロプ
    ロセッサの故障阻止方法。
  5. 【請求項5】 前記内部レジスタのレジスタ出力の値
    とあらかじめ設定された期待値とを比較し、 一致しない場合にマイクロプロセッサの内部で一時故障
    による命令の実行順序の誤りが発生することを検出す
    る、 請求項1ないし請求項4のいずれかに記載のマイクロプ
    ロセッサの故障阻止方法。
  6. 【請求項6】 マイクロプロセッサを用いた計算機シ
    ステムであって、 前記マイクロプロセッサの内部レジスタを複数のレジス
    タグループに分割するレジスタグループ分割部と、 それらレジスタグループ分割部からなるマイクロプロセ
    ッサの外部装置から送出されデータを各内部レジスタで
    それぞれ読み込むデータ読込み部と、 このデータ読込み部のそれらの内部レジスタで読み込ん
    だデータに対応した命令にそれぞれ変換する変換部と、 その変換部で変換された命令をそれぞれ比較することに
    よりマイクロプロセッサ内部のデータに一時故障による
    誤りがないことを検出する検出部と、 この検出部で検出した命令が一致しない場合には前記マ
    イクロプロセッサからデータが出力しないよう阻止する
    阻止部とを具備する、 マイクロプロセッサの故障阻止装置。
  7. 【請求項7】 前記マイクロプロセッサの内部レジス
    タを読み込みそれぞれのレジスタグループ毎に演算を実
    行する演算実行部とを包含する、 請求項6に記載のマイクロプロセッサの故障阻止装置。
  8. 【請求項8】 前記各レジスタグループのレジスタの
    出力を相互に比較し、それらの多数決によって前記マイ
    クロプロセッサのレジスタグループを選択する選択部を
    包含する、 請求項6または請求項7のいずれに記載のマイクロプロ
    セッサの故障阻止装置。
  9. 【請求項9】 前記各レジスタグループのレジスタの
    出力を相互に比較して、それらの多数決によってレジス
    タ出力を得るレジスタ出力決定部とを包含する、 請求項6ないし請求項8のいずれかに記載のマイクロプ
    ロセッサの故障阻止装置。
  10. 【請求項10】 前記内部レジスタのレジスタ出力の
    値とあらかじめ設定された期待値とを比較する比較部
    と、 この比較部の出力が一致しない場合にマイクロプロセッ
    サの内部で一時故障による命令の実行順序の誤りが発生
    することを検出する検出部とを具備する、 請求項6ないし請求項9のいずれかに記載のマイクロプ
    ロセッサの故障阻止装置。
JP6218865A 1994-09-13 1994-09-13 マイクロプロセッサの故障阻止方法とその装置 Withdrawn JPH0883191A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6218865A JPH0883191A (ja) 1994-09-13 1994-09-13 マイクロプロセッサの故障阻止方法とその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6218865A JPH0883191A (ja) 1994-09-13 1994-09-13 マイクロプロセッサの故障阻止方法とその装置

Publications (1)

Publication Number Publication Date
JPH0883191A true JPH0883191A (ja) 1996-03-26

Family

ID=16726527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6218865A Withdrawn JPH0883191A (ja) 1994-09-13 1994-09-13 マイクロプロセッサの故障阻止方法とその装置

Country Status (1)

Country Link
JP (1) JPH0883191A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002527820A (ja) * 1998-10-12 2002-08-27 センタ・ナショナル・デチュード・スパティアレ 過渡エラー制約を受ける電子システムのための処理手順およびメモリアクセス監視装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002527820A (ja) * 1998-10-12 2002-08-27 センタ・ナショナル・デチュード・スパティアレ 過渡エラー制約を受ける電子システムのための処理手順およびメモリアクセス監視装置

Similar Documents

Publication Publication Date Title
US6785842B2 (en) Systems and methods for use in reduced instruction set computer processors for retrying execution of instructions resulting in errors
US5515383A (en) Built-in self-test system and method for self test of an integrated circuit
US5596716A (en) Method and apparatus for indicating the severity of a fault within a computer system
US7340643B2 (en) Replay mechanism for correcting soft errors
US6640313B1 (en) Microprocessor with high-reliability operating mode
US5974529A (en) Systems and methods for control flow error detection in reduced instruction set computer processors
US5193158A (en) Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
US20050138478A1 (en) Error detection method and system for processors that employ alternating threads
US6173414B1 (en) Systems and methods for reduced error detection latency using encoded data
JPH0683663A (ja) マルチプロセッサ・コンピュータ・システム
JPH0260145B2 (ja)
US6715064B1 (en) Method and apparatus for performing sequential executions of elements in cooperation with a transform
US7657783B2 (en) Apparatus and computer program product for testing ability to recover from cache directory errors
US5958072A (en) Computer-system processor-to-memory-bus interface having repeating-test-event generation hardware
US4918695A (en) Failure detection for partial write operations for memories
US7146490B2 (en) Processing system and method for efficiently enabling detection of data hazards for long latency instructions
CN220983766U (zh) 用于双核锁步的周期故障检测修复电路
JPH0883191A (ja) マイクロプロセッサの故障阻止方法とその装置
US6701484B1 (en) Register file with delayed parity check
US7380165B2 (en) Assembly of electronic circuits comprising means for decontaminating error-contaminated parts
US5634136A (en) Data processor and method of controlling the same
US6125443A (en) Interrupt processing system and method for information processing system of pipeline control type
EP0936537A1 (en) Cyclic redundancy check in a computer system
AU700454B2 (en) Jump prediction
JP3240660B2 (ja) データ処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20011120