(57)【要約】【課題】より低いコストでエラー検出が可能であるエラー検出算術論理演算装置システムを提供する。【解決手段】本発明は、第１の単純ＡＬＵ４０と、オペランドの剰余値を生成する剰余生成器２０と、オペランドＡ、Ｂの剰余値について必要な演算を実行する第１の剰余ＡＬＵ５０と、第１の単純ＡＬＵ４０の出力と第１の剰余ＡＬＵ５０の出力に関してエラーを検出し、第１エラー信号（Error1）および第１結果出力（Result1）を出力する第１のチェッカーと、を備える少なくとも第１のエラー検出算術論理演算装置を含む整数算術論理演算装置システムを提供する。【選択図】図３
2020027617.tif 000002
【特許請求の範囲】
【請求項１】
第１のエラー検出算術論理演算装置を含む整数算術論理演算装置システム（１００、２００）であって、
入力としてオペランド（Ａ、Ｂ）とオペレーションコードを受け取り、オペランドについて必要な演算を実行し、そして、第１の単純ＡＬＵ出力（Ｘ１）を生成するように構成される第１の単純算術論理演算装置（４０）と、
入力としてオペランド（Ａ、Ｂ）を受け取り、そのオペランド（Ａ、Ｂ）の第１の剰余値（Ａ％１２７、Ｂ％１２７）を生成するように構成される剰余生成器（２０）と、
入力として剰余生成器（２０）によって生成されるオペランド（Ａ、Ｂ）の第１の剰余値（Ａ％１２７、Ｂ％１２７）とオペレーションコードを受け取り、オペランド（Ａ、Ｂ）の第１の剰余値（Ａ％１２７、Ｂ％１２７）について必要な演算を実行し、そして、第１の剰余ＡＬＵ出力（Ｙ１）を生成するように構成される第１の剰余算術論理演算装置（５０）と、
入力として第１の単純ＡＬＵ出力（Ｘ１）と第１の剰余ＡＬＵ出力（Ｙ１）を受け取り、第１の単純ＡＬＵ出力（Ｘ１）と第１の剰余ＡＬＵ出力（Ｙ１）に関してエラーを検出し、そして、第１のエラー信号（Error1）と第１の結果出力（Result1）を出力するように構成される第１のチェッカー（６０）と、を備える整数算術論理演算装置システム（１００、２００）。
【請求項２】
剰余生成器（２０）は、モジュロ１２７で作動する、請求項１に記載の整数算術論理演算装置システム（１００、２００）。
【請求項３】
第１のチェッカー（６０）は、モジュロ１２７を計算し、モジュロ１２７がゼロでない場合にエラーを検出するように構成される、請求項２に記載の整数算術論理演算装置システム（１００、２００）。
【請求項４】
入力としてオペランド（Ａ、Ｂ）とオペレーションコードを受け取り、オペランドについて必要な演算を実行し、そして、第２の単純ＡＬＵ出力（Ｘ２）を生成するように構成される第２の単純算術論理演算装置（２４０）と、
入力として剰余生成器（２０）によって生成されるオペランド（Ａ、Ｂ）の剰余値（Ａ％１２７、Ｂ％１２７）とオペレーションコードを受け取り、オペランド（Ａ、Ｂ）の剰余値について必要な演算を実行し、そして、第２の剰余ＡＬＵ出力（Ｙ２）を生成するように構成される第２の剰余算術論理演算装置（２５０）と、
入力として第２の単純ＡＬＵ出力（Ｘ２）と第２の剰余ＡＬＵ出力（Ｙ２）を受け取り、第２の単純ＡＬＵ出力（Ｘ２）と第２の剰余ＡＬＵ出力（Ｙ２）に関してエラーを検出し、そして、第２のエラー信号（Error2）と第２の結果出力（Result2）を出力するように構成される第２のチェッカー（２６０）と、を備える第２エラー検出算術論理演算装置（２３０）をさらに有し、
さらに、第１のエラー検出算術論理演算装置（３０）の第１のエラー信号（Error1）および第１の結果出力（Result1）と、第２のエラー検出算術論理演算装置（２３０）の第２のエラー信号（Error2）および第２の結果出力（Result2）を受け取り、第１のエラー信号（Error1）および第２のエラー信号（Error2）に応じて、第１の結果出力（Result1）および第２の結果出力（Result2）に基づいて、整数算術論理演算装置システム２００の結果出力（Result）を生成するように構成されるメインチェッカー（３００）を含む、請求項１乃至３のいずれかに記載の整数算術論理演算装置システム（２００）。
【請求項５】
入力としてオペランド（Ａ、Ｂ）とオペレーションコードを受け取り、オペランドについて必要な演算を実行し、そして、第２の単純ＡＬＵ出力（Ｘ２）を生成するように構成される第２の単純算術論理演算装置（２４０）と、
入力としてオペランド（Ａ、Ｂ）を受け取り、そのオペランド（Ａ、Ｂ）の第２の剰余値を生成するように構成される第２の剰余生成器と、
入力として第２の剰余生成器によって生成されるオペランド（Ａ、Ｂ）の第２の剰余値と、オペレーションコードを受け取り、オペランド（Ａ、Ｂ）の第２の剰余値について必要な演算を実行し、そして、第２の剰余ＡＬＵ出力（Ｙ２）を生成するように構成される第２の剰余算術論理演算装置（２５０）と、
入力として第２の単純ＡＬＵ出力（Ｘ２）と第２の剰余ＡＬＵ出力（Ｙ２）を受け取り、第２の単純ＡＬＵ出力（Ｘ２）と第２の剰余ＡＬＵ出力（Ｙ２）に関してエラーを検出し、そして、第２のエラー信号（Error2）と第２の結果出力（Result2）を出力するように構成される第２のチェッカー（２６０）と、を備える第２エラー検出算術論理演算装置をさらに有し、
さらに、第１のエラー検出算術論理演算装置（３０）の第１のエラー信号（Error1）および第１の結果出力（Result1）と、第２のエラー検出算術論理演算装置（２３０）の第２のエラー信号（Error2）と第２の結果出力（Result2）を受け取り、第１のエラー信号（Error1）及び第２のエラー信号（Error2）に応じて、第１の結果出力（Result1）及び第２の結果出力（Result2）に基づいて、整数算術論理演算装置システム（２００）の結果出力（Result）を生成するように構成されるメインチェッカー（３００）を含む、請求項１乃至３のいずれかに記載の整数算術論理演算装置システム（２００）。
【請求項６】
メインチェッカー（３００）は、
ａ）第２のエラー信号（Error2）がエラーを示し、第１のエラー信号（Error1）がエラーを示さない場合に、第１のエラー検出算術論理演算装置（３０）の第１の結果出力（Result1）に基づき、および
ｂ）第１のエラー信号（Error1）がエラーを示し、第２のエラー信号（Error2）がエラーを示さない場合に、第２のエラー検出算術論理演算装置（２３０）の第２の結果出力（Result2）に基づき、
整数算術論理演算装置システム（２００）の結果出力を生成するように構成される、請求項４または５に記載の整数算術論理演算装置システム。
【請求項７】
ハミングコードまたはセラーズ演算のいずれかが、少なくとも１つのエラー検出算術論理演算装置（３０、２３０）の論理演算において、エラー検出のために使用される、請求項１乃至６のいずれかに記載の整数算術論理演算装置システム。
【請求項８】
ハミングコードが、第１のエラー検出算術論理演算装置（３０）のＡＮＤ、ＯＲ、およびＸＯＲについてのエラー検出およびエラー訂正のために使用される、請求項１乃至３のいずれかに記載の整数算術論理演算装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー検出算術論理演算装置システムに関する。
【背景技術】
【０００２】
半導体回路の使用が、複数の技術分野においてより普及してきている。半導体回路は比較的高い信頼性を有するという事実にもかかわらず、これらの回路の動作は１００％エラーフリーではない。
【０００３】
自動運転システムの要求によっても、半導体回路の複雑さが増す。これらのシステムでは、自動車の検出、意志決定および操作は、大部分が電子機器によって行われることになる。ＩＳＯ２６２６２は、自動車における電気電子システムの機能安全についての国際規格である。このＩＳＯ規格は、すべての自動車用電子および電気安全関連システムのライフサイクルに渡って適用可能な自動車機器のための機能安全を定義する。自動運転システムの目的は、運転者への依存度を低減することにあるので、安全性重視のシステムでは、フェールセーフだけでは十分ではなく、運転者が運転システムを制御することに対応できない場合に備えて、フェールオペレーションも保証されるべきである。さらに、フェールオペレーションシステムが、フェールオペレーションとセーフティの追加の要件を満たすだけでなく、マイクロコントローラサブシステムもフェールの場合に動作可能である必要がある。
【０００４】
以下において、エラー検出と、エラー検出および訂正との違いをわかりやすく説明するために、二重モジュール冗長性および三重モジュール冗長性の概念が、図１および図２に関して参照される。
【０００５】
図１に、二重モジュール冗長性（ＤＭＲ）の概念が示されている。図１から分かるように、同一のＡＬＵ（Arithmetic Logic Unit）である機能ユニット１と機能ユニット２が並列に設けられている。機能ユニット１および２のそれぞれにオペランドＡ、Ｂが入力されると、機能ユニット１は出力Ｍを生成し、機能ユニット２は出力Ｎを生成する。これらの出力ＭおよびＮは、比較器に入力され、その出力において、結果出力およびエラー出力が生成される。比較器では、機能ユニット１および２からの結果が比較され、出力ＭおよびＮが異なるかを検出することが可能である、異なる場合、エラー信号が比較器から出力される。出力ＭとＮとの間に差がない場合、比較器は、その結果を出力し、エラーが発生していないことを示す。
【０００６】
ＤＭＲシステムの欠点は、出力ＭおよびＮのどちらが正しいかを検出することが不可能なことである。したがって、ＤＭＲシステムでは、追加のハードウェアなしではエラーを訂正することはできない。
【０００７】
ＤＭＲの欠点を克服するために、第３の機能ユニットである機能ユニット３が、図２から把握され得るように、三重モジュール冗長（ＴＭＲ）システムにおいて使用される。オペランドＡおよびＢが機能ユニット３にも入力され、同時に、機能ユニット３の出力Ｒが生成される。ＤＭＲシステムの比較器とは対照的に、図２のＴＭＲシステムでは、入力として機能ユニット１の出力Ｏ、機能ユニット２の出力Ｐ、および機能ユニット３の出力Ｒを受け取る多数決投票が使用される。機能ユニット１、２、および３の一つで障害が発生した場合、他の２つのシステムがその障害を訂正してマスクすることができる。機能ユニット２においてのみ障害が発生したと仮定した場合、多数決投票は、訂正された結果として、機能ユニット１の出力Ｏと機能ユニット３の出力Ｒと同一の結果を与える。ＴＭＲアプローチは、依然としてエラー検出および訂正のための最も簡単なアプローチである。
【０００８】
ＤＭＲおよびＴＭＲ解決法はハードウェア冗長技術を使用するので、面積および電力消費に関するオーバーヘッドが存在する。ＤＭＲおよびＴＭＲシステムのさらなる欠点は、それらがコアレベルで実現され、そのため、結果がコアのインターフェースにおいて比較用に利用可能である場合にのみ、エラー検出が行われ得ることである。チェックがなされ得る前に、誤った計算結果がコアの内部状態を損なった場合、ＤＭＲおよびＴＭＲシステムでは、誤動作から回復することは困難となる。
【０００９】
それでも、ＴＭＲシステムの利点は、コアの出力ではなく、ＡＬＵの出力でエラーを検出して訂正することができることである。
【００１０】
二重モジュール冗長性および三重モジュール冗長性の上記原理において、算術論理演算装置（ＡＬＵ）が好適に適用され、これらのＡＬＵは、整数の２進数に対して算術演算およびビット単位演算を実行する組み合わせデジタル電子回路である。それとは対照的に、特許文献１および特許文献２は、浮動小数点ユニットを包含し、オンザフライエラーの訂正の可能性を論じていない。
【００１１】
エラー検出のさらなる好機は、剰余数のみを使用して汎用算術計算を実行することができる算術論理演算装置として、剰余数ＡＬＵを短縮したものである「剰余ＡＬＵ」の最近の開発である。剰余コードの１つの用途は、数が剰余コードで符号化および復号化される特許文献３におけるものである。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許第８５６６３８３号
【特許文献２】米国特許第７７６９７９５号
【特許文献３】米国特許出願公開２０１０／０１４６０２７号
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来技術には、マイクロプロセッサシステムにおいても、十分な方法でより厳しい要求に従ってフェールセーフ、より好ましくはフェールオペレーションを改善することは示されていない。
【００１４】
本発明の目的は、最新技術による手法と比較して、より低いコストでエラー検出が可能であるエラー検出算術論理演算装置システムを提供することである。好ましくは、これらのエラー検出算術論理演算装置システムは、エラーの訂正も行うことができるべきである。
【課題を解決するための手段】
【００１５】
この目的は、請求項１の発明によって解決される。さらなる態様が、従属請求項に定義される。
【００１６】
本発明の第１の態様によれば、入力としてオペランドとオペレーションコードを受け取り、オペランドについて必要な演算を実行し、そして、第１の単純ＡＬＵ出力を生成するように構成される第１の単純算術論理演算装置と、入力としてオペランドを受け取り、そのオペランドの第１の剰余値を生成するように構成される剰余生成器と、入力として剰余生成器によって生成されるオペランドの第１の剰余値とオペレーションコードを受け取り、オペランドの第１の剰余値について必要な演算を実行し、そして、第１の剰余ＡＬＵ出力を生成するように構成される第１の剰余算術論理演算装置と、入力として第１の単純ＡＬＵ出力と第１の剰余ＡＬＵ出力とを受け取り、第１の単純ＡＬＵ出力と第１の剰余ＡＬＵ出力とに関してエラーを検出し、そして、第１のエラー信号と第１の結果出力を出力するように構成される第１のチェッカーと、を備える第１のエラー検出算術論理演算装置を含む、整数算術論理演算装置（ＡＬＵ）システムが提供される。そのような整数ＡＬＵシステムは、より低コストでエラーを検出することができる。より具体的には、第１の剰余ＡＬＵは、第１の単純ＡＬＵよりも小さい面積しか有さないので、エラー検出のための面積はＤＭＲ手法を用いる場合よりも小さくなり得る。
【００１７】
第一の態様に依拠する第二の態様によれば、剰余生成器は、モジュロ１２７で作動する。モジュロ１２７は、所与の範囲に対するマルチビットエラーのためのエラーカバレッジを有する。特に自動運転システムで使用する場合、より小さい数を選択するとカバレッジを減少させ、その一方、より大きな数を選択してもエラーカバレッジを著しく改善しないが、ＡＬＵシステムの面積が増大する。
【００１８】
本発明の第３の態様によれば、第１のチェッカーは、モジュロ１２７を計算し、モジュロ１２７がゼロでない場合にエラーを検出するように構成される、第２の態様に従う整数算術論理演算装置システムが提供される。
【００１９】
本発明の第４の態様によれば、入力としてオペランドとオペレーションコードを受け取り、オペランドについて必要な演算を実行し、そして、第２の単純ＡＬＵ出力を生成するように構成される第２の単純算術論理演算装置と、入力として剰余生成器によって生成されるオペランドの剰余値と、オペレーションコードを受け取り、オペランドの剰余値について必要な演算を実行し、そして、第２の剰余ＡＬＵ出力を生成するように構成される第２の剰余算術論理演算装置と、入力として第２の単純ＡＬＵ出力と第２の剰余ＡＬＵ出力とを受け取り、第２の単純ＡＬＵ出力と第２の剰余ＡＬＵ出力とに関してエラーを検出し、そして、第２のエラー信号と第２の結果出力を出力するように構成される第２のチェッカーと、を備える第２エラー検出算術論理演算装置をさらに有し、さらに、第１のエラー検出算術論理演算装置の第１のエラー信号および第１の結果出力と、第２のエラー検出算術論理演算装置の第２のエラー信号および第２の結果出力を受け取り、第１のエラー信号および第２のエラー信号に応じて、第１の結果出力及び第２の結果出力に基づいて、整数算術論理演算装置システムの結果出力を生成するように構成されるメインチェッカーを含む、前述の態様の１つに従う整数算術論理演算装置システムが提供される。第４の形態による整数算術論理演算装置システムでは、エラー検出だけでなく、減少された面積のＡＬＵシステムにてエラー訂正も可能となる。
【００２０】
本発明の第５の態様によれば、入力としてオペランドとオペレーションコードを受け取り、オペランドについて必要な演算を実行し、そして、第２の単純ＡＬＵ出力を生成するように構成される第２の単純算術論理演算装置と、入力としてオペランドを受け取り、そのオペランドの第２の剰余値を生成するように構成される第２の剰余生成器と、入力として第２の剰余生成器によって生成されるオペランドの第２の剰余値と、オペレーションコードを受け取り、オペランドの第２の剰余値について必要な演算を実行し、そして、第２の剰余ＡＬＵ出力を生成するように構成される第２の剰余算術論理演算装置と、入力として第２の単純ＡＬＵ出力と第２の剰余ＡＬＵ出力とを受け取り、第２の単純ＡＬＵ出力と第２の剰余ＡＬＵ出力とに関してエラーを検出し、そして、第２のエラー信号と第２の結果出力を出力するように構成される第２のチェッカーと、を備える第２エラー検出算術論理演算装置をさらに有し、さらに、第１のエラー検出算術論理演算装置の第１のエラー信号と第１の結果出力と、第２のエラー検出算術論理演算装置の第２のエラー信号と第２の結果出力を受け取り、第１のエラー信号及び第２のエラー信号に応じて、第１の結果出力及び第２の結果出力に基づいて、整数算術論理演算装置システムの結果出力を生成するように構成されるメインチェッカーを含む、第１から第３の態様の１つに従う整数算術論理演算装置システムが提供される。この整数算術論理演算装置システムは、剰余生成に関してのエラー検出をさらに可能にする。
【００２１】
本発明の第６の態様によれば、メインチェッカーは、ａ）第２のエラー信号がエラーを示し、第１のエラー信号がエラーを示さない場合に、第１のエラー検出算術論理演算装置の第１の結果出力に基づき、およびｂ）第１のエラー信号がエラーを示し、第２のエラー信号がエラーを示さない場合に、第２のエラー検出算術論理演算装置の第２の結果出力に基づき、整数算術論理演算装置システムの結果出力を生成するように構成される、第４または第５の態様に従う整数算術論理演算装置システムが提供される。この整数算術論理演算装置システムは簡単なエラー訂正を可能にする。
【００２２】
本発明の第７の態様では、ハミングコードまたはセラーズ演算のいずれかが、少なくとも１つのエラー検出算術論理演算装置の論理演算において、エラー検出のために使用される、前述の態様のうちの１つに従う整数算術論理演算装置システムが提供される。ハミングコードを使用すると、ハードウェアでの簡単な実装と単一エラー訂正と二重エラー検出（ＳＥＣＤＥＤ）の提供が可能となる。セラーズ演算は、ハミングコードと比較して、ハードウェアにおける削減されたオーバーヘッドを使用しつつ、論理演算が重複してチェックされることを可能とする。
【００２３】
本発明の第８の態様では、ハミングコードが、第１のエラー検出算術論理演算装置の“ＡＮＤ”、“ＯＲ”、および“ＸＯＲ”についてのエラー検出およびエラー訂正のために使用される、第１から第３の態様に従う整数算術論理演算装置システムが提供される。ハミングコードを使用することで、ハードウェアでの簡単な実装と、１つだけの単純ＡＬＵと１つの剰余ＡＬＵとを有する小型のＡＬＵシステムで、ＳＥＣＤＥＤの提供が可能となる。
【００２４】
本発明による整数算術論理装置システムは、好ましくは、３２ビットの長さであるオペランドＡ、Ｂと、７ビットの最大長さを持つモジュロ１２７の値を備えるシステムは、適切なエラー検出と、オプションとしてのエラー訂正とを備える小面積のシステムを得られるため、より好適に自動運転システムへ適用可能である。
【００２５】
第１の態様の整数算術論理演算装置システムでは、整数の算術演算および論理演算のための面積効率のよい低待ち時間のエラー検出を提供することが可能であり、一方、第４および第５の態様の整数算術論理演算装置システムは、さらにオンザフライのエラー訂正を可能とする。
【図面の簡単な説明】
【００２６】
添付の図面および対応する詳細な説明を参照して、本発明の上記の目的が、他の目的、特徴および利点と共により詳細に説明される。
【図１】従来技術によるＤＭＲシステムである。
【図２】従来技術によるＴＭＲシステムである。
【図３】本発明の第１実施形態による整数ＡＬＵシステムを示す図である。
【図４】７ビットより大きい任意の中間または最終結果は、その後ろに追加されたエクストラビットを有する、第１の実施形態の剰余生成器の好ましい実施例による、モジュロ値１２７を備える剰余生成のための加算器ツリーのブロック図を示す。
【図５】第２実施形態による整数ＡＬＵシステムを示す。
【発明を実施するための形態】
【００２７】
図３は、本発明の第１の実施形態による整数ＡＬＵシステムを示す。第１の実施形態のこの整数ＡＬＵシステムは、好ましくは、自動運転システムに適用可能である。
【００２８】
この第１の実施形態では、整数ＡＬＵシステムが、入力として、オペランドＡ、Ｂ、オペレーションコードを短縮したオペコード、およびイネーブル信号を受け取り、Result1、Validity1、Error1の信号を出力するエラー検出装置１０を備える。エラー検出装置１０は、剰余生成器２０とエラー検出ＡＬＵ３０とを有する。剰余生成器２０は入力としてオペランドＡ、Ｂを取り込み、エラー検出ＡＬＵ３０に与えるための剰余値を生成する。エラー検出ＡＬＵ３０は、単純ＡＬＵ４０、剰余ＡＬＵ５０、およびチェッカー６０を有する。単純ＡＬＵ４０の内部では、基本的な算術演算（加算、減算、乗算）、論理演算およびシフト演算（算術および論理）が、デフォルト演算子を使用して実装される。
【００２９】
単純ＡＬＵ４０は、２つのオペランドＡおよびＢを取り込み、所望のオペコードに基づいて演算を実行し、単純ＡＬＵ４０からの結果Ｘ１を出力し、それをチェッカー６０に送る。剰余ＡＬＵ５０は、原則として単純ＡＬＵ４０と同じ演算を実行する。しかしながら、剰余生成器２０によって出力される剰余値が入力として使用されるので、剰余ＡＬＵ５０は単純ＡＬＵ４０に比べてサイズが小さい。剰余ＡＬＵの機能は、オペランドＡおよびＢに対してオペコードによって引き起こされ、単純ＡＬＵ４０によって出力される本来の演算の実行をチェックするための結果を与えることである。剰余ＡＬＵ５０は、チェッカー６０に信号Ｙ１を出力する。
【００３０】
チェッカー６０は、単純ＡＬＵ４０および剰余ＡＬＵ５０からの結果を取り込み、それらを使用して、エラーが検出され得るように、Result1、Validity1、Error1の信号を生成する。
【００３１】
以下において、図４のモジュロ値１２７を有する剰余生成のための加算器ツリーのブロック図を参照しながら、剰余生成器２０の好ましい実施形態を説明する。
【００３２】
剰余コードは、加算、乗算、シフトなどの算術演算におけるエラーを検出するために使用される。剰余コードは［Ｎ、ＮＡ］の形式を取り、ここでＮは整数であり、ＮＡは数Ａ（モジュロ値）を用いたＮの剰余である。Ａはチェックベースとして知られており、２ｋ−１の形式をしており、ｋは正の整数である。従来技術では、しばしば、３または１５などの、より小さいＡの値が使用される。
【００３３】
本発明では、図４から分かるように、好ましくは、剰余生成器２０における剰余生成が加算器を使用しながら実行できるように、モジュロ値１２７で動作する。２ｋ−１の形式の数が使用される場合に、加算器を使用することが好ましい。１２７の２進数表現は、連続した７つの１である。剰余値を取ることが意図される数の２進数表現は、５つの７ビットのグループに分けられる。オペランドＡ、Ｂの長さが３２ビットであるという仮定の下で、最上位ビット（ＭＳＢ）を有するグループは、３つの先頭のゼロ、すなわちその左に３つのゼロが付加され、すなわち、ＸＸＸＸは、０００ＸＸＸＸとなる。そして、これらのグループは、互いに加算される。最終結果の、その７ビット長を超える範囲外の１または０は、再び結果に足し戻される。最終的に、入力オペランドＡ、Ｂの剰余値を表す７ビットの結果が得られる。この加算器ツリーは、モジュロ１２７加算器２１、２２、２３、および２４と共に図４に示されている。結果として生じる７ビット結果は、オペランドＡ、Ｂの剰余値を表す。
【００３４】
単純ＡＬＵ４０において実行される演算、および剰余ＡＬＵ４０において実行される結果として生じる演算は、以下に与えられる。
加算：Ａ＋Ｂ→（Ａ ｍｏｄ １２７＋Ｂ ｍｏｄ １２７）
乗算：Ａ＊Ｂ→（Ａ ｍｏｄ １２７＊Ｂ ｍｏｄ １２７）
論理および算術左シフト：Ａ＜＜ｃ→（（Ａ％１２７）＜＜ｃ）
次の２つの式でも、「ｃ」はシフトされるビット数を表す。方程式は標準のVerilog構文で記述されている。
論理右シフト：Ａ＞＞ｃ→｛｛ｃ｛１’ｂ０｝｝，（Ａ［３１：ｃ］）｝
算術右シフト：Ａ＞＞＞ｃ→｛｛ｃ｛１’ｂ１｝｝，（Ａ［３１：ｃ］）｝
除算は、シフト演算と加算演算の組み合わせによって実行される。加算、乗算、除算およびシフト操作は、チェッカー６０を再利用することができる。
【００３５】
チェッカー６０では、単純ＡＬＵ４０からの結果Ｘ１と、剰余ＡＬＵ５０からの結果Ｙ１とが減算され、結果として生じる数のモジュロ１２７が計算される。このモジュロ（剰余値）が非ゼロであれば、エラーが検出され、チェッカー６０は計算結果に基づいて図３のエラー１の信号にエラーフラグをセットする。シンドロームの計算式は次のように書くことができる。
シンドローム＝（＜単純ＡＬＵ結果＞−＜剰余ＡＬＵ結果＞）ｍｏｄ １２７
モジュロ１２７は、所与の範囲に対するマルチビットエラーのための最良のエラーカバレッジを提供するので選択された。より小さい数を選択するとカバレッジを減少させ、その一方、より大きな数を選択してもエラーカバレッジを著しく改善しないが、面積が増大する。
【００３６】
一例として、加算演算および乗算演算についての１、２、および３ビットエラーの検出率が、表１から表３に示される。
【００３７】
【表１】
2020027617.tif 000003
【００３８】
【表２】
2020027617.tif 000004
【００３９】
【表３】
2020027617.tif 000005
【００４０】
以下では、論理演算をチェックするための好ましい手法について説明する。
【００４１】
ＡＮＤ、ＯＲ、ＸＯＲのような論理演算のために、セラーズ演算またはハミングコードが使用可能である。ハミングコードはオーバーヘッドが大きいが、１ビットエラーを訂正するために使用することができる。セラーズ演算は、冗長な計算でのみエラーを検出できるが、大幅に安価である。セラーズ演算についての詳細に関しては、Sellers、F. F.、Jr.、M. Y. Hsiao and L. W. Bearnson,“Error Detecting Logic for Digital Computers”、McGraw-Hill, NY 1968が参照される。.
基本ハミングコードは、単一ビットエラーの検出と訂正用に設計されている。しかしながら、ハミングコードは、単一エラー訂正と二重エラー検出（ＳＥＣＤＥＤ）を提供するために、全体のパリティビットを追加することによって拡張することができる。ハミングコードに関する訂正および検出は、複数のパリティビットが使用されることを必要とする。すでに述べたように、これはシステム全体のオーバーヘッドを増加させる。ハミングコードを使用する利点は、単一のＡＬＵでのエラーが、直接検出されて訂正されることができることである。しかしながら、算術演算の訂正のためにさらなるＡＬＵが必要とされるので、高いオーバーヘッドを有するハミングコードの使用は不必要なオーバーヘッドを引き起こす。
【００４２】
セラーズ演算は、ＡＮＤ、ＯＲ、およびＸＯＲ演算を計算するための代替式である。セラーズ演算を使用するためのオーバーヘッドは、図１に示すように、従来技術によるＤＭＲのオーバーヘッドと同様である。論理演算はより小さいので、オペランドＡとＢの式は次のとおりである。
ＡＮＤ =（Ａ｜Ｂ）^（Ａ^Ｂ）
ＯＲ=（Ａ＆Ｂ）^（Ａ^Ｂ）
ＸＯＲ =（Ａ＆Ｂ）^（Ａ｜Ｂ）
ＮＯＴの式はセラーズ演算の一部ではないが、それでもなお完全性の理由から以下で言及される。
ＮＯＴ =（Ａ^３２’ＦＦＦＦ_ＦＦＦＦ）
ここで、本発明の第１の実施形態の解決策を従来技術の図１によるＤＭＲの解決策と比較するならば、オペランドＡ、Ｂの長さは３２ビットであり、その一方で、モジュロ１２７は７ビットの最大長さを有すると仮定される。ここで、負数のモジュロ１２７も、それらを正にした後に計算することができる。これは、剰余ＡＬＵ５０内で実行される冗長演算が、単純ＡＬＵ４０内で実行される本来の計算と比較してはるかに小さいサイズであることを意味する。その結果、エラー検出ＡＬＵ３０を含むエラー検出装置１０は、図１のＤＭＲのサイズより２５％小さいサイズの面積を有する。
【００４３】
第１の実施形態による整数ＡＬＵシステムのさらなる利点は、システムインタフェースではなくＡＬＵステージの終端でエラーを検出できることである。第１の実施形態の整数ＡＬＵ方式のエラー検出装置１０を用いて、エラーを検出することができる。
【００４４】
図５に示されるような第２の実施形態による整数ＡＬＵシステム２００によれば、エラーは検出され得るだけでなく訂正され得る。第２の実施形態に係る整数ＡＬＵシステム２００は、第１の実施形態に係る整数ＡＬＵシステム１００の特徴を有し、さらにエラー訂正のための特徴を備えている。
【００４５】
整数ＡＬＵシステム２００は、剰余生成器２０、単純ＡＬＵ４０、剰余ＡＬＵ５０、およびチェッカー６０を有する第１の実施形態によるエラー検出装置１０を備え、単純ＡＬＵ４０、剰余ＡＬＵ５０、およびチェッカー６０はエラー検出ＡＬＵ３０の一部である。オペランドＡ、Ｂ、オペコード、イネーブル信号、並びに剰余生成器２０の出力は、第２実施形態において、エラー検出ＡＬＵ２３０に併せて入力される。このエラー検出ＡＬＵ２３０は、第１の実施形態のエラー検出ＡＬＵ３０と同様の構成を有し、すなわち単純ＡＬＵ２４０、剰余ＡＬＵ２５０、およびチェッカー２６０を有する。チェッカー２６０は、Result2、Validity2、Error2の信号を出力する。Result1、Validity1、Error1、ならびにResult2、Validity2、Error2の信号を意味する、エラー検出のチェッカー６０の出力とエラー検出ＡＬＵ２３０の出力が、結果セレクタ（メインチェッカーに相当）３００に入力される。
【００４６】
この結果セレクタ３００は、第２の実施形態の整数ＡＬＵシステム２００の出力信号であるResult、Validity、Errorの信号を生成する。結果セレクタ３００の内部では、エラー検出ＡＬＵ３０およびエラー検出ＡＬＵ２３０の出力信号に基づいて決定が行われる。エラーフラグError1とエラーフラグError2は、結果セレクタ３００の最終エラーフラグErrorを生成するための論理終結演算の対象となる。
【００４７】
エラー検出ＡＬＵ３０の信号Error1がゼロである場合、エラー検出ＡＬＵ３０の出力信号Result1が、最終結果である、結果セレクタ３００の出力Resultとして送出されることが好ましい。エラー検出ＡＬＵ３０の信号Error1が１であるが、エラー検出ＡＬＵ２３０の信号Error2がゼロである場合、エラー検出ＡＬＵ２３０の出力信号Result2が、最終結果である、結果セレクタ３００の出力Resultとして送出される。このようにして、第２実施形態の整数ＡＬＵシステム２００によってエラー訂正が行われる。エラー検出ＡＬＵ３０とエラー検出ＡＬＵ２３０が、信号Error1、Error2を非ゼロとして出力した場合にのみ、結果セレクタ３００は信号Errorを出力し、その他のいかなる結果も出力しない。
【００４８】
エラー訂正を備えたシステムを意味する、第２の実施形態による整数ＡＬＵシステム２００は、図２に示されるような従来技術によるＴＭＲの面積より１８％小さい面積を有する。
【００４９】
ここで、第１の実施形態と第２の実施形態による整数ＡＬＵシステムを比較すると、第１の実施形態のエラー検出装置１０の形式の整数ＡＬＵシステムはエラーを検出することができるが、第２の実施形態の整数ＡＬＵシステム２００の構造は、エラー検出ＡＬＵ３０、２３０のただ１つがエラーによる影響を受ける限り、エラーを訂正することもできる。
【００５０】
本発明によれば、プロセッサコアの内部状態の破損を回避することができ、例えば、演算をやり直すことによって、コアをエラーからより容易に回復させることができる。
【００５１】
本発明は示された実施形態に限定されない。第２の実施形態に対する代替案は、剰余生成器をエラー検出装置の各々に合体させることである。このような構造の利点は、剰余生成器で発生したエラーも検出できることである。
【符号の説明】
【００５２】
１０  エラー検出部、２０  剰余生成器、２１〜２４  モジュロ１２７加算器、３０  エラー検出ＡＬＵ、４０  単純ＡＬＵ、５０  剰余ＡＬＵ、６０  チェッカー、１００  整数ＡＬＵシステム、２００  整数ＡＬＵシステム、２３０  エラー検出ＡＬＵ、２４０  単純ＡＬＵ、２５０  剰余ＡＬＵ、２６０  チェッカー、３００  結果セレクタ
【図１】
2020027617.tif 000006
【図２】
2020027617.tif 000007
【図３】
2020027617.tif 000008
【図４】
2020027617.tif 000009
【図５】
2020027617.tif 000010