JPH0786840B2 - モジュロw回路 - Google Patents
モジュロw回路Info
- Publication number
- JPH0786840B2 JPH0786840B2 JP62158808A JP15880887A JPH0786840B2 JP H0786840 B2 JPH0786840 B2 JP H0786840B2 JP 62158808 A JP62158808 A JP 62158808A JP 15880887 A JP15880887 A JP 15880887A JP H0786840 B2 JPH0786840 B2 JP H0786840B2
- Authority
- JP
- Japan
- Prior art keywords
- modulo
- circuit
- value
- input
- output
- 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.)
- Expired - Lifetime
Links
- 230000000644 propagated effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Detection And Correction Of Errors (AREA)
Description
〔産業上の利用分野〕 本発明はデータ処理装置に関し,特に演算回路等のチェ
ックに用いられるモジュロW回路に関する。 〔従来の技術〕 モジュロW回路は,演算回路等のチェック回路として従
来より頻繁に使用されているチェック回路の1つであ
る。 又,モジュラスのWとしてはW=2W−1(例えば,3,7,1
5,…)がしばしば用いられる。なぜなら,モジュロWの
値をwビットで表現できるため,他のモジュラスに比べ
低コストで実現できるからである。 以下,W=2W−1の代表として,W=22−1=3を考える。
モジュロ3の3通りの値0,1,2に対し,2ビットデータで
表現する事ができる4通りの値〔0,0〕,〔0,1〕,〔1,
0〕〔1,1〕のうちの3通りの値を定義づける。例えば,0
に対し〔0,0〕,1に対し〔0,1〕,2に対し〔1,0〕を対応
させる。 第10図に従来より用いられているモジュロ3回路の一例
を示す。第10図において,演算装置9000は,第1入力デ
ータと第2入力データとを入力すると,それぞれ第1入
力オペランドレジスタ9001,第2入力オペランドレジス
タ9002に格納し,演算回路9011によって,第1入力オペ
ランドと第2入力オペランドとの間の演算を実行し,そ
の結果を演算結果レジスタ9003に格納し,その後出力す
る。 この演算装置9000におけるモジュロ3回路は,モジュロ
3期待値生成回路9012と,モジュロ3期待値レジスタ90
04と,モジュロ3一致チェック回路9013と,エラー表示
フラグ9005とで構成される。 モジュロ3期待値生成回路9012は,第1入力オペランド
レジスタ9001と第2入力オペランドレジスタ9002とか
ら,それぞれデータパス901,902を通して第1入力オペ
ランドと第2入力オペランドとを入力すると,演算回路
9011に対応したモジュロ3演算を実行し,演算結果のモ
ジュロ3の期待値を生成して,データパス912を通して
モジュロ3期待値レジスタ9004に出力する。 モジュロ3期待値レジスタ9004は,モジュロ3期待値生
成回路9012の出力であるモジュロ3期待値をデータパス
912を通して入力し,格納した後データパス904を通して
モジュロ3一致チェック回路9013に出力する。 モジュロ3一致チェック回路9013は,演算結果レジスタ
9003よりデータパス903を通して演算結果を入力すると
共に,モジュロ3期待値レジスタ9004よりデータパス90
4を通してモジュロ3期待値を入力すると,演算結果の
モジュロ3を生成し,その値と,モジュロ3期待値が一
致しているか否かをチェックし,一致していないとき
は,エラー報告をデータパス913を通してエラー表示フ
ラグ9005に出力する。 エラー表示フラグ(以後FIFと呼ぶ)9005は,データパ
ス913を通してエラー報告を入力すると,それを格納
し,以後解除信号を入力するまで,その値を保持すると
共に,エラー報告をデータパス905を通し出力する。 上述した様な動作により,演算装置9000の故障は検出さ
れ報告されるが,一般的なモジュロ3回路においては,
第10図で示したよりも詳細にチェックを実行しているの
が普通である。つまり,演算回路の最終結果だけなく,
中間結果に対しても同様な一致チェックが実行されてい
る。この場合の中間結果のモジュロ3期待値はデータパ
ス921を通って演算回路に入力される。 第11図は,演算装置内の演算回路の一部であって,その
中間結果に対してモジュロ3チェックを実行するときの
一例を示す図である。 第11図において,演算回路8000は2個の2進データX,Y
とそれぞれのモジュロ3値A,Bとを入力とし,2進データ
XとYとの間の演算結果Zと,演算結果Zのモジュロ3
値Cと,モジュロ3チェックの結果によるエラー報告E
とを出力とする。 第1入力レジスタ801と第2入力レジスタ802は,それぞ
れ2進データXとYとを入力し格納した後,それぞれデ
ータパス81,82を通して2進データX,Yを出力し,図示の
ように2進データX,Yは演算回路811に入力し,2進データ
X及びYはそれぞれ第1入力モジュロ3生成回路812及
び第2入力モジュロ3生成回路813の入力となる。 演算回路811は,データパス81を通して2進データX
を,データパス82を通して2進データYを入力すると2
進データXとYとの間で演算を実行し,その演算結果Z
をデータパス91を通し演算結果出力レジスタ803に出力
する。 演算結果出力レジスタ803は,データパス91を通して演
算結果Zを入力し格納した後,データパス83を通して演
算結果Zを出力する。演算結果Zは演算回路8000の出力
となると共に,演算結果モジュロ3生成回路816の入力
となる。 第1入力モジュロ3生成回路812は,データパス81を通
して2進データXを入力すると,そのモジュロ3値を生
成し,データパス92を通して出力し,モジュロ3値を一
致回路814と第1モジュロ3保持レジスタ804の入力とす
る。 第2入力モジュロ3生成回路813は,データパス82を通
して2進データYを入力すると,そのモジュロ3値を生
成し,データパス93を通して出力し,モジュロ3値を一
致回路815と第2モジュロ3保持レジスタ805の入力とす
る。 第1モジュロ3保持レジスタ804と第2モジュロ3保持
レジスタ805は,それぞれデータパス92,93を通して2進
データX,Yのモジュロ3値を入力し格納した後,それぞ
れデータパス84,85を通してモジュロ3演算回路817の入
力とする。 モジュロ3演算回路817は,データパス84を通して2進
データXのモジュロ3値を,データパス85を通して2進
データYのモジュロ3値を入力し,演算回路811の演算
に対応したモジュロ3演算を実行し,演算結果Zのモジ
ュロ3の期待値を生成し,データパス97を通して出力
し,一致回路818の入力とする。 演算結果モジュロ3生成回路816は,データパス83を通
して演算結果Zを入力すると,演算結果Zのモジュロ3
値を生成し,データパス96を通して一致回路818とモジ
ュロ3出力レジスタ806の入力とする。 モジュロ3出力レジスタ806は,データパス96を通して
演算結果Zのモジュロ3値を入力し格納した後,データ
パス86を通して演算結果Zのモジュロ3値Cを出力す
る。演算結果Zのモジュロ3値Cは演算回路8000の1出
力として,後段のモジュロ3回路(図示せず)の入力等
に用いられる。 一致回路814は,データパス92を通して2進データXの
モジュロ3値を入力すると共に,2進データXのモジュロ
3期待値Aを入力し,2進データXのモジュロ3値とその
期待値Aが一致しているか否かをチェックし,一致して
いないときはエラー報告をデータパス94を通してFIF
(エラー表示フラグ)808に出力する。 一致回路815も同様に,データパス93より入力される2
進データYのモジュロ3値とその期待値Bとを比較し,
その結果をデータパス95を通してFIF809に出力する。 一致回路818も同様にデータパス96より入力される演算
結果Zのモジュロ3値とデータパス97より入力される期
待値とを比較し,その結果をデータパス98を通してFIF8
07に出力する。 FIF807,808,809は,それぞれデータパス98,94,95を通し
てエラー報告を入力すると,それを格納し,以後解除信
号を入力するまでその値を保持すると共に,その値を論
理和回路810に出力する。 論理和回路810は,FIF807,808,809のいずれかよりエラー
報告を入力すると,故障発生を示すエラー報告Eを演算
回路8000の1出力として出力する。 〔発明が解決しようとする問題点〕 第10図及び第11図において,従来のモジュル3回路で
は,モジュロ3が「データの示す数値を3で割った余
り。」であるという数学的理由から,モジュロ3の値と
して3つまり2進データ〔1,1〕は考慮されていない。
しかしながら,本来データ処理装置で用いられるモジュ
ロ3回路は,回路の故障を検出するためのチェック回路
に用いられているのであるから,故障によってモジュロ
3の値が〔1,1〕となるケースも考慮すべきである。 例えば第11図において,第1入力モジュロ3生成回路81
2の故障により,データパス92のパス上に〔1,1〕が出力
された場合,従来のモジュロ3回路〔1,1〕の入力に対
する出力は不定とされ,一致回路814,モジュロ3演算回
路817,一致回路818等の出力は,論理的な意味を持た
ず,その回路構成に依存する。 従って,モジュロ3回路自体の故障によって,〔1,1〕
のパターンが生じた場合,その故障を検出する事は困難
であり,さらに演算回路上の故障によって演算結果が不
正となった場合も,そのモジュロ3の値が,上記〔1,
1〕に対する出力と同じ値の場合には,その故障は検出
されず,そのチェック回路の検出率は著しく低下するば
かりでなく,それより下段のチェック回路においてエラ
ー表示フラグが点灯した時には,その故障箇所の指摘に
誤りを生ずる要因となる。 また演算回路の一部をLSI等で実現する様な場合,そのL
SI等単体の故障検出のための評価には,通常ある種のテ
ストパターンの入力に対する出力およびフリップフロッ
プ内の値に用いて,LSI等内の論理ゲートや論理パターン
の検証をする。 LSI内にモジュロ3回路を含む場合には,テスト入力と
して〔1,1〕のケースを含まないと,その検出率が向上
しないため,演算回路全体としては論理的に全く無意味
とされる〔1,1〕の入力に対しても論理の記述が必要と
なり,その論理は回路構成に完全に依存するため,非常
に複雑で容易に理解しがたい記述となってしまう。 一方モジュロ3を用いたチェック回路としては,前述の
様にモジュロ3の期待値と,実際の演算結果から生成さ
れるモジュロ3の値とを一致チェックする。そのため,
検出率を向上させるためには,演算回路各部の期待値を
生成し,その個々にエラーフラグを設定する必要があ
り,ハードウェア量の増加が大きいと共に,その中の複
数のエラーフラグが点灯した時には,その原因が同じ故
障によるものか否かの判別が困難である。 一般に,従来のモジュロW回路では,全ビット“1"に対
する考慮がされていないため,モジュロW回路としての
故障の検出率,分解能の向上が困難であり,さらに近年
のLSI化に伴うチェック回路の検証の際,無意味な全ビ
ット“1"の論理記述が設計効率向上の妨げとなっている
という欠点がある。換言すると,従来のモジュロW回路
は,チェック回路設計が容易である反面,パリティ・チ
ェック等の他のチェック回路に比較し,エラー発生の際
の検出率及びエラー検出の際のエラー箇所指摘のための
分解能が低いという欠点がある。 〔問題点を解決するための手段〕 本発明は、wビットの入力、wビットの出力を有するモ
ジュロW回路であって、wビット(w≧2)で表現する
ことができる2w通りの2進値のうち、全ビットが“1"を
除くW(=2W−1)通りの2進値のうち1通りのコード
は、故障が検出されたことを示すエラーコードとして定
義され、全ビットが“1"を含む残りのW(=2W−1)通
りの2進値は、モジュロWのW通りのコードとして定義
され、故障が発生又は故障を検出したエラーコードを生
成した際には、そのエラーコードを伝搬させることを特
徴とするモジュロW回路であって、n個のwビットデー
タA1=[a11,a12…,a1w],A2=[a21,a22…,a2w],…,
An=[an1,an2,…,anw]の入力のうちの1つ以上が前記
エラーコードを示しているとき、wビットデータC=
[c1,c2,…,cw]として前記エラーコードを出力する。 〔実施例〕 次に本発明の実施例について図面を参照して説明する。 なお,以下の説明では,W=3の場合,すなわちモジュロ
3回路について述べる。 第1図は本発明の実施例であり,本発明のモジュロ3回
路を使用した演算回路のブロック図である。 第1図において,演算回路6000は,2個の2進データX,Y
と,それぞれのモジュロ3期待値A,Bとを入力とし,2進
データXとYとの間の演算結果Zと,演算結果Zのモジ
ュロ3値Cとを出力する。 第1入力レジスタ701と第2入力レジスタ702は,それぞ
れ2進データXとYとを入力し格納した後,それぞれデ
ータパス17,72を通して2進データX,Yを出力し,図示の
ように2進データX,Yは演算回路601に入力し,2進データ
X及びYはそれぞれ第1入力モジュロ3生成回路602及
び第2入力モジュロ3生成回路603の入力となる。 演算回路601は,データパス71を通して2進データX
を,データパス72を通して2進データYを入力すると,2
進データXとYとの間で演算を実行し,その演算結果Z
をデータパス61を通し,演算結果出力レジスタ703に出
力する。 演算結果出力レジスタ703は,データパス61を通して演
算結果Zを入力し格納した後,データパス73を通して演
算結果Zを出力する。演算結果Zは演算回路6000の出力
になると共に,演算結果モジュロ3生成回路606の入力
となる。 第1入力モジュロ3生成回路602は,データパス71を通
して2進データXを入力すると,そのモジュロ3値を生
成し,データパス62を通して出力し,モジュロ3値を第
1入力モジュロ3一致回路604の入力とする。 第2入力モジュロ3生成回路603は,データパス72を通
して2進データYを入力すると,そのモジュロ3値を生
成し,データパス63を通して出力し,モジュロ3値を第
2入力モジュロ3一致回路605の入力とする。 演算結果モジュロ3生成回路606は,データパス73を通
して演算結果Zを入力すると,そのモジュロ3値を生成
し,データパス66を通して出力し,モジュロ3値を演算
結果モジュロ3一致回路608の入力とする。 第1入力モジュロ3一致回路604は,データパス62を通
して2進データXのモジュロ3値を入力すると共に,2進
データXのモジュロ3期待値Aを入力し,2進データXの
モジュロ3値とその期待値Aが一致しているか否かをチ
ェックし,一致している時は,2進データXのモジュロ3
値をそのまま出力し,2進データXのモジュロ3値と期待
値Aとのいずれかが〔1,1〕の時,あるいは2進データ
Xのモジュロ3値の期待値Aが一致していない時は,
〔1,1〕を出力し,出力されたモジュロ3値はデータパ
ス64を通して第1モジュロ3保持レジスタ704の入力と
なる。 第2入力モジュロ3一致回路605は,データパス63を通
して2進データYのモジュロ3値を入力すると共に,2進
データYのモジュロ3期待値Bを入力し,第1入力モジ
ュロ3一致回路604と同様に一致チェックを実行し,2進
データYのモジュロ3値あるいは〔1,1〕を,データパ
ス65を通して出力し,第2モジュロ3保持レジスタ705
の入力とする。 第1モジュロ3保持レジスタ704は,データパス64を通
し第1入力モジュロ3一致回路604の出力モジュロ3値
を入力し,ストローブ信号によって格納後,データパス
74を通して出力し,モジュロ3演算回路607の入力とす
る。ただし,ストローブ信号入力前の本レジスタ内の保
持値が〔1,1〕)のときは,ストローブ信号入力後も
〔1,1〕が保持され,ストローブ信号に拘らず本レジス
タの出力モジュロ3値は〔1,1〕を保ち,変化しない。 第2モジュロ3保持レジスタ705は,データパス65を通
し第2入力モジュロ3一致回路605の出力モジュロ3値
を入力し,ストローブ信号によって格納後,データパス
75を通して出力し,モジュロ3演算回路607の別の入力
とする。ただし,ストローブ信号入力前の本レジスタ内
の保持値が〔1,1〕のときは,第1モジュロ3保持レジ
スタ704と同様に〔1,1〕が保持され,出力は変化しな
い。 モジュロ3演算回路607は,第1モジュロ3保持レジス
タ704の出力モジュロ3値をデータパス74を通して入力
とすると共に第2モジュロ3保持レジスタ705の出力モ
ジュロ3値をデータパス75を通して入力とし,いずれか
のモジュロ3値が〔1,1〕の時は〔1,1〕をそのまま出力
し,両方共に〔1,1〕でない時には,その2個のモジュ
ロ3値間で,演算回路601に対応したモジュロ3演算を
実行し,その結果を出力する。モジュロ3演算回路607
の出力は、演算結果Zのモジュロ3期待値とし,データ
パス67を通して演算結果モジュロ3一致回路608の入力
とする。 演算結果モジュロ3一致回路608は,データパス66を通
して演算結果Zのモジュロ3値を入力すると共に,デー
タパス67を通して演算結果Zのモジュロ3期待値を入力
すると,第1入力モジュロ3一致回路604および第2入
力モジュロ3一致回路605と同様に,演算結果Zのモジ
ュロ3値とその期待値との一致チェックを実行し,一致
している時は演算結果Zのモジュロ3値をそのまま出力
し,演算結果Zのモジュロ3値と期待値とのいずれかが
〔1,1〕の時,あるいは演算結果Zのモジュロ3値と期
待値が一致していない時は〔1,1〕を出力し,出力され
たモジュロ3値は,データパス68を通してモジュロ3出
力レジスタ706の入力となる。 モジュロ3出力レジスタ706は,演算結果モジュロ3一
致回路608の出力モジュロ3値をデータパス68を通して
入力し,ストローブ信号によって格納後,データパス76
を通して出力する。この出力モジュロ3値Cは,演算回
路6000の1出力として,後段のモジュロ3回路(図示せ
ず)の入力等に用いられる。ただし,ストローブ信号入
力前の本レジスタ内の保持値が〔1,1〕のときは,第1
及び第2モジュロ3保持レジスタ704及び705と同様に、
〔1,1〕が保持され,出力は変化しない。 演算回路6000において,例えば,第1モジュロ3保持レ
ジスタ704の出力に故障が生じ,データパス74上のモジ
ュロ3値が〔1,1〕となった場合,モジュロ3の値とし
て不正な値〔1,1〕は,データパス74を通りモジュロ3
演算回路607を経て,データパス67を通,演算結果モジ
ュロ3一致回路608からデータパス68を通り,モジュロ
3出力レジスタ706からデータパス76を通って,モジュ
ロ3値C=〔1,1〕を出力する。 また第2の例として,第2入力モジュロ3一致回路605
により,2進データYのモジュロ3値とその期待値Bが一
致しない時は,〔1,1〕がデータパス65を通して出力さ
れ,第2モジュロ3保持レジスタ705からデータパス75
を通り,モジュロ3演算回路607からデータパス67を通
り,演算結果モジュロ3一致回路608からデータパス68
を通り,モジュロ3出力レジスタ706からデータパス76
を通ってモジュロ3値C=〔1,1〕を出力する。 さらに,演算回路601の故障によって,演算結果Zが異
常な値のときは,そのモジュロ3値は,データパス66か
ら演算結果モジュロ3一致回路608に入力され,データ
パス67上の期待値との一致チェックが実行され,一致し
ない時の値〔1,1〕がデータパス68を通ってモジュロ3
出力レジスタ706からデータパス76を通ってモジュロ3
値C=〔1,1〕を出力する。 入力の期待値A=〔1,1〕の場合も同様であり,データ
パス64,74,67,68,76上のモジュロ3値は〔1,1〕とな
り,モジュロ3値C=〔1,1〕を出力する。 以上述べた様に,演算回路6000内に故障が生じた時,ま
たは入力データが不正の時には,出力モジュロ3値C
は,モジュロ3の値としては不正な値〔1,1〕となり,
演算回路6000の出力Cより前段で故障が生じた事を,後
段のモジュロ3回路に伝達する事ができる。 また,このモジュロ3値C=〔1,1〕によって,故障が
報告された後,回路全体のどの部分で故障が生じたかを
知るために,不正なモジュロ3値〔1,1〕がどのように
伝搬してきたかを調べれば,故障箇所を調べることが容
易である。 第2図は本発明の第2の実施例を示すブロック図であ
り,第1図の演算回路6000と同等な各種演算回路を組み
合わせた例であって,本発明に基づくモジュロ3回路
は,各演算回路ブロック内に,その演算回路に対応した
構成で含まれている。 以下の説明において, はモシュロ3加算, はモジュロ3減算または反転,及び はモジュロ3乗算を示す。 第2図において,演算回路7000は,6個の2進数X,Y,Z,R,
S,Tの入力に対し,P=−(X+Y+Z−R),Q=(X+
Y−S・T)・(X+Y+Z−R)となる2個の2進数
P,Qを出力すると共に,その演算回路に対応して,X,Y,Z,
R,S,Tのそれぞれのモジュロ3の値A,B,C,D,E,Fを入力
し, となる2個のモシュロ3の値L,Mを出力する。 加算回路201は,2進数X,Yを入力すると,加算結果X+Y
を生成し,データパス1を通して出力し,加算回路204
と減算回路205の入力とすると共に,加算回路201内のモ
ジュロ3回路は,2進数XとYのモジュロ3値A,Bを入力
し,加算結果X+Yのモジュロ3期待値を生成し,加算
結果のチェックをして,故障が検出された時は〔1,1〕
を,それ以外の時は加算結果X+Yのモジュロ3値 を,データパス21を通して出力し,加算回路204と減算
回路205の入力とする。 減算回路202は,2進数Z,Rを入力すると,減算経過Z−R
を生成し,データパス2を通して出力すると共に,2進数
Z,Rのモジュロ3値C,Dを入力し,減算結果Z−Rの結果
のチェックをして〔1,1〕または減算結果Z−Rのモジ
ュロ3値 をデータパス22を通して出力し,加算回路204の入力と
する。 乗算回路203は,2進数S,Tを入力すると,乗算結果S・T
(=S×T)を生成し,データパス3を通して出力する
と共に,2進数S,Tのモジュロ3値E,Fを入力し,乗算結果
S・Tの結果のチェックをして,〔1,1〕または乗算結
果S・Tのモジュロ3値 をデータパス23を通して出力し,加算回路205の入力と
する。 加算回路204は,データパス1を通して2進数X+Y
を,データパス2を通して2進数Z−Rを入力し,加算
結果X+Y+Z−Rを生成し,データパス4を通して出
力すると共に,データパス21を通して2進数X+Yのモ
ジュロ3値 を,データパス22を通して2進数Z−Rのモジュロ3値 を入力し,加算結果X+Y+Z−Rの結果のチェックを
して,そのモジュロ3値 をデータパス24を通して出力する。ここでもし,加算回
路204内で故障が検出された場合,あるいは加算回路204
の入力以前に〔1,1〕となっている場合( が〔1,1〕の場合)には, をデータパス24を通して出力し,この出力を反転回転20
6,乗算回路207の入力とする。 減算回路205は,データパス1を通して2進数X+Y
を,データパス3を通して2進数S・Tを入力し,減算
結果X+Y−S・Tを生成し,データパス5を通して出
力すると共に,データパス21を通してモジュロ3値 を,データパス23を通してモジュロ3値 を入力し,減算結果X+Y−S・Tのチェックをして,
そのモジュロ3値 をデータパス25を通して出力し,乗算回路207の入力と
する。データパス25上のモジュロ3値もそれより前段に
故障が発生していた場合には〔1,1〕となる。 反転回路206は,データパス4を通して2進数X+Y+
Z−Rを入力すると,反転結果−(X+Y+Z−R)を
生成し,データパス6を通して出力すると共に,データ
パス24を通してモジュロ3値 を入力し,反転結果−(X+Y+Z−R)のチェックを
して,そのモジュロ3値 をデータパス26を通して出力する。データパス26上のモ
ジュロ3値もそれより前段に故障が発生していた場合に
は〔1,1〕となる。 乗算回路207は,データパス4を通して2進数X+Y+
Z−Rを,データパス5を通して2進数X+Y−S・T
を入力すると,乗算結果(X+Y+Z−R)・(X+Y
−S・T)を生成し,データパス7を通して出力すると
共に,データパス24を通してモジュロ3値 を,データパス25を通してモジュロ3値 を入力すると,乗算結果(X+Y+Z−R)・(X+Y
−S・T)のチェックをし,そのモジュロ3値 をデータパス27を通して出力する。データパス27上のモ
ジュロ3値も,それより前段に故障が発生していた場合
には,〔1,1〕となる。 反転回路206の出力P=−(X+Y+Z−R)とそのモ
ジュロ3値 ,および乗算回路207の出力Q=(X+Y+Z−R)・
(X+Y−S・T)とそのモジュロ3値 は,演算回路7000の出力となり,後段の回路に入力され
る。 ここで,例えば,乗算回路203内に故障が発生して,デ
ータパス23上のモジュロ3値が〔1,1〕となった場合,
このモジュロ3値は,減算回路205を経て,データパス2
5を通り,乗算回路207を経て,データパス27を通り,M=
〔1,1〕となって出力される。M=〔1,1〕は不正データ
であり,Mに至るまでのどこかに故障が発生した事が明示
され,かつ〔1,1〕の経路をたどることによってその原
因が乗算回路203であることを指摘する事も容易であ
る。 第2の例として,入力D=〔1,1〕の場合,モジュロ3
値の不正データ〔1,1〕は,減算回路202を経て,データ
パス22を通り,加算回路204を経てデータパス24を通
り,反転回路206を経てデータパス26を通り,L=〔1,1〕
となって出力されると共に,データパス24から乗算回路
207を経て,データパス27を通り,M(1,1〕となって出力
される。L=M=〔1,1〕は不正データであり,Lまたは
Mに至るまでのどこかに故障が発生した事が明示され,
かつ〔1,1〕の経路をたどることによって,その原因が
演算回路7000ではなく,それより前段に原因があり,Lと
Mが〔1,1〕となる原因は同一の原因によるものである
ことが判明する。 従来のモジュロ3回路の場合,〔1,1〕に対する考慮が
されていないため,回路の途中に上述した様な故障が生
じた場合,L,Mの値は,他の入力及び回路構成等に依存す
るため,不正データか否かの判断が困難であり,検出さ
れない場合も生じてくる。また,故障箇所を指摘する際
も途中の不正データの値の判断が困難なために,その分
解能は非常に低くなってしまう。 一方,本実施例の場合,不正データは〔1,1〕という値
で判断することが容易なため,故障の検出率も高く,か
つ〔1,1〕の値が通ったパスの値は全て〔1,1〕であるか
ら,その〔1,1〕の値の原因となっている故障箇所もさ
がしやすく分解能も高くなる。 また,従来のモジュロ3回路と異なり,入力として〔1,
1〕を考慮し,かつ出力の〔1,1〕も論理的に意味のある
値のため,LSI等で実現した場合,その論理検証のためだ
けに,論理的に無意味な〔1,1〕の記述をする必要もな
く,設計効率に支障をきたさない。 第3図は本発明の第3の実施例を示すブロック図であ
り,第1図の演算回路6000内の3個のモジュロ3レジス
タ704,705,706に,入力モジュロ3値または出力モジュ
ロ3値が〔1,1〕の状態でストローブ信号を入力すると
〔1〕,その他の状態でストローブ信号を入力すると
ックに用いられるモジュロW回路に関する。 〔従来の技術〕 モジュロW回路は,演算回路等のチェック回路として従
来より頻繁に使用されているチェック回路の1つであ
る。 又,モジュラスのWとしてはW=2W−1(例えば,3,7,1
5,…)がしばしば用いられる。なぜなら,モジュロWの
値をwビットで表現できるため,他のモジュラスに比べ
低コストで実現できるからである。 以下,W=2W−1の代表として,W=22−1=3を考える。
モジュロ3の3通りの値0,1,2に対し,2ビットデータで
表現する事ができる4通りの値〔0,0〕,〔0,1〕,〔1,
0〕〔1,1〕のうちの3通りの値を定義づける。例えば,0
に対し〔0,0〕,1に対し〔0,1〕,2に対し〔1,0〕を対応
させる。 第10図に従来より用いられているモジュロ3回路の一例
を示す。第10図において,演算装置9000は,第1入力デ
ータと第2入力データとを入力すると,それぞれ第1入
力オペランドレジスタ9001,第2入力オペランドレジス
タ9002に格納し,演算回路9011によって,第1入力オペ
ランドと第2入力オペランドとの間の演算を実行し,そ
の結果を演算結果レジスタ9003に格納し,その後出力す
る。 この演算装置9000におけるモジュロ3回路は,モジュロ
3期待値生成回路9012と,モジュロ3期待値レジスタ90
04と,モジュロ3一致チェック回路9013と,エラー表示
フラグ9005とで構成される。 モジュロ3期待値生成回路9012は,第1入力オペランド
レジスタ9001と第2入力オペランドレジスタ9002とか
ら,それぞれデータパス901,902を通して第1入力オペ
ランドと第2入力オペランドとを入力すると,演算回路
9011に対応したモジュロ3演算を実行し,演算結果のモ
ジュロ3の期待値を生成して,データパス912を通して
モジュロ3期待値レジスタ9004に出力する。 モジュロ3期待値レジスタ9004は,モジュロ3期待値生
成回路9012の出力であるモジュロ3期待値をデータパス
912を通して入力し,格納した後データパス904を通して
モジュロ3一致チェック回路9013に出力する。 モジュロ3一致チェック回路9013は,演算結果レジスタ
9003よりデータパス903を通して演算結果を入力すると
共に,モジュロ3期待値レジスタ9004よりデータパス90
4を通してモジュロ3期待値を入力すると,演算結果の
モジュロ3を生成し,その値と,モジュロ3期待値が一
致しているか否かをチェックし,一致していないとき
は,エラー報告をデータパス913を通してエラー表示フ
ラグ9005に出力する。 エラー表示フラグ(以後FIFと呼ぶ)9005は,データパ
ス913を通してエラー報告を入力すると,それを格納
し,以後解除信号を入力するまで,その値を保持すると
共に,エラー報告をデータパス905を通し出力する。 上述した様な動作により,演算装置9000の故障は検出さ
れ報告されるが,一般的なモジュロ3回路においては,
第10図で示したよりも詳細にチェックを実行しているの
が普通である。つまり,演算回路の最終結果だけなく,
中間結果に対しても同様な一致チェックが実行されてい
る。この場合の中間結果のモジュロ3期待値はデータパ
ス921を通って演算回路に入力される。 第11図は,演算装置内の演算回路の一部であって,その
中間結果に対してモジュロ3チェックを実行するときの
一例を示す図である。 第11図において,演算回路8000は2個の2進データX,Y
とそれぞれのモジュロ3値A,Bとを入力とし,2進データ
XとYとの間の演算結果Zと,演算結果Zのモジュロ3
値Cと,モジュロ3チェックの結果によるエラー報告E
とを出力とする。 第1入力レジスタ801と第2入力レジスタ802は,それぞ
れ2進データXとYとを入力し格納した後,それぞれデ
ータパス81,82を通して2進データX,Yを出力し,図示の
ように2進データX,Yは演算回路811に入力し,2進データ
X及びYはそれぞれ第1入力モジュロ3生成回路812及
び第2入力モジュロ3生成回路813の入力となる。 演算回路811は,データパス81を通して2進データX
を,データパス82を通して2進データYを入力すると2
進データXとYとの間で演算を実行し,その演算結果Z
をデータパス91を通し演算結果出力レジスタ803に出力
する。 演算結果出力レジスタ803は,データパス91を通して演
算結果Zを入力し格納した後,データパス83を通して演
算結果Zを出力する。演算結果Zは演算回路8000の出力
となると共に,演算結果モジュロ3生成回路816の入力
となる。 第1入力モジュロ3生成回路812は,データパス81を通
して2進データXを入力すると,そのモジュロ3値を生
成し,データパス92を通して出力し,モジュロ3値を一
致回路814と第1モジュロ3保持レジスタ804の入力とす
る。 第2入力モジュロ3生成回路813は,データパス82を通
して2進データYを入力すると,そのモジュロ3値を生
成し,データパス93を通して出力し,モジュロ3値を一
致回路815と第2モジュロ3保持レジスタ805の入力とす
る。 第1モジュロ3保持レジスタ804と第2モジュロ3保持
レジスタ805は,それぞれデータパス92,93を通して2進
データX,Yのモジュロ3値を入力し格納した後,それぞ
れデータパス84,85を通してモジュロ3演算回路817の入
力とする。 モジュロ3演算回路817は,データパス84を通して2進
データXのモジュロ3値を,データパス85を通して2進
データYのモジュロ3値を入力し,演算回路811の演算
に対応したモジュロ3演算を実行し,演算結果Zのモジ
ュロ3の期待値を生成し,データパス97を通して出力
し,一致回路818の入力とする。 演算結果モジュロ3生成回路816は,データパス83を通
して演算結果Zを入力すると,演算結果Zのモジュロ3
値を生成し,データパス96を通して一致回路818とモジ
ュロ3出力レジスタ806の入力とする。 モジュロ3出力レジスタ806は,データパス96を通して
演算結果Zのモジュロ3値を入力し格納した後,データ
パス86を通して演算結果Zのモジュロ3値Cを出力す
る。演算結果Zのモジュロ3値Cは演算回路8000の1出
力として,後段のモジュロ3回路(図示せず)の入力等
に用いられる。 一致回路814は,データパス92を通して2進データXの
モジュロ3値を入力すると共に,2進データXのモジュロ
3期待値Aを入力し,2進データXのモジュロ3値とその
期待値Aが一致しているか否かをチェックし,一致して
いないときはエラー報告をデータパス94を通してFIF
(エラー表示フラグ)808に出力する。 一致回路815も同様に,データパス93より入力される2
進データYのモジュロ3値とその期待値Bとを比較し,
その結果をデータパス95を通してFIF809に出力する。 一致回路818も同様にデータパス96より入力される演算
結果Zのモジュロ3値とデータパス97より入力される期
待値とを比較し,その結果をデータパス98を通してFIF8
07に出力する。 FIF807,808,809は,それぞれデータパス98,94,95を通し
てエラー報告を入力すると,それを格納し,以後解除信
号を入力するまでその値を保持すると共に,その値を論
理和回路810に出力する。 論理和回路810は,FIF807,808,809のいずれかよりエラー
報告を入力すると,故障発生を示すエラー報告Eを演算
回路8000の1出力として出力する。 〔発明が解決しようとする問題点〕 第10図及び第11図において,従来のモジュル3回路で
は,モジュロ3が「データの示す数値を3で割った余
り。」であるという数学的理由から,モジュロ3の値と
して3つまり2進データ〔1,1〕は考慮されていない。
しかしながら,本来データ処理装置で用いられるモジュ
ロ3回路は,回路の故障を検出するためのチェック回路
に用いられているのであるから,故障によってモジュロ
3の値が〔1,1〕となるケースも考慮すべきである。 例えば第11図において,第1入力モジュロ3生成回路81
2の故障により,データパス92のパス上に〔1,1〕が出力
された場合,従来のモジュロ3回路〔1,1〕の入力に対
する出力は不定とされ,一致回路814,モジュロ3演算回
路817,一致回路818等の出力は,論理的な意味を持た
ず,その回路構成に依存する。 従って,モジュロ3回路自体の故障によって,〔1,1〕
のパターンが生じた場合,その故障を検出する事は困難
であり,さらに演算回路上の故障によって演算結果が不
正となった場合も,そのモジュロ3の値が,上記〔1,
1〕に対する出力と同じ値の場合には,その故障は検出
されず,そのチェック回路の検出率は著しく低下するば
かりでなく,それより下段のチェック回路においてエラ
ー表示フラグが点灯した時には,その故障箇所の指摘に
誤りを生ずる要因となる。 また演算回路の一部をLSI等で実現する様な場合,そのL
SI等単体の故障検出のための評価には,通常ある種のテ
ストパターンの入力に対する出力およびフリップフロッ
プ内の値に用いて,LSI等内の論理ゲートや論理パターン
の検証をする。 LSI内にモジュロ3回路を含む場合には,テスト入力と
して〔1,1〕のケースを含まないと,その検出率が向上
しないため,演算回路全体としては論理的に全く無意味
とされる〔1,1〕の入力に対しても論理の記述が必要と
なり,その論理は回路構成に完全に依存するため,非常
に複雑で容易に理解しがたい記述となってしまう。 一方モジュロ3を用いたチェック回路としては,前述の
様にモジュロ3の期待値と,実際の演算結果から生成さ
れるモジュロ3の値とを一致チェックする。そのため,
検出率を向上させるためには,演算回路各部の期待値を
生成し,その個々にエラーフラグを設定する必要があ
り,ハードウェア量の増加が大きいと共に,その中の複
数のエラーフラグが点灯した時には,その原因が同じ故
障によるものか否かの判別が困難である。 一般に,従来のモジュロW回路では,全ビット“1"に対
する考慮がされていないため,モジュロW回路としての
故障の検出率,分解能の向上が困難であり,さらに近年
のLSI化に伴うチェック回路の検証の際,無意味な全ビ
ット“1"の論理記述が設計効率向上の妨げとなっている
という欠点がある。換言すると,従来のモジュロW回路
は,チェック回路設計が容易である反面,パリティ・チ
ェック等の他のチェック回路に比較し,エラー発生の際
の検出率及びエラー検出の際のエラー箇所指摘のための
分解能が低いという欠点がある。 〔問題点を解決するための手段〕 本発明は、wビットの入力、wビットの出力を有するモ
ジュロW回路であって、wビット(w≧2)で表現する
ことができる2w通りの2進値のうち、全ビットが“1"を
除くW(=2W−1)通りの2進値のうち1通りのコード
は、故障が検出されたことを示すエラーコードとして定
義され、全ビットが“1"を含む残りのW(=2W−1)通
りの2進値は、モジュロWのW通りのコードとして定義
され、故障が発生又は故障を検出したエラーコードを生
成した際には、そのエラーコードを伝搬させることを特
徴とするモジュロW回路であって、n個のwビットデー
タA1=[a11,a12…,a1w],A2=[a21,a22…,a2w],…,
An=[an1,an2,…,anw]の入力のうちの1つ以上が前記
エラーコードを示しているとき、wビットデータC=
[c1,c2,…,cw]として前記エラーコードを出力する。 〔実施例〕 次に本発明の実施例について図面を参照して説明する。 なお,以下の説明では,W=3の場合,すなわちモジュロ
3回路について述べる。 第1図は本発明の実施例であり,本発明のモジュロ3回
路を使用した演算回路のブロック図である。 第1図において,演算回路6000は,2個の2進データX,Y
と,それぞれのモジュロ3期待値A,Bとを入力とし,2進
データXとYとの間の演算結果Zと,演算結果Zのモジ
ュロ3値Cとを出力する。 第1入力レジスタ701と第2入力レジスタ702は,それぞ
れ2進データXとYとを入力し格納した後,それぞれデ
ータパス17,72を通して2進データX,Yを出力し,図示の
ように2進データX,Yは演算回路601に入力し,2進データ
X及びYはそれぞれ第1入力モジュロ3生成回路602及
び第2入力モジュロ3生成回路603の入力となる。 演算回路601は,データパス71を通して2進データX
を,データパス72を通して2進データYを入力すると,2
進データXとYとの間で演算を実行し,その演算結果Z
をデータパス61を通し,演算結果出力レジスタ703に出
力する。 演算結果出力レジスタ703は,データパス61を通して演
算結果Zを入力し格納した後,データパス73を通して演
算結果Zを出力する。演算結果Zは演算回路6000の出力
になると共に,演算結果モジュロ3生成回路606の入力
となる。 第1入力モジュロ3生成回路602は,データパス71を通
して2進データXを入力すると,そのモジュロ3値を生
成し,データパス62を通して出力し,モジュロ3値を第
1入力モジュロ3一致回路604の入力とする。 第2入力モジュロ3生成回路603は,データパス72を通
して2進データYを入力すると,そのモジュロ3値を生
成し,データパス63を通して出力し,モジュロ3値を第
2入力モジュロ3一致回路605の入力とする。 演算結果モジュロ3生成回路606は,データパス73を通
して演算結果Zを入力すると,そのモジュロ3値を生成
し,データパス66を通して出力し,モジュロ3値を演算
結果モジュロ3一致回路608の入力とする。 第1入力モジュロ3一致回路604は,データパス62を通
して2進データXのモジュロ3値を入力すると共に,2進
データXのモジュロ3期待値Aを入力し,2進データXの
モジュロ3値とその期待値Aが一致しているか否かをチ
ェックし,一致している時は,2進データXのモジュロ3
値をそのまま出力し,2進データXのモジュロ3値と期待
値Aとのいずれかが〔1,1〕の時,あるいは2進データ
Xのモジュロ3値の期待値Aが一致していない時は,
〔1,1〕を出力し,出力されたモジュロ3値はデータパ
ス64を通して第1モジュロ3保持レジスタ704の入力と
なる。 第2入力モジュロ3一致回路605は,データパス63を通
して2進データYのモジュロ3値を入力すると共に,2進
データYのモジュロ3期待値Bを入力し,第1入力モジ
ュロ3一致回路604と同様に一致チェックを実行し,2進
データYのモジュロ3値あるいは〔1,1〕を,データパ
ス65を通して出力し,第2モジュロ3保持レジスタ705
の入力とする。 第1モジュロ3保持レジスタ704は,データパス64を通
し第1入力モジュロ3一致回路604の出力モジュロ3値
を入力し,ストローブ信号によって格納後,データパス
74を通して出力し,モジュロ3演算回路607の入力とす
る。ただし,ストローブ信号入力前の本レジスタ内の保
持値が〔1,1〕)のときは,ストローブ信号入力後も
〔1,1〕が保持され,ストローブ信号に拘らず本レジス
タの出力モジュロ3値は〔1,1〕を保ち,変化しない。 第2モジュロ3保持レジスタ705は,データパス65を通
し第2入力モジュロ3一致回路605の出力モジュロ3値
を入力し,ストローブ信号によって格納後,データパス
75を通して出力し,モジュロ3演算回路607の別の入力
とする。ただし,ストローブ信号入力前の本レジスタ内
の保持値が〔1,1〕のときは,第1モジュロ3保持レジ
スタ704と同様に〔1,1〕が保持され,出力は変化しな
い。 モジュロ3演算回路607は,第1モジュロ3保持レジス
タ704の出力モジュロ3値をデータパス74を通して入力
とすると共に第2モジュロ3保持レジスタ705の出力モ
ジュロ3値をデータパス75を通して入力とし,いずれか
のモジュロ3値が〔1,1〕の時は〔1,1〕をそのまま出力
し,両方共に〔1,1〕でない時には,その2個のモジュ
ロ3値間で,演算回路601に対応したモジュロ3演算を
実行し,その結果を出力する。モジュロ3演算回路607
の出力は、演算結果Zのモジュロ3期待値とし,データ
パス67を通して演算結果モジュロ3一致回路608の入力
とする。 演算結果モジュロ3一致回路608は,データパス66を通
して演算結果Zのモジュロ3値を入力すると共に,デー
タパス67を通して演算結果Zのモジュロ3期待値を入力
すると,第1入力モジュロ3一致回路604および第2入
力モジュロ3一致回路605と同様に,演算結果Zのモジ
ュロ3値とその期待値との一致チェックを実行し,一致
している時は演算結果Zのモジュロ3値をそのまま出力
し,演算結果Zのモジュロ3値と期待値とのいずれかが
〔1,1〕の時,あるいは演算結果Zのモジュロ3値と期
待値が一致していない時は〔1,1〕を出力し,出力され
たモジュロ3値は,データパス68を通してモジュロ3出
力レジスタ706の入力となる。 モジュロ3出力レジスタ706は,演算結果モジュロ3一
致回路608の出力モジュロ3値をデータパス68を通して
入力し,ストローブ信号によって格納後,データパス76
を通して出力する。この出力モジュロ3値Cは,演算回
路6000の1出力として,後段のモジュロ3回路(図示せ
ず)の入力等に用いられる。ただし,ストローブ信号入
力前の本レジスタ内の保持値が〔1,1〕のときは,第1
及び第2モジュロ3保持レジスタ704及び705と同様に、
〔1,1〕が保持され,出力は変化しない。 演算回路6000において,例えば,第1モジュロ3保持レ
ジスタ704の出力に故障が生じ,データパス74上のモジ
ュロ3値が〔1,1〕となった場合,モジュロ3の値とし
て不正な値〔1,1〕は,データパス74を通りモジュロ3
演算回路607を経て,データパス67を通,演算結果モジ
ュロ3一致回路608からデータパス68を通り,モジュロ
3出力レジスタ706からデータパス76を通って,モジュ
ロ3値C=〔1,1〕を出力する。 また第2の例として,第2入力モジュロ3一致回路605
により,2進データYのモジュロ3値とその期待値Bが一
致しない時は,〔1,1〕がデータパス65を通して出力さ
れ,第2モジュロ3保持レジスタ705からデータパス75
を通り,モジュロ3演算回路607からデータパス67を通
り,演算結果モジュロ3一致回路608からデータパス68
を通り,モジュロ3出力レジスタ706からデータパス76
を通ってモジュロ3値C=〔1,1〕を出力する。 さらに,演算回路601の故障によって,演算結果Zが異
常な値のときは,そのモジュロ3値は,データパス66か
ら演算結果モジュロ3一致回路608に入力され,データ
パス67上の期待値との一致チェックが実行され,一致し
ない時の値〔1,1〕がデータパス68を通ってモジュロ3
出力レジスタ706からデータパス76を通ってモジュロ3
値C=〔1,1〕を出力する。 入力の期待値A=〔1,1〕の場合も同様であり,データ
パス64,74,67,68,76上のモジュロ3値は〔1,1〕とな
り,モジュロ3値C=〔1,1〕を出力する。 以上述べた様に,演算回路6000内に故障が生じた時,ま
たは入力データが不正の時には,出力モジュロ3値C
は,モジュロ3の値としては不正な値〔1,1〕となり,
演算回路6000の出力Cより前段で故障が生じた事を,後
段のモジュロ3回路に伝達する事ができる。 また,このモジュロ3値C=〔1,1〕によって,故障が
報告された後,回路全体のどの部分で故障が生じたかを
知るために,不正なモジュロ3値〔1,1〕がどのように
伝搬してきたかを調べれば,故障箇所を調べることが容
易である。 第2図は本発明の第2の実施例を示すブロック図であ
り,第1図の演算回路6000と同等な各種演算回路を組み
合わせた例であって,本発明に基づくモジュロ3回路
は,各演算回路ブロック内に,その演算回路に対応した
構成で含まれている。 以下の説明において, はモシュロ3加算, はモジュロ3減算または反転,及び はモジュロ3乗算を示す。 第2図において,演算回路7000は,6個の2進数X,Y,Z,R,
S,Tの入力に対し,P=−(X+Y+Z−R),Q=(X+
Y−S・T)・(X+Y+Z−R)となる2個の2進数
P,Qを出力すると共に,その演算回路に対応して,X,Y,Z,
R,S,Tのそれぞれのモジュロ3の値A,B,C,D,E,Fを入力
し, となる2個のモシュロ3の値L,Mを出力する。 加算回路201は,2進数X,Yを入力すると,加算結果X+Y
を生成し,データパス1を通して出力し,加算回路204
と減算回路205の入力とすると共に,加算回路201内のモ
ジュロ3回路は,2進数XとYのモジュロ3値A,Bを入力
し,加算結果X+Yのモジュロ3期待値を生成し,加算
結果のチェックをして,故障が検出された時は〔1,1〕
を,それ以外の時は加算結果X+Yのモジュロ3値 を,データパス21を通して出力し,加算回路204と減算
回路205の入力とする。 減算回路202は,2進数Z,Rを入力すると,減算経過Z−R
を生成し,データパス2を通して出力すると共に,2進数
Z,Rのモジュロ3値C,Dを入力し,減算結果Z−Rの結果
のチェックをして〔1,1〕または減算結果Z−Rのモジ
ュロ3値 をデータパス22を通して出力し,加算回路204の入力と
する。 乗算回路203は,2進数S,Tを入力すると,乗算結果S・T
(=S×T)を生成し,データパス3を通して出力する
と共に,2進数S,Tのモジュロ3値E,Fを入力し,乗算結果
S・Tの結果のチェックをして,〔1,1〕または乗算結
果S・Tのモジュロ3値 をデータパス23を通して出力し,加算回路205の入力と
する。 加算回路204は,データパス1を通して2進数X+Y
を,データパス2を通して2進数Z−Rを入力し,加算
結果X+Y+Z−Rを生成し,データパス4を通して出
力すると共に,データパス21を通して2進数X+Yのモ
ジュロ3値 を,データパス22を通して2進数Z−Rのモジュロ3値 を入力し,加算結果X+Y+Z−Rの結果のチェックを
して,そのモジュロ3値 をデータパス24を通して出力する。ここでもし,加算回
路204内で故障が検出された場合,あるいは加算回路204
の入力以前に〔1,1〕となっている場合( が〔1,1〕の場合)には, をデータパス24を通して出力し,この出力を反転回転20
6,乗算回路207の入力とする。 減算回路205は,データパス1を通して2進数X+Y
を,データパス3を通して2進数S・Tを入力し,減算
結果X+Y−S・Tを生成し,データパス5を通して出
力すると共に,データパス21を通してモジュロ3値 を,データパス23を通してモジュロ3値 を入力し,減算結果X+Y−S・Tのチェックをして,
そのモジュロ3値 をデータパス25を通して出力し,乗算回路207の入力と
する。データパス25上のモジュロ3値もそれより前段に
故障が発生していた場合には〔1,1〕となる。 反転回路206は,データパス4を通して2進数X+Y+
Z−Rを入力すると,反転結果−(X+Y+Z−R)を
生成し,データパス6を通して出力すると共に,データ
パス24を通してモジュロ3値 を入力し,反転結果−(X+Y+Z−R)のチェックを
して,そのモジュロ3値 をデータパス26を通して出力する。データパス26上のモ
ジュロ3値もそれより前段に故障が発生していた場合に
は〔1,1〕となる。 乗算回路207は,データパス4を通して2進数X+Y+
Z−Rを,データパス5を通して2進数X+Y−S・T
を入力すると,乗算結果(X+Y+Z−R)・(X+Y
−S・T)を生成し,データパス7を通して出力すると
共に,データパス24を通してモジュロ3値 を,データパス25を通してモジュロ3値 を入力すると,乗算結果(X+Y+Z−R)・(X+Y
−S・T)のチェックをし,そのモジュロ3値 をデータパス27を通して出力する。データパス27上のモ
ジュロ3値も,それより前段に故障が発生していた場合
には,〔1,1〕となる。 反転回路206の出力P=−(X+Y+Z−R)とそのモ
ジュロ3値 ,および乗算回路207の出力Q=(X+Y+Z−R)・
(X+Y−S・T)とそのモジュロ3値 は,演算回路7000の出力となり,後段の回路に入力され
る。 ここで,例えば,乗算回路203内に故障が発生して,デ
ータパス23上のモジュロ3値が〔1,1〕となった場合,
このモジュロ3値は,減算回路205を経て,データパス2
5を通り,乗算回路207を経て,データパス27を通り,M=
〔1,1〕となって出力される。M=〔1,1〕は不正データ
であり,Mに至るまでのどこかに故障が発生した事が明示
され,かつ〔1,1〕の経路をたどることによってその原
因が乗算回路203であることを指摘する事も容易であ
る。 第2の例として,入力D=〔1,1〕の場合,モジュロ3
値の不正データ〔1,1〕は,減算回路202を経て,データ
パス22を通り,加算回路204を経てデータパス24を通
り,反転回路206を経てデータパス26を通り,L=〔1,1〕
となって出力されると共に,データパス24から乗算回路
207を経て,データパス27を通り,M(1,1〕となって出力
される。L=M=〔1,1〕は不正データであり,Lまたは
Mに至るまでのどこかに故障が発生した事が明示され,
かつ〔1,1〕の経路をたどることによって,その原因が
演算回路7000ではなく,それより前段に原因があり,Lと
Mが〔1,1〕となる原因は同一の原因によるものである
ことが判明する。 従来のモジュロ3回路の場合,〔1,1〕に対する考慮が
されていないため,回路の途中に上述した様な故障が生
じた場合,L,Mの値は,他の入力及び回路構成等に依存す
るため,不正データか否かの判断が困難であり,検出さ
れない場合も生じてくる。また,故障箇所を指摘する際
も途中の不正データの値の判断が困難なために,その分
解能は非常に低くなってしまう。 一方,本実施例の場合,不正データは〔1,1〕という値
で判断することが容易なため,故障の検出率も高く,か
つ〔1,1〕の値が通ったパスの値は全て〔1,1〕であるか
ら,その〔1,1〕の値の原因となっている故障箇所もさ
がしやすく分解能も高くなる。 また,従来のモジュロ3回路と異なり,入力として〔1,
1〕を考慮し,かつ出力の〔1,1〕も論理的に意味のある
値のため,LSI等で実現した場合,その論理検証のためだ
けに,論理的に無意味な〔1,1〕の記述をする必要もな
く,設計効率に支障をきたさない。 第3図は本発明の第3の実施例を示すブロック図であ
り,第1図の演算回路6000内の3個のモジュロ3レジス
タ704,705,706に,入力モジュロ3値または出力モジュ
ロ3値が〔1,1〕の状態でストローブ信号を入力すると
〔1〕,その他の状態でストローブ信号を入力すると
〔0〕となる1ビットデータを出力する機能を加えたそ
れぞれ,モジュロ3レジスタ504,505,506を使用し,さ
らに論理和回路507を追加した例である。 第3図において,第1モジュロ3保持レジスタ504は,
データパス64を通し,第1入力モジュロ3一致回路604
の出力モジュロ3値を入力し,ストローブ信号によって
格納後,データパス74を通して出力し,モジュロ3演算
回路607の入力とする。ただし,ストローブ信号入力前
の本レジスタ内の保持値が〔1,1〕のとき,またはデー
タパス64を通して入力するモジュロ3値が〔1,1〕のと
きは,ストローブ信号入力後も〔1,1〕が保持され,ス
トローブ信号に拘らず,本レジスタの出力モジュロ3値
は〔1,1〕を保ち,変化しないと共に,エラー報告の1
ビットデータl1=1がデータパス54を通して出力され,
論理和回路507の入力となる。 第2モジュロ3保持レジスタ505は,データパス65を通
し,第2モジュロ3一致回路605の出力モジュロ3値を
入力し,ストローブ信号によって格納後,データパス75
を通して出力し,モジュロ3演算回路607の別の入力と
する。ただし,ストローブ入力前の本レジスタ内の保持
値が,〔1,1〕のとき,または入力モジュロ3値が〔1,
1〕のときは,第1モジュロ3保持レジスタ504と同様
に,〔1,1〕が保持され変化しないと共に,エラー報告
の1ビットデータl2=1がデータパス55を通して出力さ
れ,論理和回路507の別の入力となる。 モジュロ3出力レジスタ506は,演算結果モジュロ3一
致回路608の出力モジュロ3値を,データパス68を通し
て入力し,ストローブ信号によって格納後,データパス
76を通して出力する。この出力モジュロ3値Cは,演算
回路5000の1出力として,後段のモジュロ3回路(図示
せず)の入力等に用いられる。ただし,ストローブ信号
入力前の本レジスタ内の保持値が〔1,1〕のとき,また
は入力モジュロ3値が〔1,1〕のときは,第1及び第2
モジュロ3保持レジスタ504及び505と同様に,〔1,1〕
が保持され変化しないと共に,エラー報告の1ビットデ
ータl3=1がデータパス56を通して出力され,論理和回
路507の入力となる。 論理和回路507は,データパス54を通してl1を,データ
パス55を通してl2を,データパス56を通してl3を入力す
ると,l1とl2とl3の論理和Eを生成し,出力する。l1,
l2,l3はそれぞれのモジュロ3レジスタの保持値が〔1,
1〕のとき,つまり故障を検出したときに1となる1ビ
ットデータであるから,論理和E=1は,演算回路5000
内で故障を検出した事を示すことになる。 演算回路5000内の他の回路は,第1図の演算回路6000と
同等であるので,説明は省略する。 第4図は,本発明の第4の実施例を示すブロック図であ
る。第4図において,演算回路4000は,2個の2進データ
X,Yとそれぞれのモジュロ3値A,Bとを入力とし,2進デー
タXとYとの間の演算結果Zと,演算結果Zの1部のデ
ータZ1のモジュロ3値Cと,残りのデータZ2のモジュロ
3値Dとを出力する。本実施例は,演算結果のデータZ
を,後段の回路において,Z1とZ2との2個のデータとし
て別々に扱う様な場合に適したモジュロ3回路の例を示
す。 モジュロ3値C,Dを生成する回路より前段の回路,すな
わち,第1及び第2入力レジスタ701及び702,演算回路6
01,演算結果出力レジスタ703,第1及び第2入力モジュ
ロ3生成回路602及び603,第1及び第2モジュロ3一致
回路604及び605,及び第1及び第2モジュロ3保持レジ
スタ704及び705は,第1図の演算回路6000と同等なので
説明は省略する。 第1結果モジュロ3生成回路401は,データパス731を通
して演算結果Zの一部のデータZ1を入力すると,そのモ
ジュロ3値を生成し,データパス41を通して出力し,第
1結果モジュロ3一致回路405と第2結果モジュロ3減
算回路404との入力とする。 第2結果モジュロ3生成回路402は,データパス732を通
して演算結果Zのうち,データZ1を除いた残りのデータ
Z2を入力すると,そのモジュロ3値を生成し,データパ
ス42を通して出力し,第2結果モジュロ3一致回路406
と第1結果モジュロ3減算回路403との入力とする。 モジュロ3演算回路607は,第1モジュロ3保持レジス
タ704の出力モジュロ3値をデータパス74を通して入力
とすると共に,第2モジュロ3保持レジスタ705の出力
モジュロ3値をデータパス75を通して入力とし,いずれ
かのモジュロ3値が〔1,1〕の時は〔1,1〕をそのまま出
力し,両方共に〔1,1〕でない時は,その2個のモジュ
ロ3値間で演算回路601に対応したモジュロ3演算を実
行し,その結果を出力する。モジュロ3演算回路607の
出力は,演算結果Zのモジュロ3期待値として,データ
パス67を通して第1結果モジュロ3減算回路403と第2
結果モジュロ3減算回路404との別の入力となる。 第1結果モジュロ3減算回路403は,データパス42を通
して演算結果Zの一部Z2のモジュロ3値を入力すると共
に,データパス67を通して演算結果Zのモジュロ3期待
値を入力とし,いずれかのモジュロ3値が〔1,1〕のと
きは〔1,1〕をそのまま出力し,両方共に〔1,1〕でない
時にはZ−Z2のモジュロ3値を生成して出力する。第1
モジュロ3減算回路403の出力は,演算結果の一部Z1の
モジュロ3期待値としてデータパス43を通して第1結果
モジュロ3一致回路405の入力となる。 第2モジュロ3減算回路404は,データパス41を通して
演算結果Zの一部Z1のモジュロ3値を入力すると共に,
データパス67を通して演算結果Zのモジュロ3期待値を
入力とし,いずれかのモジュロ3値が〔1,1〕のときは
〔1,1〕をそのまま出力し,両方共に〔1,1〕でない時に
はZ−Z1のモジュロ3値を生成して出力する。第2モジ
ュロ3減算回路404の出力は,演算結果の一部Z2のモジ
ュロ3期待値として,データパス44を通して,第2結果
モジュロ3一致回路406の入力となる。 第1結果モジュロ3一致回路405は,データパス41を通
して演算結果Zの一部Z1のモジュロ3値を,データパス
43を通してそのモジュロ3期待値を入力すると,一致チ
ェックを実行し,一致している時はZ1のモジュロ3値を
そのまま出力し,Z1のモジュロ3値と期待値とのいずれ
かが〔1,1〕の時,あるいはZ1のモジュロ3値とその期
待値が一致していない時は〔1,1〕を出力し,出力され
たモジュロ3値はデータパス45を通して第1モジュロ3
出力レジスタ407の入力となる。 第2結果モジュロ3一致回路406は,データパス42を通
して演算結果Zの一部Z2のモジュロ3値を,データパス
44を通してその期待値を入力すると,一致チェックを実
行し,一致している時はZ2のモジュロ3値をそのまま出
力し,Z2のモジュロ3値と期待値とのいずれかが〔1,1〕
の時,あるいは,Z2のモジュロ3値とその期待値が一致
していない時は〔1,1〕を出力し,出力されたモジュロ
3値は,データパス46を通して第2モジュロ3出力レジ
スタ408の入力となる。 第1モジュロ3出力レジスタ407は,第1結果モジュロ
3一致回路405の出力モジュロ3値を,データパス45を
通して入力し,ストローブ信号によって格納後,データ
パス47を通して出力する。この出力モジュロ3値Cは,
演算回路4000の1出力として後段のモジュロ3回路の入
力等に用いられる。ただし,ストローブ信号入力前の本
レジスタ内の保持値が〔1,1〕の時は,〔1,1〕が保持さ
れ,出力は変化しない。 第2モジュロ3出力レジスタ408は,第2結果モジュロ
3一致回路406の出力モジュロ3値を,データパス46を
通して入力し,ストローブ信号によって格納後,データ
パス48を通して出力する。このモジュロ3値Dは,演算
回路4000の1出力として後段のモジュロ3回路の入力等
に用いられる。ただし,ストローブ信号入力前の本レジ
スタ内の保持値が〔1,1〕の時は,〔1,1〕が保持され,
出力は変化しない。 演算回路4000内に故障が生じた時,または入力データが
不正の時には,出力モジュロ3値C,Dはモジュロ3の値
としては不正な値〔1,1〕となり,演算回路4000の出力
CまたはDより前段で故障が生じた事を,後段のモジュ
ロ3回路に伝達する事ができる。またモジュロ3値Cま
たはD=〔1,1〕によって故障が報告された後,回路全
体のどの部分で故障が生じたかを知るために,不正なモ
ジュロ3値〔1,1〕がどのように伝搬してきたかを調べ
れば,故障箇所を指摘する事が容易であるという点にお
いて,第1図の演算回路6000と同等であるので説明は省
略する。 第5図は,本発明に使用されるモジュロ3演算回路の例
を示す真理値表である。(a)は加算回路,(b)は減
算回路,(c)は乗算回路,(d)は反転回路に対応し
た,それぞれモジュロ3加算,モジュロ3減算,モジュ
ロ3乗算,モジュロ3反転回路の真理値表である。図中
の一は,任意の値を示す。 (a)の加算回路の例について説明する。任意の2個の
2進数XとYの和Zを求める加算回路のチェック回路に
おいて,入力2進数Xのモジュロ3の値をA=〔a1,
a2〕,入力2進数Yのモジュロ3の値をB=〔b1,b2〕
とすると,2進数XとYの加算結果Zのモジュロ3の値と
しての期待値C=〔c1,c2〕を準備する。例えばA=
〔0,1〕,B=〔1,0〕の時は(a)の真理値表よりC=
〔0,0〕となる。 以上は従来のモジュロ3回路と同等であるが,本回路の
特徴は,モジュロ3の値として〔1,1〕を考慮した事に
ある。もし,2進数Xよりモジュロ3の値A=〔a1,a2〕
を生成する回路の故障によって,A=〔1,1〕となった場
合,(a)の真理値表に示す様に,期待値C=〔c1,
c2〕=〔1,1〕となる。2進数Y側の故障についても同
様である。つまり,期待値Cが〔1,1〕となるのは3ケ
ース存在し,1つは前記A=〔1,1〕の場合,他の1つは
B=〔1,1〕の場合,そしてモジュロ3加算回路自体の
故障によってC=(1,1〕となる場合である。 第6図は,本発明に使用されるモジュロ3一致回路の例
を示す真理値表である。2個の2ビットデータA=
〔a1,a2〕とB=〔b1,b2〕がA=Bのとき,C=〔c1,
c2〕=〔a1,a2〕,A≠BのときおよびAまたはB=〔1,
1〕のときC=〔c1,c2〕=〔1,1〕となる2ビットデー
タCを出力する。 第7図は,第5図の真理値表で示した論理で構成された
モジュロ3演算回路302と,第6図の真理値表で示た論
理で構成されたモシュロ3一致回路303を含む,チェッ
ク回路のブロック図である。 例えば,2個の2進データX=〔0,1,1,0〕とY=〔0,1,
0,1〕の加算により、XとYとの和Z=X+Y=〔1,0,
1,1〕を出力する加算回路のチェック回路の場合,モジ
ュロ3演算回路302は,2進データXのモジュロ3値A=
〔a1,a2〕=〔0,0〕と2進データYのモジュロ3値B=
〔b1,b2〕=〔1,0〕とを入力し,AとBとのモジュロ3和 をモジュロ3期待値として生成し,データパス32を通し
て,モジュロ3一致回路303の1入力とする。 モジュロ3生成回路301は,2進データXとYの和の2進
数Zを入力すると,2進数Zのモジュロ3の値D=〔d1,d
2〕=〔1,0〕を生成し,データパス31を通してモジュロ
3一致回路303の別の入力とする。 モジュロ3一致回路303は,データパス31を通して2進
数Zのモジュロ3値Dを,データパス32を通して,その
期待値Cを入力すると,D=CのときはM=〔m1,m2〕=
〔d1,d2〕,D≠Cのとき,およびDまたはC=〔1,1〕の
ときはM=〔m1,m2〕=〔1,1〕となる2ビットデータM
を出力する。 ここで,モジュロ3生成回路301に故障が発生してD=
〔1,1〕となった場合,モジュロ3演算回路302の入力A
またはB=〔1,1〕となった場合,モジュロ3演算回路3
02に故障が発生してC=〔1,1〕となった場合,モジュ
ロ3一致回路303自体に故障が発生してM=〔1,1〕とな
った場合,演算回路部またはモジュロ3演算回路302に
故障が発生してD≠Cとなった場合,のいずれの場合に
も出力M=〔1,1〕となり,出力M以前の回路に故障が
発生した事を検出し,故障を示すモジュロ3の値〔1,
1〕を後段のチェック回路に出力する事になる。後段の
チェック回路では,〔1,1〕以外の値を入力した時は正
常なデータ〔1,1〕の時は故障が検出されている事を判
別する事ができる。 第8図は本発明に使用されるモジュロ3レジスタの例を
示す(a)真理値表と(b)ブロック図である。 第8図において,モジュロ3レジスタ501は,2ビットデ
ータD=〔d1,d2〕とストローブ信号STBを入力とし,
(a)真理値表で示す論理構成により,2ビットデータE
=〔e1,e2〕が出力される。例えば,ストローブ入力前
の出力E=〔1,0〕の時D=〔0,1〕でストローブ信号が
入力されると,出力Eは,〔1,0〕から〔0,1〕に変化す
る。同様にこの状態でD=〔0,0〕でストローブ信号が
入力されると,出力Eは〔0,1〕から〔0,0〕に変化す
る。但し,出力Eの元の状態が〔1,1〕の時は,Dの値に
拘らず〔1,1〕の状態を保つことになる。従って,D=
〔1,1〕またはE=〔1,1〕の場合のストローブ入力後の
出力Eは〔1,1〕に固定され,本来モジュロ3の値とし
て〔1,1〕は不正データであるから,本回路以前の回路
に故障が発生している事を検出した事になる。また本回
路の不正データ〔1,1〕から,エラー報告信号を生成す
れば本回路はエラー表示フラグとしての役割も兼ねるこ
とになる。 第9図は,第8図のモジュロ3レジスタ501に,エラー
報告等に用いることのできるビットデータfを出力する
機能を追加したモジュロ3レジスタの例を示す(a)真
理値表と(b)ブロック図である。 第9図において,モジュロ3レジスタ502は,2ビットデ
ータD=〔d1,d2〕とストローブ信号STBを入力とし,
(a)真理値表で示す論理構成により,2ビットデータE
=〔e1,e2〕と1ビットデータfが出力される。1ビッ
トデータfは,入力D=〔1,1〕の状態でストローブ信
号が入力されると1となり,その後は出力E=〔1,1〕
と共に,f=1の状態を保つことになる。この1ビットデ
ータf=1は,不正データ〔1,1〕が入力された事を意
味するので,そのままエラー報告信号として用いる事が
できる。その他の動作は,第8図において説明したモジ
ュロ3レジスタ501と同等なので,説明は省略する。 なお,上述した実施例では,モシュロ3回路について述
べているが,本発明はこれに限定せず,モジュロW(=
2W−1)回路にも同様に適用できるのは勿論である。 〔発明の効果〕 以上説明した様に,本発明はモジュロWの値として不正
なエラーコードを考慮し,エラーコードを故障検出時の
モジュロWの値とすることによって,チェック回路自体
のエラーコードの故障も検出できると共に,後段のチェ
ック回路に,前段の故障検出を伝達する事ができる。さ
らにエラーコードの伝達経路をたどる事によって,故障
箇所を判別し易いため,チェック回路全体の故障の検出
率,分解能を向上させ,さらにLSI化等に適した構成に
できるという効果がある。
れぞれ,モジュロ3レジスタ504,505,506を使用し,さ
らに論理和回路507を追加した例である。 第3図において,第1モジュロ3保持レジスタ504は,
データパス64を通し,第1入力モジュロ3一致回路604
の出力モジュロ3値を入力し,ストローブ信号によって
格納後,データパス74を通して出力し,モジュロ3演算
回路607の入力とする。ただし,ストローブ信号入力前
の本レジスタ内の保持値が〔1,1〕のとき,またはデー
タパス64を通して入力するモジュロ3値が〔1,1〕のと
きは,ストローブ信号入力後も〔1,1〕が保持され,ス
トローブ信号に拘らず,本レジスタの出力モジュロ3値
は〔1,1〕を保ち,変化しないと共に,エラー報告の1
ビットデータl1=1がデータパス54を通して出力され,
論理和回路507の入力となる。 第2モジュロ3保持レジスタ505は,データパス65を通
し,第2モジュロ3一致回路605の出力モジュロ3値を
入力し,ストローブ信号によって格納後,データパス75
を通して出力し,モジュロ3演算回路607の別の入力と
する。ただし,ストローブ入力前の本レジスタ内の保持
値が,〔1,1〕のとき,または入力モジュロ3値が〔1,
1〕のときは,第1モジュロ3保持レジスタ504と同様
に,〔1,1〕が保持され変化しないと共に,エラー報告
の1ビットデータl2=1がデータパス55を通して出力さ
れ,論理和回路507の別の入力となる。 モジュロ3出力レジスタ506は,演算結果モジュロ3一
致回路608の出力モジュロ3値を,データパス68を通し
て入力し,ストローブ信号によって格納後,データパス
76を通して出力する。この出力モジュロ3値Cは,演算
回路5000の1出力として,後段のモジュロ3回路(図示
せず)の入力等に用いられる。ただし,ストローブ信号
入力前の本レジスタ内の保持値が〔1,1〕のとき,また
は入力モジュロ3値が〔1,1〕のときは,第1及び第2
モジュロ3保持レジスタ504及び505と同様に,〔1,1〕
が保持され変化しないと共に,エラー報告の1ビットデ
ータl3=1がデータパス56を通して出力され,論理和回
路507の入力となる。 論理和回路507は,データパス54を通してl1を,データ
パス55を通してl2を,データパス56を通してl3を入力す
ると,l1とl2とl3の論理和Eを生成し,出力する。l1,
l2,l3はそれぞれのモジュロ3レジスタの保持値が〔1,
1〕のとき,つまり故障を検出したときに1となる1ビ
ットデータであるから,論理和E=1は,演算回路5000
内で故障を検出した事を示すことになる。 演算回路5000内の他の回路は,第1図の演算回路6000と
同等であるので,説明は省略する。 第4図は,本発明の第4の実施例を示すブロック図であ
る。第4図において,演算回路4000は,2個の2進データ
X,Yとそれぞれのモジュロ3値A,Bとを入力とし,2進デー
タXとYとの間の演算結果Zと,演算結果Zの1部のデ
ータZ1のモジュロ3値Cと,残りのデータZ2のモジュロ
3値Dとを出力する。本実施例は,演算結果のデータZ
を,後段の回路において,Z1とZ2との2個のデータとし
て別々に扱う様な場合に適したモジュロ3回路の例を示
す。 モジュロ3値C,Dを生成する回路より前段の回路,すな
わち,第1及び第2入力レジスタ701及び702,演算回路6
01,演算結果出力レジスタ703,第1及び第2入力モジュ
ロ3生成回路602及び603,第1及び第2モジュロ3一致
回路604及び605,及び第1及び第2モジュロ3保持レジ
スタ704及び705は,第1図の演算回路6000と同等なので
説明は省略する。 第1結果モジュロ3生成回路401は,データパス731を通
して演算結果Zの一部のデータZ1を入力すると,そのモ
ジュロ3値を生成し,データパス41を通して出力し,第
1結果モジュロ3一致回路405と第2結果モジュロ3減
算回路404との入力とする。 第2結果モジュロ3生成回路402は,データパス732を通
して演算結果Zのうち,データZ1を除いた残りのデータ
Z2を入力すると,そのモジュロ3値を生成し,データパ
ス42を通して出力し,第2結果モジュロ3一致回路406
と第1結果モジュロ3減算回路403との入力とする。 モジュロ3演算回路607は,第1モジュロ3保持レジス
タ704の出力モジュロ3値をデータパス74を通して入力
とすると共に,第2モジュロ3保持レジスタ705の出力
モジュロ3値をデータパス75を通して入力とし,いずれ
かのモジュロ3値が〔1,1〕の時は〔1,1〕をそのまま出
力し,両方共に〔1,1〕でない時は,その2個のモジュ
ロ3値間で演算回路601に対応したモジュロ3演算を実
行し,その結果を出力する。モジュロ3演算回路607の
出力は,演算結果Zのモジュロ3期待値として,データ
パス67を通して第1結果モジュロ3減算回路403と第2
結果モジュロ3減算回路404との別の入力となる。 第1結果モジュロ3減算回路403は,データパス42を通
して演算結果Zの一部Z2のモジュロ3値を入力すると共
に,データパス67を通して演算結果Zのモジュロ3期待
値を入力とし,いずれかのモジュロ3値が〔1,1〕のと
きは〔1,1〕をそのまま出力し,両方共に〔1,1〕でない
時にはZ−Z2のモジュロ3値を生成して出力する。第1
モジュロ3減算回路403の出力は,演算結果の一部Z1の
モジュロ3期待値としてデータパス43を通して第1結果
モジュロ3一致回路405の入力となる。 第2モジュロ3減算回路404は,データパス41を通して
演算結果Zの一部Z1のモジュロ3値を入力すると共に,
データパス67を通して演算結果Zのモジュロ3期待値を
入力とし,いずれかのモジュロ3値が〔1,1〕のときは
〔1,1〕をそのまま出力し,両方共に〔1,1〕でない時に
はZ−Z1のモジュロ3値を生成して出力する。第2モジ
ュロ3減算回路404の出力は,演算結果の一部Z2のモジ
ュロ3期待値として,データパス44を通して,第2結果
モジュロ3一致回路406の入力となる。 第1結果モジュロ3一致回路405は,データパス41を通
して演算結果Zの一部Z1のモジュロ3値を,データパス
43を通してそのモジュロ3期待値を入力すると,一致チ
ェックを実行し,一致している時はZ1のモジュロ3値を
そのまま出力し,Z1のモジュロ3値と期待値とのいずれ
かが〔1,1〕の時,あるいはZ1のモジュロ3値とその期
待値が一致していない時は〔1,1〕を出力し,出力され
たモジュロ3値はデータパス45を通して第1モジュロ3
出力レジスタ407の入力となる。 第2結果モジュロ3一致回路406は,データパス42を通
して演算結果Zの一部Z2のモジュロ3値を,データパス
44を通してその期待値を入力すると,一致チェックを実
行し,一致している時はZ2のモジュロ3値をそのまま出
力し,Z2のモジュロ3値と期待値とのいずれかが〔1,1〕
の時,あるいは,Z2のモジュロ3値とその期待値が一致
していない時は〔1,1〕を出力し,出力されたモジュロ
3値は,データパス46を通して第2モジュロ3出力レジ
スタ408の入力となる。 第1モジュロ3出力レジスタ407は,第1結果モジュロ
3一致回路405の出力モジュロ3値を,データパス45を
通して入力し,ストローブ信号によって格納後,データ
パス47を通して出力する。この出力モジュロ3値Cは,
演算回路4000の1出力として後段のモジュロ3回路の入
力等に用いられる。ただし,ストローブ信号入力前の本
レジスタ内の保持値が〔1,1〕の時は,〔1,1〕が保持さ
れ,出力は変化しない。 第2モジュロ3出力レジスタ408は,第2結果モジュロ
3一致回路406の出力モジュロ3値を,データパス46を
通して入力し,ストローブ信号によって格納後,データ
パス48を通して出力する。このモジュロ3値Dは,演算
回路4000の1出力として後段のモジュロ3回路の入力等
に用いられる。ただし,ストローブ信号入力前の本レジ
スタ内の保持値が〔1,1〕の時は,〔1,1〕が保持され,
出力は変化しない。 演算回路4000内に故障が生じた時,または入力データが
不正の時には,出力モジュロ3値C,Dはモジュロ3の値
としては不正な値〔1,1〕となり,演算回路4000の出力
CまたはDより前段で故障が生じた事を,後段のモジュ
ロ3回路に伝達する事ができる。またモジュロ3値Cま
たはD=〔1,1〕によって故障が報告された後,回路全
体のどの部分で故障が生じたかを知るために,不正なモ
ジュロ3値〔1,1〕がどのように伝搬してきたかを調べ
れば,故障箇所を指摘する事が容易であるという点にお
いて,第1図の演算回路6000と同等であるので説明は省
略する。 第5図は,本発明に使用されるモジュロ3演算回路の例
を示す真理値表である。(a)は加算回路,(b)は減
算回路,(c)は乗算回路,(d)は反転回路に対応し
た,それぞれモジュロ3加算,モジュロ3減算,モジュ
ロ3乗算,モジュロ3反転回路の真理値表である。図中
の一は,任意の値を示す。 (a)の加算回路の例について説明する。任意の2個の
2進数XとYの和Zを求める加算回路のチェック回路に
おいて,入力2進数Xのモジュロ3の値をA=〔a1,
a2〕,入力2進数Yのモジュロ3の値をB=〔b1,b2〕
とすると,2進数XとYの加算結果Zのモジュロ3の値と
しての期待値C=〔c1,c2〕を準備する。例えばA=
〔0,1〕,B=〔1,0〕の時は(a)の真理値表よりC=
〔0,0〕となる。 以上は従来のモジュロ3回路と同等であるが,本回路の
特徴は,モジュロ3の値として〔1,1〕を考慮した事に
ある。もし,2進数Xよりモジュロ3の値A=〔a1,a2〕
を生成する回路の故障によって,A=〔1,1〕となった場
合,(a)の真理値表に示す様に,期待値C=〔c1,
c2〕=〔1,1〕となる。2進数Y側の故障についても同
様である。つまり,期待値Cが〔1,1〕となるのは3ケ
ース存在し,1つは前記A=〔1,1〕の場合,他の1つは
B=〔1,1〕の場合,そしてモジュロ3加算回路自体の
故障によってC=(1,1〕となる場合である。 第6図は,本発明に使用されるモジュロ3一致回路の例
を示す真理値表である。2個の2ビットデータA=
〔a1,a2〕とB=〔b1,b2〕がA=Bのとき,C=〔c1,
c2〕=〔a1,a2〕,A≠BのときおよびAまたはB=〔1,
1〕のときC=〔c1,c2〕=〔1,1〕となる2ビットデー
タCを出力する。 第7図は,第5図の真理値表で示した論理で構成された
モジュロ3演算回路302と,第6図の真理値表で示た論
理で構成されたモシュロ3一致回路303を含む,チェッ
ク回路のブロック図である。 例えば,2個の2進データX=〔0,1,1,0〕とY=〔0,1,
0,1〕の加算により、XとYとの和Z=X+Y=〔1,0,
1,1〕を出力する加算回路のチェック回路の場合,モジ
ュロ3演算回路302は,2進データXのモジュロ3値A=
〔a1,a2〕=〔0,0〕と2進データYのモジュロ3値B=
〔b1,b2〕=〔1,0〕とを入力し,AとBとのモジュロ3和 をモジュロ3期待値として生成し,データパス32を通し
て,モジュロ3一致回路303の1入力とする。 モジュロ3生成回路301は,2進データXとYの和の2進
数Zを入力すると,2進数Zのモジュロ3の値D=〔d1,d
2〕=〔1,0〕を生成し,データパス31を通してモジュロ
3一致回路303の別の入力とする。 モジュロ3一致回路303は,データパス31を通して2進
数Zのモジュロ3値Dを,データパス32を通して,その
期待値Cを入力すると,D=CのときはM=〔m1,m2〕=
〔d1,d2〕,D≠Cのとき,およびDまたはC=〔1,1〕の
ときはM=〔m1,m2〕=〔1,1〕となる2ビットデータM
を出力する。 ここで,モジュロ3生成回路301に故障が発生してD=
〔1,1〕となった場合,モジュロ3演算回路302の入力A
またはB=〔1,1〕となった場合,モジュロ3演算回路3
02に故障が発生してC=〔1,1〕となった場合,モジュ
ロ3一致回路303自体に故障が発生してM=〔1,1〕とな
った場合,演算回路部またはモジュロ3演算回路302に
故障が発生してD≠Cとなった場合,のいずれの場合に
も出力M=〔1,1〕となり,出力M以前の回路に故障が
発生した事を検出し,故障を示すモジュロ3の値〔1,
1〕を後段のチェック回路に出力する事になる。後段の
チェック回路では,〔1,1〕以外の値を入力した時は正
常なデータ〔1,1〕の時は故障が検出されている事を判
別する事ができる。 第8図は本発明に使用されるモジュロ3レジスタの例を
示す(a)真理値表と(b)ブロック図である。 第8図において,モジュロ3レジスタ501は,2ビットデ
ータD=〔d1,d2〕とストローブ信号STBを入力とし,
(a)真理値表で示す論理構成により,2ビットデータE
=〔e1,e2〕が出力される。例えば,ストローブ入力前
の出力E=〔1,0〕の時D=〔0,1〕でストローブ信号が
入力されると,出力Eは,〔1,0〕から〔0,1〕に変化す
る。同様にこの状態でD=〔0,0〕でストローブ信号が
入力されると,出力Eは〔0,1〕から〔0,0〕に変化す
る。但し,出力Eの元の状態が〔1,1〕の時は,Dの値に
拘らず〔1,1〕の状態を保つことになる。従って,D=
〔1,1〕またはE=〔1,1〕の場合のストローブ入力後の
出力Eは〔1,1〕に固定され,本来モジュロ3の値とし
て〔1,1〕は不正データであるから,本回路以前の回路
に故障が発生している事を検出した事になる。また本回
路の不正データ〔1,1〕から,エラー報告信号を生成す
れば本回路はエラー表示フラグとしての役割も兼ねるこ
とになる。 第9図は,第8図のモジュロ3レジスタ501に,エラー
報告等に用いることのできるビットデータfを出力する
機能を追加したモジュロ3レジスタの例を示す(a)真
理値表と(b)ブロック図である。 第9図において,モジュロ3レジスタ502は,2ビットデ
ータD=〔d1,d2〕とストローブ信号STBを入力とし,
(a)真理値表で示す論理構成により,2ビットデータE
=〔e1,e2〕と1ビットデータfが出力される。1ビッ
トデータfは,入力D=〔1,1〕の状態でストローブ信
号が入力されると1となり,その後は出力E=〔1,1〕
と共に,f=1の状態を保つことになる。この1ビットデ
ータf=1は,不正データ〔1,1〕が入力された事を意
味するので,そのままエラー報告信号として用いる事が
できる。その他の動作は,第8図において説明したモジ
ュロ3レジスタ501と同等なので,説明は省略する。 なお,上述した実施例では,モシュロ3回路について述
べているが,本発明はこれに限定せず,モジュロW(=
2W−1)回路にも同様に適用できるのは勿論である。 〔発明の効果〕 以上説明した様に,本発明はモジュロWの値として不正
なエラーコードを考慮し,エラーコードを故障検出時の
モジュロWの値とすることによって,チェック回路自体
のエラーコードの故障も検出できると共に,後段のチェ
ック回路に,前段の故障検出を伝達する事ができる。さ
らにエラーコードの伝達経路をたどる事によって,故障
箇所を判別し易いため,チェック回路全体の故障の検出
率,分解能を向上させ,さらにLSI化等に適した構成に
できるという効果がある。
第1図は本発明のモジュロ3回路を使用した演算回路の
一例を示すブロック図,第2図は第1図の演算回路と同
等な各種演算回路を複数個,複数段使用した演算回路の
一例を示すブロック図,第3図は第1図の第1の実施例
に機能を追加した演算回路の一例を示すブロック図,第
4図は第1図の第1の実施例を応用した第4の実施例を
示すブロック図,第5図は本発明に使用されるモジュロ
3演算回路の例を示す真理値表,第6図は本発明に使用
されるモジュロ3一致回路の例を示す真理値表,第7図
は第5図の真理値表で示した論理構成のモジュロ3演算
回路と第6図の真理値表で示した論理構成のモジュロ3
一致回路とを含むチェック回路の例を示すブロック図,
第8図は本発明に使用されるモジュロ3レジスタの例を
示す真理値表とブロック図,第9図は第8図のモジュロ
3レジスタに機能を追加したモジュロ3レジスタの例を
示す真理値表とブロック図,第10図は従来から用いられ
ているモジュロ3回路の一例を示すブロック図,第11図
は演算装置内の演算回路の一部であり,その中間結果に
対するモジュロ3回路の一例を示すブロック図である。 602,603,606,401,402,301……モジュロ3生成回路,604,
605,608,405,406,303……モジュロ3一致回路,704,705,
706,504,505,506,407,408,501,502……モジュロ3レジ
スタ,607,302……モジュロ3演算回路,701,702……入力
レジスタ,601……演算回路,201,204……加算回路,202,2
05……減算回路,203,207……乗算回路,206……反転回
路,507……論理和回路,703……演算結果出力レジスタ,4
000,5000,6000,7000……演算回路,403,404……モジュロ
3減算回路。
一例を示すブロック図,第2図は第1図の演算回路と同
等な各種演算回路を複数個,複数段使用した演算回路の
一例を示すブロック図,第3図は第1図の第1の実施例
に機能を追加した演算回路の一例を示すブロック図,第
4図は第1図の第1の実施例を応用した第4の実施例を
示すブロック図,第5図は本発明に使用されるモジュロ
3演算回路の例を示す真理値表,第6図は本発明に使用
されるモジュロ3一致回路の例を示す真理値表,第7図
は第5図の真理値表で示した論理構成のモジュロ3演算
回路と第6図の真理値表で示した論理構成のモジュロ3
一致回路とを含むチェック回路の例を示すブロック図,
第8図は本発明に使用されるモジュロ3レジスタの例を
示す真理値表とブロック図,第9図は第8図のモジュロ
3レジスタに機能を追加したモジュロ3レジスタの例を
示す真理値表とブロック図,第10図は従来から用いられ
ているモジュロ3回路の一例を示すブロック図,第11図
は演算装置内の演算回路の一部であり,その中間結果に
対するモジュロ3回路の一例を示すブロック図である。 602,603,606,401,402,301……モジュロ3生成回路,604,
605,608,405,406,303……モジュロ3一致回路,704,705,
706,504,505,506,407,408,501,502……モジュロ3レジ
スタ,607,302……モジュロ3演算回路,701,702……入力
レジスタ,601……演算回路,201,204……加算回路,202,2
05……減算回路,203,207……乗算回路,206……反転回
路,507……論理和回路,703……演算結果出力レジスタ,4
000,5000,6000,7000……演算回路,403,404……モジュロ
3減算回路。
Claims (1)
- 【請求項1】wビットの入力、wビットの出力を有する
モジュロW回路であって、wビット(w≧2)で表現す
ることができる2w通りの2進値のうち、全ビットが“1"
を除くW(=2w−1)通りの2進値のうち1通りのコー
ドは、故障が検出されたことを示すエラーコードとして
定義され、全ビットが“1"を含む残りのW(=2w−1)
通りの2進値は、モジュロWのW通りのコードとして定
義され、故障が発生又は故障を検出してエラーコードを
生成した際には、そのエラーコードを伝搬させることを
特徴とするモジュロW回路であって、n個のwビットデ
ータA1=[a11,a12…,a1w],A2=[a21,a22…,a2w],
…,An=[an1,an2,…,anw]の入力のうちの1つ以上が
前記エラーコードを示しているとき、wビットデータC
=[c1,c2,…,cw]として前記エラーコードを出力する
ことを特徴とするモジュロW回路。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61-155009 | 1986-07-03 | ||
| JP15500986 | 1986-07-03 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63145547A JPS63145547A (ja) | 1988-06-17 |
| JPH0786840B2 true JPH0786840B2 (ja) | 1995-09-20 |
Family
ID=15596693
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62158808A Expired - Lifetime JPH0786840B2 (ja) | 1986-07-03 | 1987-06-27 | モジュロw回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0786840B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7376890B2 (en) | 2004-05-27 | 2008-05-20 | International Business Machines Corporation | Method and system for checking rotate, shift and sign extension functions using a modulo function |
| JP4869911B2 (ja) * | 2006-12-26 | 2012-02-08 | エヌイーシーコンピュータテクノ株式会社 | ロジックbist回路及びモジュロ回路 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5718741B2 (ja) * | 1972-10-25 | 1982-04-19 | ||
| JPS5359308A (en) * | 1976-11-09 | 1978-05-29 | Fujitsu Ltd | Information recording control system |
| JPS5616241A (en) * | 1979-07-19 | 1981-02-17 | Hitachi Ltd | Processing unit |
-
1987
- 1987-06-27 JP JP62158808A patent/JPH0786840B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS63145547A (ja) | 1988-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Lo et al. | An SFS Berger check prediction ALU and its application to self-checking processor designs | |
| Hayes | Transition count testing of combinational logic circuits | |
| US4635261A (en) | On chip test system for configurable gate arrays | |
| US7353470B2 (en) | Variable clocked scan test improvements | |
| JPH0786840B2 (ja) | モジュロw回路 | |
| Hsieh et al. | DR-scan: Dual-rail asynchronous scan DfT and ATPG | |
| JP4899927B2 (ja) | テストパターン自動生成方法およびテストパターン自動生成プログラム | |
| US20250290981A1 (en) | Scan chain control | |
| US5467292A (en) | Logical operation method employing parallel arithmetic unit | |
| JPH0542016B2 (ja) | ||
| JPH0542015B2 (ja) | ||
| JPH0542017B2 (ja) | ||
| US20020013919A1 (en) | Integrated circuit that is robust against circuit errors | |
| JPH10340202A (ja) | 故障検証を容易にするアドレストラップ比較回路 | |
| Dorr | Self-checking combinational logic binary counters | |
| JPH0583933B2 (ja) | ||
| JPH05282171A (ja) | 計数器 | |
| JP2806459B2 (ja) | フリップフロップが評価可能な論理シミュレーション装置 | |
| Greblicki et al. | Design of totally self-checking code-disjoint synchronous sequential circuits | |
| JPH06201779A (ja) | テスト回路 | |
| Busaba et al. | An Approach for Self‐Checking Realization of Interacting Finite State Machines | |
| Kamiura et al. | Design and fault diagnosis of cellular arrays realizing multiple‐valued logic functions | |
| Geurkov | On the Theory and Design of Polynomial Division Circuits | |
| Göessel et al. | Principles of Concurrent Checking | |
| Yu et al. | Testable on-the-fly carry-save multiplier by alternating input data |