JPH02178738A - 少なくとも2つのオペランドの算術演算において誤りを検出するための方法 - Google Patents

少なくとも2つのオペランドの算術演算において誤りを検出するための方法

Info

Publication number
JPH02178738A
JPH02178738A JP1281625A JP28162589A JPH02178738A JP H02178738 A JPH02178738 A JP H02178738A JP 1281625 A JP1281625 A JP 1281625A JP 28162589 A JP28162589 A JP 28162589A JP H02178738 A JPH02178738 A JP H02178738A
Authority
JP
Japan
Prior art keywords
digits
arithmetic operation
operands
signal
digit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP1281625A
Other languages
English (en)
Inventor
Safdar M Asghar
サフダー・マーモッド・アースガー
John G Bartkowiak
ジョーン・グレイ・バートコウビアック
Eric A Suss
エリック・アレン・サス
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH02178738A publication Critical patent/JPH02178738A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/104Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の背景 この発明は誤り検出および訂正システムに関し、特に、
コンピュータプロセッサまたは演算論理装置(A L 
U)の中で発生する計′!JF誤りを検出するための、
かつ訂正するためのシステムに関する。
コンピュータ技術分野において、データ処理の完全性を
改善し確実にしようとすることに多くの努力が払われて
きた。置体的にいうと、データがコンピュータシステム
の1つのコンポーネントからもう1つのものへ転送され
るときはいつでも、およびデータが数学的に処理される
ときはいつでも、結果として生じるデータが不正確であ
るというリスクがある。成る高性能計算機システムにお
いて、沢山のデータ転送または数学的動作が短時間の間
に起こるという事実により、リスクは増加される。
はとんどコンピュータプロセッサが始まって以来、誤り
検出および訂正メカニズムは、不正確なデータ転送およ
び処理のリスクを減じるのを促進するのに工夫されてき
た。これまで、データ完全性を確実にする従来のアプロ
ーチの1つは、それを転送する、または算術的に処理す
る前に、コードをデータストリームに加えることであっ
た。このアプローチは比較的成功であったが、しかし動
作の成る型についてのみであった。
データ転送の間に誤りを検出するための最も初期の方法
の1つは例えばパリティチエツクコードであった。バイ
ナリコードワードは、もしそのディジットの奇数の数が
「1」であるなら、奇数のパリティを持つ。たとえば、
数1011は3つの「1」ディジットを持ち、したがっ
て奇数のパリティを有する。同様に、バイナリコードワ
ード1100は「1」ディジットの偶数の数を持ち、し
たがって偶数のパリティを有する。
単一のパリティチエツクコードは、各データワードに加
えられ奇数か、または偶数のパリティを生ずる付加的な
チエツクビットを特徴とする。データワードの中の単一
のディジットまたはビットにおける誤りが認識できるで
あろうし、その理由はそのデータワードに関連したパリ
ティチエツクビットはそのとき予期されるものから逆に
されるであろうからである。典型的に、パリティジェネ
レータは伝送の前に各ワードにパリティチエツクビット
を加える。この技術はデータワードをパディングするこ
とと呼ばれる。受信機では、ワードの中のディジットは
テストされ、もしパリティが間違っているのであれば、
データワードの中のビットの1つは誤っていると考えら
れる。誤りが受信機で検出されると、繰返し伝送の要求
が与えられ得、それで誤りは訂正され得る。奇数の数の
ディジットにおける誤りのみが単一のパリティチエツク
で検出され得、その理由は誤りの偶数の数は正しい伝送
に対して期待されるパリティの結果となるからである。
さらに、誤っている特定のビットは上記のようなパリテ
ィチエツク手続きによって見分けられない。
より複雑な誤り検出システムがその後工夫された。固定
された長さのビットのデータワードは、それぞれのデー
タワードの固定した数のブロックにグループにされた。
パリティチエツクは、各個々のデータワードに対してと
同じく異なったデータワード間にその後行なわれた。ブ
ロックパリティコードは多くのパターンの誤りを検出し
、分離した誤りがマトリックスの所与の行列に発生した
とき、誤り検出だけでなく、また誤り訂正に使用され得
た。これらの幾何学的なコードはそれ自体がパリティチ
エツクビットに関する改良であったが、それらはまだ数
が偶数で2つの次元で対称の誤りを検出するのに使用さ
れ得なかった。
パリティチエツクコードおよび幾何学的コードが工夫さ
れた後、成るコードがハミングにより発明され、それは
その人に因んで名付けられた。ハミングコードは論理的
な態様でデータワードをコード化する多重パリティチエ
ツクのシステムであり、それで個々の誤りが検出され得
るだけでなくまた訂正のために識別され得る。ハミング
コードで使用される伝送されるデータワードは最初のデ
ータワードおよびそれに付加されるパリティチエツクデ
ィジットからなる。要求されるパリティチエツクの各々
は伝送されるワードの特定のビット位置に行なわれる。
システムはそれが最初のデータワードビットの1つの中
にあろうと加えられたパリティチエツクビットの1つの
中にあろうと、誤ったディジットの分離を可能にする。
もしすべてのパリティチエツク動作が首尾良く行なわれ
るとすると、データワードは誤りがないと仮定される。
もしチエツク動作の1つまたはそれ以上が不成功である
と、しかしながら、誤った単一のビットはいわゆるシン
ドロームビットをデコードすることにより唯一決定され
、それはバリティチエツクピットから生じる。再び、単
一ビット誤りのみが検出され、従来のハミングコードの
使用により訂正される。二重ビット誤りは、ハミングコ
ードにより検出可能であるが、訂正可能ではない。
ハミングコードはただ、包括的に誤り訂正コード(EC
C’  s)と呼ばれる、いくつものコードのうちの1
つである。コードは通常、コードの中のすべての許容さ
れた数のシーケンスを含む閉じた値の組として数学で記
述される。データ交信において、伝送される数は、どん
な予め定められたコードの組にも関係しない本質的にラ
ンダムデータパターンである。データのシーケンスはそ
の後、上記で述べられたように、送信機でそれに加える
ことによってコードの組に従うように強いられる。
伝送されるデータの連結を有効なコードにするのにどれ
ほど正確な余分なストリングを最初のデータストリーム
に加えるかを決定するために機構がこれまで開発されて
きた。受信機でコード値から最初のデータを抽出し、実
際のデータをそれが最終的に使われる位置に伝える整合
的な方法がある。
コード機構が有効であるために、それはお互いに十分に
違った許容された値を含まなければならず、それで予期
される誤りは、それがコードの、異なった許容された値
となるように、許容された値を変更しない。
巡回冗長コード(cRC)は生成多項式により均等に割
り切れるバイナリデータのストリングからなり、それは
お互いに十分違い検出されない誤りの低い確率を達する
、値のコードの組の結果となる選択された数である。最
初のデータのストリングに何を加えるかを決定するのに
、最初のストリングはそれが伝送されている間、割られ
る。最後のデータビットが通過すると、除算からの剰余
は加えられる要求されるストリングであり、その理由は
剰余を含むストリングは生成多項式により均等に割り切
れるからである。生成多項式は既知の長さであるので、
最初のストリングに加えられる剰余はまた固定された長
さである。
受信機で、入来のストリングは生成多項式により割られ
る。もし入来のストリングが均等に割れないのであれば
、誤りが起こったと仮定される。
もし入来のストリングが生成多項式により均等に割られ
るのであれば、最終の行先に伝えられるデータは、固定
された長さの剰余体(field)が除去された入来の
データである。
しかしながら、転送されるべきまたは算術的に処理され
るべきデータにコードを付加すること、または連結する
ことは厄介であり、達成するのに付加的な、しばしば費
用のかかる論理を必要とするということがわかってきた
。さらに、転送する端部でコードを発生し、受取る端部
でコードをデコードし確かめるのに必要とされる時間は
、成る場合には受入れ可能ではない。適切なALU動作
のデータ処理および確認の場合に特に、付加的なフード
は非能率的な性能の結果となる。
さらに、上記の誤り検出および/または訂正システムは
、データに数学的に作用する際よりもむしろ、データを
伝送し、受取る際に最も一般的に使用されてきた。この
ように、交信チャネルはテストされたが、しかし計算機
エンジンはそうではなかった。算術演算において誤りを
訂正するための技術は、従来同じプロセッサに、または
他のプロセッサに単に同じ動作を再び行なうことに帰せ
られてきた。
最後に、先行技術の処理の検出サイクルの不可避な比較
ステップのため、誤りの訂正はその後の多少の時間での
み起こり得、高速度処理ユニットにとっては維持し得な
い状況である。
データストリームに付加されるコードを組立て、デコー
ドする必要のない、算術演算における誤りを検出するた
めのシステムを提供することは有利であろう。
最少の量の論理を用いることにより算術演算における誤
りを検出し訂正するためのシステムを提供することはま
た有利であろう。
短時間(たとえば、1つまたは2つのクロックサイクル
)で算術演算における誤りを検出し訂正するためのシス
テムを提供することはまた有利であろう。
その中で誤りが発生したことを示す信号を与えるであろ
う算術演算における誤りを検出し訂正し、それにもかか
わらずそのような算術演算の結果が自動的に訂正され得
るシステムを提供することはさらに有利であろう。
算術演算の間違った結果をそのための正しい結果で先取
りするためのシステムを提供することはまた有利であろ
う。
2つの演算論理装置が独立して、かつ異なった技術によ
り算術演算を計算し得、したがって検証し得る正確な結
果に到達する、算術演算における誤りを検出し訂正する
ためのシステムを提供することはまた有利であろう。
発明の概要 この発明に従って、少なくとも2つのオペランドの算術
演算の間に発生する1つのクロックサイクルにおいて誤
りを検出し訂正する方法を行なうための装置が提供され
る。具体的に言うと、結果を得るのに2つのオペランド
が動作される。結果のディジットがお互いに加えられる
。この加えるステップは第1のli−ディジットが達せ
られるまで繰返される。オペランドの各々のディジット
は中間の和を得るのにお互いに加えられる。中間の和の
ディジットは、順番に、お互いに加えられる。
再び、この動作は第2の単一ディジットが達せられるま
で反復される。第1の単一ディジット数は第2の単一デ
ィジット数と比較され、もし比較が不成功であれば誤り
を示す信号が発生される。
誤りを訂正するために、オペランドの各々のディジット
が中間の和を得るのにお互いに加えられる。引き続いて
、オペランドの各々の残余のディジットの部分的な和か
らディジットが減算される。
各オペランドに対する減算の結果は各順次的なサイクル
の終わりでお互いに加えられ1組の引き数を得、それの
各々は中間の和から減算され1組の部分的な差を得る。
部分的な差は連結され遷移値を得る。成るディジットを
除去することによって、算術演算の正しい値が得られる
この発明の完全な理解は、それの詳細な説明と関連して
理解されると、添付の図面の参照により得られ得る。
好ましい実施例の説明 ここで第1図を参照すると、この発明の好ましい実施例
に従う自己検査ユニットのブロック図が示される。デー
タライン10は第1のオペランドを表わすDBOデータ
信号を伝送し、もう1つのデータライン12は第2のオ
ペランドからDBIデータ信号を転送する。ライン10
および12で伝送される16ビット信号は演算論理装置
(ALU)14に印加され、それの動作は下文にさらに
詳細に記述される。ALU14は、たとえばアドバンス
ト・マイクロ・ディバイシズ・インコーホレーテッド(
Advanced Micro Devices、 I
nc、)により製造されるモデルNo、29116のよ
うな、どんな汎用16ビットプロセツサでもあり得る。
ライン10および12のデータ信号はまた誤り検出およ
び訂正(EDC)ユニット16に印加される。
ALU14の出力はまた16ビットラインでEDCユニ
ット16に印加されるが、しかしALU14の範囲内で
の算術計算を行なうため成る時間遅延される。EDCユ
ニット16は1対の4ビットデータライン22および2
4で比較器20に電気的に接続される。比較器20は、
たとえばテキサス・インスツルメンツ拳インコーボレー
テッド(Texas Instrug+enLs、 I
nc、)により製造されるモデルNo、5N54585
のような、どんな4ビット比較器でもよい。
比較器20からの出力は16ビットデータセレクタ26
に印加される。比較器20はライン30で1ビット状態
信号を発生する。またデータセレクタ26に印加される
のは、ライン32でのALU14からの出力信号である
このように、第1図に仮想的に図示される、誤り検出お
よび訂正サブシステムは、3つの構成要素を含み、すな
わちEDCユニット16、比較器20およびデータセレ
クタ26である。
述べられたように、比較器20はライン30で状態信号
を発生する。状態ライン30は、前に述べられたように
、データセレクタ26だけでなく、またライン34で図
示されない誤りフラッグに与えられる。誤りフラッグ状
態は、図示されない、さらに処理を行なうための状態レ
ジスタへの入力である。
データセレクタ26の出力は、図示されないマイクロプ
ロセッサシステムに送られるライン36の16ビット信
号である。
この時点でこの発明が基づく理論上の原理を理解するこ
とは一番役に立つであろう。
加えられるべき2つの2デイジツト数またはオペランド
を考えると、 49および68 縦の(標準の)加算により、49 +68 結果は         117 オペランド49を変数Xにより表わされるようにする。
個々のディジット、xl−4およびX2−9のときX−
(X + 、X2 )である。
ここの前述のおよびすべてのその後の等式において、等
号(−)は必ずしも数学的等価を示すまたは同定するも
のでなく、単に便宜上の記号の規約としてこの開示の目
的のために使用される。
68を変数Yにより表わされるようにする。
Y= (y+ 、yz )でそこではyl−6およびy
2−8であり、 XIY−117であるので、標準の縦の加算は(XI 
+V+ ) 十(X2 +)’2) =117(等式1
) として表わされ得る。
しかしながら、オペランドXのディジット、Xおよびx
2を加えると、結果は XI +X2−13となり、 ディジットyIおよびy2を加算すると結果は、Y++
Y2−14となる。
(x、 +x2 ) + (>’I +)’2 )−1
3+14−27      (等式2)等式1は明らか
に等式2と等しくない。
等式1から、値117のディジットは次のtli−ディ
ジットに減少され得、 1+1+7−9         (等式1a)等式2
から、値27は、 2+7−9(等式2a) に減少され得る。
等式1aおよび2aは等しい、単一ディジットの結果と
なる。
オペランドかまたは結果における沢山のディジットおよ
び/またはより大きいディジットは、結局は単一ディジ
ット値の結果となる反復の加算する動作を必要とする。
たとえば、お互いに加算された68.879のディジッ
トは38の結果となり、それのディジットの和は11で
あり、それのディジットの和は単一ディジット2である
。このようにディジットの3つの加算が68.879を
最終の1つのディジット値に減少するのに必要とされる
前述の原理は、もし結果のディジットが単一ディジット
に減少するようにお互いに加算されると(等式1aでの
ように)、縦の加算から得られる結果は単一ディジット
に減少される各オペランドのディジットの水平の加算か
ら得られる結果(等式2a)と等しいということを示唆
する。
システムはまた、異なった数のディジットを有する2つ
のオペランドの加算(たとえば、4デイジツト数に加算
される2デイジツト数)について成功であるということ
がわかった。さらに、下記に示されるように、システム
は乗算に適用できる。
X−32およびY−42とする。
1344−1+3+4+4 −12−1+2−3    (等式3)水平に、32−
3+2−5、および 42−4+2−6 5x6−30−3+0−3 (等式4)等式3−等式4 この数学的原理は減算および除算に広げられ得る。
たとえば、38割る13は、 38/13−2、剰余12 2+ (12)−2+ (1+2)−5(等式5)の結
果となる。
被除数のディジットは以下のように減少する。
38−3+8−11 除数のディジットは次のように減少する。
13−1+3−4 11/4−2、剰余3 2+3−5             (等式6)等式
5−等式6 ALUのものにおいて見つけられるような論理回路にお
いて、最も頻繁に行なわれる動作は、他の機能ももちろ
ん頻繁に行なわれるが、加算である。前述の数学的原理
および方法論は、ALUの範囲内で発生する誤りを検出
する手続を作成するのに使用され得る(たとえば、2つ
またはそれ以上の数が加算される、またはそうでなく算
術的に処理されるとき)。さらに、この原理は縦に再び
加算することなく誤った結果を訂正するのに使用され得
る。これは、もしALUが単に同じ態様で働かされると
、ALUの中の誤った縦の加算の原因は継続し得、同じ
または他の誤った結果を生成するので重要である。
誤り検出は、等式1aが等式2aに等しくない、等式3
が等式4に等しくない、または等式5が等式6に等しく
ないとき、信号誤動作または不正確な演算処理結果に対
して実施され得る。等式1aが等式2aに等しくない(
すなわち、減少された縦の単一デイジツト和が減少され
た水平の単一デイジツト和に等しくない)場合、比較器
は変則を示す状態フラッグを上げるであろう。
2つの数49および68がお互いに加算された前述の最
初の例を考える。49および68の和−49+68−1
17゜ALUを誤動作することにより生成される結果が
117とは違った数であると仮定し、たとえば、100
とする。
+68 100(??) (XI +y+ )+ (X2 +y2 )−100(
??)この発明に従って、各オペランドの水平の加算お
よび減少は次のように行なわれる。
(XI +x2 )+ (y+ +yz )−4+9+
8+6−27     (等式7)ディジットをお五い
から減算すると、 x、−x2−4−9■−5 )’+−yz−68−2 の結果となる。
結果を加算すると、 (x、  x2 )+ (y+−’12)−7(等式8
) 等式7−等式8は、 2X2 +2y2−18+16■34 x2 +y2 m17         (等式9)の
結果となる。
等式7+等式8は、 2 x + + 27 + −8+ 12−20x、+
y、−10          (等式10)の結果と
なる。
10進加算について、等式9および等式10の結果はそ
れぞれ、 桁上げ+(cI)および(X2+V2)(すなわち、7
と桁上げ1) 桁上げ2(c2)および(X++V+)(すなわち、0
と桁上げ1) このように、(XI +F+ ) + (X2 +)’
2 )は表の形式で、 C2XI”)’+  CI  X2+y2として表わさ
れ得る。
キャリーの位(c4)を左にシフトすることによって、
表の結果は、 C2XI  +  y l     CI     X
2  +V  2となる。
キャリーの列(c5)の0の値を除去することは117
の結果となり、それは正しい結果である。
最初の誤りを結果として生じた同じ縦の、従来の加算を
再び行なうことなく、誤った結果(100)はここで真
の答(117)と置換され得る。
もう1つの例として、お互いに加算されるべき2つの3
デイジツト数を考える。
418   X−(x、、X2.x、)+856   
Y= (Y+、Yz、  y3)1274   X十Y ALUが誤った結果に達したと仮定すると、XIY−1
018(??) 両方のオペランドのディジットの水平の合計は、XI 
+X2 +X3 +Y+ +Y2 +’1s−4+1+
8+8+5+6−32  (等式11)各オペランドに
おける1つの対応するディジットの選択的な減算は、 (x+ +X2 Xa )+ (y+ ”Y2  ys
 )−(−3)+ (7)−4(等式12a)(xl 
−X2 +x3 )+ (y+−y2+y3)−(11
)+ (9)−20(等式12b)(XI +x2 +
x、 ) + (−)’+ +)’2 +’/s )−
(5) +(3)−8(等式12C)を生じる。
等式はお互いに減算され、キャリーテーブルに関する列
の値に達する。
等式11−等式12a−2xs +2ya −28Xs
 十Ys■14 (等式13a) 等式11−等式12 b = 2 X 2 + 2 y
 2−12x2+y2−6 (等式13b) 等式11−等式12 c = 2 x H+ 2 Y 
+ −24X++Y+−12 (等式13C) 2つのオペランドの中の各対応するディジットの和の表
の形式は以下のとおりである。
CI  x、+y    c、   X2  y 2 
   CI   Xl+Y1キャリーの位(c2および
C,)を左にシフトすることは以下の結果を生じる。
CI  X、+V  C1X2 +V2  CI  X
I+V)キャリーの列(c2およびC,)において0の
値を除去することは1274の結果となり、それは正し
い結果である。
ここで再びこの発明の方法および装置を参照すると、第
2図が誤り検出および訂正ユニット16(第1図)のブ
ロック図を示す。
データライン10はDBO信号を2進−2進化10進法
(BCD)デコーダ50に印加し、それは16ビット信
号を受取り、その中の2進コードをBCD値に変換する
。BCDデコーダ50はルックアップテーブルとして動
作し、この目的に適うどんなプログラム可能な素子から
も、その技術でよく知られるように製造され得る。
第2のオペランドを表わすバイナリ値を運ぶライン12
のデータ信号DBIは、またライン18からの信号を受
取るデータセレクタ素子52への入力であり、その信号
はALU14の出力を表わす(第1図)。データセレク
タ52は、一方の入力信号12または他方の入力信号1
8を選択し、それをもう1つの2進−2進化10進法デ
コーダ54に16ビットデータライン56で印加するマ
ルチプレクサである。
BCDデコーダ50および54の出力信号はそれぞれ2
0ビットデータライン60および62でBCD加算器5
8に印加される。BCD加算器58は下記にずっと詳細
に記述される。出力ライン60および62は20ビ・シ
トラインであり、それに対して人力ライン10.12お
よび18は16ビットラインであるが、その理由はバイ
ナリ情報の16ビットはBCDフォーマットで表わされ
るとき20ビットを必要とするからである。BCD加算
器58はキャリーイン値59を入力する準備があるが、
しかしこれはこの発明のためにプリセットされ常にレベ
ル0に固定される。
BCD加算器58の出力信号はデータライン66で20
ビットラツチ64に印加される。ラッチ64の出力信号
はデータライン70でBCD−バイナリデコーダ68に
印加される。
BCDデコーダ50の出力信号は、述べられたように、
BCD加算器58だけでなく、またライン74でデータ
セレクタ72に印加される。データセレクタ72の出力
信号は、下文にずっと詳細に記述される、BCD圧縮ユ
ニット76に20ビットデータライン78で印加される
。また20ビットデータライン80でBCD圧縮ユニッ
ト76に印加されるのはBCDデコーダ54の出力信号
である。BCD圧縮ユニット76はキャリーイン値77
を入力するための準備があるが、しかしこれはこの発明
のためプリセットされ常にレベル0に固定される。
BCD圧縮ユニット76は4ビットデータライン84で
ラッチ82に印加される信号を発生する。
ラッチ82の出力信号は、BCD圧縮ユニット76から
の直接の出力信号と同じべ、それぞれ4ビットデータラ
イン22および24で比較器20に印加される。上記に
記述されたように、比較器20の出力信号はデータセレ
クタ26に印加される。
バイナリデコーダ68の出力信号はまた16ビットデー
タライン86でデータセレクタ26に印加される。
ここでまた第3図を参照すると、第2図で図示される、
BCD加算器58のブロック図が示される。BCD加算
器58への入力ラインは参照番号60および62として
図示される。これらのライン60および62の各々は2
0とットデータラインである。BCD加算器58はした
がって20ビットBCD加算器であり、それの出力信号
はデータライン66で発生される。
20ビットBCD加算器58は5つの4ビットBCD加
算器ユニツト100,102.104.106.108
を含む。4ビットユニツト100ないし108はその技
術で知られ第3図に図示される適当な手段によりお互い
に接続される。それらは入力ライン60および62に、
および出力データライン66に接続される。
ここでまた第4図を参照すると、BCD圧縮ユニット7
6(第2図)のブロック図が図示される。
2進化10進法圧縮ユニツト76は、上に記述されたよ
うな数学的原理に従って、オペランドの各々におけるデ
ィジットの水平の加算を行なう。
20ビットデータライン78および80は圧縮ユニット
76への入力であり、参照番号112および114とし
て概して図示される、信号ラインの2つのネットワーク
で20ビットBCD加算器120および122に印加さ
れる。BCD圧縮ユニット76は、第2図に図示される
BCD加算器58と同じである2つのBCD加算器12
0および122を含む。動作の相違は単に、BCD加算
器120および122、およびそれらの関連するネット
ワーク112および114の構成に基づく。
さらに、BCD加算器120および122の各々からの
出力信号はデータラインネットワーク112および11
4に送り返される。この動作はそれぞれBCD加算器1
20および122の出力信号C’ 0−C’  19お
よびCo−C19の結果となり、それは圧縮された4ビ
ット出力を表わす。
圧縮された信号は1対の4ビットデータライン126お
よび128でデータセレクタ124に印加される。デー
タセレクタ124の出力信号は結局は比較器20(第2
図)に4ビットデータライン84で印加される。
ユニでまた第5図を参照すると、クロック信号CKが、
ALU14 (第1図)が算術演算を始めるとき発生す
る参照番号101で図示される前縁を有する、タイミン
グ図が示される。ALU14は信号ライン10および1
2によってオペランドに関して動作を開始する。・図の
巾で文字Aとして示されるCK信号サイクルの前半の間
、ALUI4はオペランドの加算を計算し、または何か
他の演算処理を行なう。このとき、EDCユニット16
の範囲内のBCD加算器58はまた算術演算を始める。
また、BCD圧縮ユニット76は圧縮動作を行ない、オ
ペランドの両方の水SIZの和を表わす4ビットの圧縮
された値に達する。
ポイント102で、ALU14はその動作の結果を準備
する出力信号を発生する。出力信号はデータライン18
および32で発生される。時間周期Bの間、ALU14
はデータライン18および32で結果として生じる信号
出力を発生し続ける。
サイクルのポイント103で、オペランドに関する次の
ALU動作が開始される。
第5図のタイミング図に示されるのは、クロックCKサ
イクルの逆位相の補数であるCK倍信号ある。このよう
に、ALU14はCKサイクルを基準として動作し、そ
れに対してEDCサブシステムはCKクロックサイクル
を基準として動作する。CK倍信号正の半分の終わりで
、ALU14中で起こる算術演算の結果はデータライン
32および18で利用できる(第1図)。
ポイント104で、CK信号サイクルが開始される。ポ
イント104はポインl−101と同時に発生する。デ
ータライン10のオペランドの値を表わす信号はBCD
デコーダ50への入力である。
同時に、データライン12の信号により表わされるオペ
ランドはデータセレクタ52、ボート0によって信号ラ
イン56上へ可能化される。
時間周期Cの間、信号ライン10のオペランドのBCD
等価物は信号ライン60および74を駆動し、BCD加
算器58、ボートA、およびデータセレクタ72、ボー
ト0への入力を与える。データセレクタ72の出力信号
は信号ライン78を駆動し、かつBCD圧縮ユニット7
6、ボートBへの入力である。データライン56で伝送
されるオペランド値のBCD等価物はデータライン62
および80を駆動し、BCD加算器58、ボートB1お
よびBCD圧縮ユニット76、ボートAへの人力を与え
る。
BCD加算器58はデータライン60および62のオペ
ランドのBCD加算を計算する。BCD加算器58の出
力信号はデータライン66で伝送され、それはそのとき
ラッチ64への人力であり、ラッチ64は透過的モード
である。BCD圧縮ユニット76はデータライン80お
よび78の2つのオペランドの水平のBCD加算または
他の演算処理を行なう。BCD圧縮ユニット76は4ビ
ットデータライン84で前述の演算処理を示す信号を発
生し、それは透過的モードでラッチ82に印加される。
CKクロックサイクルにおけるポイント105で、デー
タライン66のオペランドを表わす値は、データライン
70への出ツバおよびバイナリデコーダ68への入力と
してラッチ64によりラッチされる。データライン84
のオペランドを表わす値はラッチ82によりラッチされ
、データライン22および比較器20への人力へ与えら
れる。ALU14はデータライン18で出力信号を発生
し、それはデータセレクタ52、ボート1によってデー
タライン56上へ可能化される。0オペランドはデータ
セレクタ72、ボート1によってデータライン78上へ
可能化される。
時間周期りの間、データライン56のオペランドを表わ
す値のBCD等価物はデータライン80を駆動し、BC
D圧縮ユニット76、ボートAへの入力を与える。0オ
ペランドはBCD圧縮ユニット76、ボートBへの入力
である。
BCD圧縮ユニット76は水平のBCD加算を行ない、
またはデータライン80および78のオペランドの他の
算術演算はデータライン24の単一ディジットを表わす
4ビット結果を発生し、それは比較器20への第2の人
力である。バイナリデコーダ58はデータライン70の
オペランドを表わすBCD値をそのバイナリ等価物に変
換し、データセレクタ26への第2の入力である、デー
タライン86に結果を発生する。
またこの時間間隔りの間、比較器20はデータライン3
0および34上へ1ビット状態信号を発生する。この状
態信号はデータライン22および24のオペランドの比
較の結果を表わす。状態信号30はデータセレクタ26
への入力であり、それはデータライン32および86の
オペランドの1つをその出力データライン36へ通過さ
せる。
ポイント106で、EDC16のための次の動作が開始
される。データライン36および誤りフラッグ34のオ
ペランドは、図示されないマイクロプロセッサシステム
の中へラッチされる。
BCD圧縮ユニット76は1つのクロックサイクル以内
で2反動作し、1度目は水平の加算および圧縮を行うた
めであり、2度目はALU14の出力のための圧縮を行
うためであるということが理解され得る。データライン
22および24に印加される結果として生じる信号はし
たがって、それぞれ水平の出力信号の圧縮された値およ
びALU出力信号の圧縮された値を表わす。比較器20
はCK信号の正の半分のサイクルの後半の間にこれら2
つの圧縮された信号の比較を行なう。
特定の動作要求および環境に適合するのに変えられる他
の修正および変更が当業者に明らかであろうから、この
発明は開示の目的で選ばれた例に制限されると考えられ
るのではなく、この発明の真の精神および範囲から逸脱
しないすべての変更および修正を含む。
【図面の簡単な説明】
第1図はこの発明の好ましい実施例に従う自己検査ユニ
ットのブロック図である。 第2図は第1図に図示される誤り検出および訂正ユニッ
トのブロック図である。 第3図は第2図に図示されるBCD加算器のブロック図
である。 第4図は第2図に図示されるBCD圧縮ユニットのブロ
ック図である。 第5図はシステム動作を示すタイミング図である。 図において10および12はデータラインであり、14
は演算論理装置であり、16は誤り検出および訂正ユニ
ットであり、20は比較器であり、26はデータセレク
タである。

Claims (24)

    【特許請求の範囲】
  1. (1)少なくとも2つのオペランドの算術演算において
    誤りを検出するための方法であって、各オペランドは少
    なくとも1つのディジットを有し、 (a)結果を得るのに2つのオペランドに関して動作す
    るステップと、 (b)前記結果のディジットをお互いに加算するステッ
    プと、 (c)第1の単一ディジットが達せられるまでステップ
    (b)を繰返すステップと、 (d)中間の和を得るのに前記オペランドの各々のディ
    ジットを加算するステップと、 (e)前記中間の和のディジットに関して動作するステ
    ップと、 (f)第2の単一ディジットが達せられるまでステップ
    (e)を繰返すステップと、 (g)前記第1の単一ディジット数を前記第2の単一デ
    ィジット数と比較し、かつもし前記比較が不成功であれ
    ば誤りを示す信号を発生するステップとを含む方法。
  2. (2)前記算術演算が加算である請求項1に記載の方法
  3. (3)前記算術演算が減算である請求項1に記載の方法
  4. (4)前記算術演算が乗算であり、前記中間の和の前記
    ディジットに関する前記動作が乗算である、請求項1に
    記載の方法。
  5. (5)少なくとも2つのオペランドの算術演算において
    前記算術演算を繰返すことなしに検出された誤りを訂正
    するための方法であって、そのオペランドの各々は少な
    くとも2つのディジットを有し、前記2つのディジット
    のどちらか一方は0であり得、 (a)中間の和を得るのに前記オペランドの各々のディ
    ジットを加算するステップと、 (b)順次的に前記オペランドの各々の残余のディジッ
    トの部分的な和からディジットを減算し、かつ1組の引
    き数を得るのに各順次的サイクルの最後に各オペランド
    についての前記減算の結果をお互いに加算するステップ
    と、 (c)1組の部分的差を得るのに前記中間の和から前記
    引き数の各々を減算するステップとを含み、前記部分的
    差の各々は最下位ディジットおよびキャリーディジット
    を含み、さらに (d)前記部分的差をオペランドの数で割るステップと
    、 (e)遷移値を得るのに前記部分的差を連結するステッ
    プと、 (f)遷移値の最下位キャリーディジットで始まり、終
    わりから2番目の値を得るのにキャリーディジットを対
    応する次の隣り合うディジットに加算するステップと、 (g)算術演算の正しい値を得るのに前記終わりから2
    番目の値の最初のおよび最後のディジットを除いて除去
    し、かつそれの間のすべてのキャリーディジットを除去
    するステップとを含む方法。
  6. (6)前記算術演算が加算である請求項5に記載の方法
  7. (7)前記算術演算が減算である請求項5に記載のシス
    テム。
  8. (8)少なくとも2つのオペランドの算術演算において
    前記算術演算を繰返すことなく誤りを検出し訂正するた
    めの方法であって、そのオペランドの各々は少なくとも
    2つのディジットを有し、前記2つのディジットのどち
    らか一方は0であり得、 (a)結果を得るのに2つのオペランドに関して動作す
    るステップと、 (b)前記結果のディジットをお互いに加算するステッ
    プと、 (c)第1の単一ディジットが達せられるまでステップ
    (b)を繰返すステップと、 (d)中間の和を得るのに前記オペランドの各々のディ
    ジットを加算するステップと、 (e)前記中間の和のディジットに関して動作するステ
    ップと、 (f)第2の単一ディジットが達せられるまでステップ
    (e)を繰返すステップと、 (g)算術演算誤りが発生したかどうかを決定するのに
    前記第1の単一ディジット数を前記第2の単一ディジッ
    ト数と比較するステップと、(h)1組の引き数を得る
    のに順次的に前記オペランドの各々の残余のディジット
    の部分的な和からディジットを減算し、かつ各順次的サ
    イクルの最後で各オペランドについての前記減算の結果
    をお互いに加算するステップと、 (i)1組の部分的な差を得るのに前記中間の和から前
    記引き数の各々を減算するステップとを含み、前記部分
    的な差の各々は最下位ディジットおよびキャリーディジ
    ットを含み、さらに(j)前記部分的な差をオペランド
    の数により除算するステップと、 (k)遷移値を得るのに前記部分的な差を連結するステ
    ップと、 (l)遷移値の最下位キャリーディジットで始め、終わ
    りから2番目の値を得るのにキャリーディジットを対応
    する次の隣り合うディジットに加算するステップと、 (m)算術演算の正しい値を得るのに前記終わりから2
    番目の値の最初のおよび最後のディジットを除いて除去
    し、かつそれの間のすべてのキャリーディジットを除去
    するステップとを含み、それで誤りの検出および訂正が
    1つのクロックサイクルで起こる方法。
  9. (9)前記算術演算が加算である請求項8に記載の方法
  10. (10)前記算術演算が減算である請求項8に記載の方
    法。
  11. (11)少なくとも2つのオペランドの算術演算におい
    て誤りを検出し訂正する方法であって、(a)第1のク
    ロックサイクルの間に算術演算誤りを検出するステップ
    と、 (b)前記算術演算を繰返すことなしに前記第1のクロ
    ックサイクルの間に前記算術演算誤りを訂正するステッ
    プとを含む方法。
  12. (12)前記算術演算が加算である請求項11に記載の
    方法。
  13. (13)前記算術演算が減算である請求項11に記載の
    方法。
  14. (14)2つのオペランドの算術演算において誤りを検
    出するためのシステムであって、(a)算術演算を行な
    うための、かつそれの結果を表わす第1の信号を発生す
    るための計算手段を含み、前記計算手段は前記オペラン
    ドの各々に対応するそれに与えられた入力を有し、さら
    に(b)また前記オペランドの各々に対応する前記入力
    を受取るのに適合され、かつ前記計算手段から前記第1
    の信号を受取るのに適合された誤り検出手段とを含むシ
    ステム。
  15. (15)前記誤り検出手段がまたそれぞれ (i)圧縮された算術演算結果、(ii)圧縮された計
    算手段の第1の信号、および(iii)誤りの訂正され
    た値を表わす第2の、第3のおよび第4の信号を発生す
    るのに適合され、かつさらに (c)前記誤り検出手段に動作的に接続され、それから
    前記第2のおよび前記第3の信号を受取るための、かつ
    もし前記第2のおよび前記第3の信号が等しくなければ
    誤り信号を発生するための比較する手段を含む、請求項
    14に記載のシステム。
  16. (16)(d)前記第1のおよび前記第4 の信号、および前記誤り信号を受取るのに適合され、か
    つ前記第1のまたは前記第4の信号のどちらが前記オペ
    ランドの前記算術演算の有効な結果であるかを決定する
    ために信号を発生するのに適合されたデータ選択手段を
    さらに含む、請求項15に記載のシステム。
  17. (17)前記誤り検出手段が前記第1の信号を圧縮する
    ためのルックアップテーブルを含む、請求項14に記載
    のシステム。
  18. (18)算術演算を行ない、かつ確かめることができる
    コンピュータプロセッサであって、(a)オペランド値
    を示す信号を受取るための、算術演算を行なうための、
    かつそれの結果を表わす信号を発生するための演算論理
    装置(ALU)と、 (b)前記ALUに動作的に接続され、それから前記A
    LU結果信号を受取るための論理サブシステムとを含み
    、前記論理サブシステムはまたオペランド値を示す信号
    を受取るのに適合されそれに関して算術演算を行ない、
    かつ値を前記論理サブシステム算術演算を表わす第1の
    信号に、および前記ALU結果信号を表わす第2の信号
    に変換するための圧縮手段を含み、さらに (c)前記第1のおよび前記第2の圧縮された信号を比
    較するための、かつ前記第1のおよび前記第2の圧縮さ
    れた信号が等しくないとき誤り信号を発生するための比
    較器を含むプロセッサ。
  19. (19)前記圧縮手段がルックアップテーブルである請
    求項18に記載のプロセッサ。
  20. (20)前記圧縮手段が2進化10進法(BCD)素子
    である請求項18に記載のプロセッサ。
  21. (21)前記第1のおよび前記第2の信号が4ビットで
    ある、請求項19に記載のプロセッサ。
  22. (22)前記第1のおよび前記第2の信号が4ビットで
    ある請求項20に記載のプロセッサ。
  23. (23)前記論理サブシステムがまた前記論理サブシス
    テム算術演算の正しい結果を表わす第3の信号を発生す
    る、請求項18に記載のプロセッサ。
  24. (24)前記第3の信号が前記ALU結果信号と同じク
    ロックサイクルで発生される、請求項23に記載のプロ
    セッサ。
JP1281625A 1988-10-26 1989-10-26 少なくとも2つのオペランドの算術演算において誤りを検出するための方法 Pending JPH02178738A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/262,658 US4994993A (en) 1988-10-26 1988-10-26 System for detecting and correcting errors generated by arithmetic logic units
US262,658 1988-10-26

Publications (1)

Publication Number Publication Date
JPH02178738A true JPH02178738A (ja) 1990-07-11

Family

ID=22998460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1281625A Pending JPH02178738A (ja) 1988-10-26 1989-10-26 少なくとも2つのオペランドの算術演算において誤りを検出するための方法

Country Status (5)

Country Link
US (1) US4994993A (ja)
EP (1) EP0366331B1 (ja)
JP (1) JPH02178738A (ja)
AT (1) ATE136134T1 (ja)
DE (1) DE68926093T2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535228A (en) * 1993-02-19 1996-07-09 Motorola, Inc. Device and method for achieving rotational invariance in a multi-level trellis coding system
US5351046A (en) * 1993-05-28 1994-09-27 Adcox Thomas A Method and system for compacting binary coded decimal data
DE4406391C1 (de) * 1994-02-26 1995-03-16 Bosch Gmbh Robert Elektronisches Rechenwerk
DE602004001679T2 (de) 2003-03-20 2007-08-02 Arm Ltd., Cherry Hinton Speichersystem mit sequenziell ausgeführten schnellen und langsamen lesezugriffen
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
EP1604281B1 (en) 2003-03-20 2006-08-09 ARM Limited Systematic and random error detection and recovery within processing stages of an integrated circuit
US7278080B2 (en) 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US8185812B2 (en) 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
US7203885B2 (en) * 2003-09-30 2007-04-10 Rockwell Automation Technologies, Inc. Safety protocol for industrial controller
US8347165B2 (en) * 2007-12-17 2013-01-01 Micron Technology, Inc. Self-timed error correcting code evaluation system and method
US8171386B2 (en) 2008-03-27 2012-05-01 Arm Limited Single event upset error detection within sequential storage circuitry of an integrated circuit
US8055697B2 (en) * 2008-03-28 2011-11-08 Intel Corporation Method and device for dynamically verifying a processor architecture
US8161367B2 (en) 2008-10-07 2012-04-17 Arm Limited Correction of single event upset error within sequential storage circuitry of an integrated circuit
US8493120B2 (en) 2011-03-10 2013-07-23 Arm Limited Storage circuitry and method with increased resilience to single event upsets
US8806316B2 (en) 2012-01-11 2014-08-12 Micron Technology, Inc. Circuits, integrated circuits, and methods for interleaved parity computation
JP5850016B2 (ja) * 2013-10-02 2016-02-03 横河電機株式会社 フィールド機器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL91958C (ja) * 1949-06-22
US2861744A (en) * 1955-06-01 1958-11-25 Rca Corp Verification system
US3098994A (en) * 1956-10-26 1963-07-23 Itt Self checking digital computer system
NL230983A (ja) * 1957-09-03
NL250876A (ja) * 1959-05-11
US3660646A (en) * 1970-09-22 1972-05-02 Ibm Checking by pseudoduplication
US3816728A (en) * 1972-12-14 1974-06-11 Ibm Modulo 9 residue generating and checking circuit
US3814923A (en) * 1973-01-02 1974-06-04 Bell Telephone Labor Inc Error detection system
US4181969A (en) * 1978-01-18 1980-01-01 Westinghouse Electric Corp. System for detecting and isolating static bit faults in a network of arithmetic units
GB2033115B (en) * 1978-09-25 1982-11-10 Burtsev V Apparatus for detecting and correcting errors in arithmetic processing of data represented in the numerical system of residual classes
JPS60140422A (ja) * 1983-12-28 1985-07-25 Nec Corp 演算処理装置

Also Published As

Publication number Publication date
US4994993A (en) 1991-02-19
EP0366331A2 (en) 1990-05-02
EP0366331B1 (en) 1996-03-27
DE68926093T2 (de) 1996-10-31
ATE136134T1 (de) 1996-04-15
DE68926093D1 (de) 1996-05-02
EP0366331A3 (en) 1992-05-13

Similar Documents

Publication Publication Date Title
EP0280013B1 (en) Device for verifying proper operation of a checking code generator
US4486882A (en) System for transmitting binary data via a plurality of channels by means of a convolutional code
JPH02178738A (ja) 少なくとも2つのオペランドの算術演算において誤りを検出するための方法
US5440570A (en) Real-time binary BCH decoder
US4504948A (en) Syndrome processing unit for multibyte error correcting systems
JP3232602B2 (ja) ユークリッドの互除回路
US5430739A (en) Real-time Reed-Solomon decoder
JPH0728227B2 (ja) Bch符号の復号装置
US20080104492A1 (en) Data Processing
CN1113474C (zh) Crc/edc校验器系统和方法
US3622984A (en) Error correcting system and method
US9191029B2 (en) Additional error correction apparatus and method
EP1427109A2 (en) Apparatus and method of calculating a cyclic redundancy check value for a multi bit input data word
CN107077402B (zh) 码字生成方法、错误位确定方法及其电路
JP3248098B2 (ja) シンドローム計算装置
JPH0345020A (ja) 巡回符号処理回路
JPH10322226A (ja) リードソロモン復号方法
JP2004173199A (ja) 巡回符号を用いた誤り訂正回路
JPH0964754A (ja) 誤り検出符号生成回路
US7287207B2 (en) Method and apparatus for computing parity characters for a codeword of a cyclic code
JP2710176B2 (ja) 誤り位置及び誤りパターン導出回路
JP2858538B2 (ja) 再シンドロームチェック方式
JPH08111647A (ja) 単一誤り訂正および多重誤り検出bch符号の復号装置
JPH0430618B2 (ja)
JP2622383B2 (ja) ロングディスタンスコードの誤り訂正装置