JP4731677B2 - ワンホットワードにおけるエラーを検出するための方法及び装置 - Google Patents
ワンホットワードにおけるエラーを検出するための方法及び装置 Download PDFInfo
- Publication number
- JP4731677B2 JP4731677B2 JP2000371133A JP2000371133A JP4731677B2 JP 4731677 B2 JP4731677 B2 JP 4731677B2 JP 2000371133 A JP2000371133 A JP 2000371133A JP 2000371133 A JP2000371133 A JP 2000371133A JP 4731677 B2 JP4731677 B2 JP 4731677B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- group
- hot
- circuit
- bit
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/47—Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
- H03M13/51—Constant weight codes; n-out-of-m codes; Berger codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、エラー検出に関する。特に、本発明は、エラーのない状態において単一のビットのみがセットされるワンホットワードにおけるエラーを効率的に検出するための方法および装置に関する。
【0002】
【従来の技術】
バイナリワンホットワードは、単一ビットがハイで、その他すべてのビットがローであるか、あるいは単一ビットがローで、その他すべてのビットがハイであるバイナリビットの集合である。明確のために、本明細書では、バイナリワンホットワードにおける単一の「ホット」または「セット」ビットとは、それが公称的にハイである間他のすべてのビットが公称的にローであるかのように、しかしセットビットが公称的にローである間他のすべてのビットが公称的にハイであることも同等に可能であるものとして参照する。ワンホットワードは、例えば、事前有効化(pre-validated)キャッシュにおけるタグ格納として利用される。ワンホットワードの他の使用法は、当業者には明らかである。
【0003】
ワンホットワードは、通常2つの方法のうちの一方または双方におけるエラーによって破損する可能性がある。第1の形態の破損では、セットビットがセットされない(すなわち、単一のビット1がゼロに変わる)。この破損の結果、すべてのビットがゼロであるワードが生じる。本明細書で用いるように、「ミス」という用語は、すべてのビットがゼロであるこの状況を指すものである。用途に応じて、ミスはエラー状態であるか、あるいはエラー状態ではない場合がある。例えば、事前有効化キャッシュにおけるミスは妥当であり、非破損状態であるが、他の用途では、ミスは妥当ではない。ワンホットワードの他方の形態の破損は、ローのままであるべき1つまたは複数のビットがセットされることである。すなわち、破損したワンホットワードは、セットビットを2つ以上有する。本明細書で用いるように、「マルチヒット」という用語は、セットされたビットを2つ以上有するワードを指すために用いられるが、「ヒット」という用語は、いずれか1つのまたはそれ以上のセットビットを有するワードを指すために用いられる。
【0004】
図1は、8ビットワンホットワードにおけるあるタイプのエラーを検出するための論理回路100を示す。ワンホットワードは、8つの構成ビットD0、D1、...、D7を有し、該ワードはD0:D7と示される。8つのデータビットD0、D1、...、D7は、図1に示すように、左からの論理回路100に対する入力である。排他的論理和(XOR)ゲート104、108、112、116、120、124、および128は、8入力排他的論理和機能を形成するように共に接続される。信号ODDは、最後の排他的論理和ゲート128からの出力である。信号ODDは、ワードD0:D7におけるセットビットの数が奇数であればハイであり、ワードD0:D7におけるセットビットの数が偶数であればローである。
論理回路100はまた、NANDゲート156および160に接続されたNORゲート140、144、148、および152も含む。NANDゲート156および160は、ワードD0:D7のすべてのビットがローである場合に限り、NORゲート164からの信号MISS(ミス)出力がハイであるように、NORゲート164に接続される。インバータゲート170は、信号MISSに接続され、かつ信号HIT(ヒット)が、インバータゲート170から出力される。信号HITは、ワードD0:D7の1つまたは複数のビットがハイであれば、ハイである。信号ODDおよびMISSは、NORゲート174への入力である。NORゲート174の出力は、信号EVEN MULTIHIT(偶数マルチヒット)であり、これは、ちょうど2つ、またはちょうど4つ、またはちょうど6つ、または8つすべてのデータビットD0、D1、...、D7がハイであるときに、ハイである。このため、論理回路100は、あるタイプのエラーのあるワンホットワードを検出することができる。しかし、論理回路100は、ワンホットワードD0:D7におけるすべてのエラーを検出することはできない。特に、論理回路100が、ワードD0:D7において奇数の数のビットがセットされる場合にエラーを検出することができない。すなわち、ワードD0:D7のちょうど3つ、またはちょうど5つ、またはちょうど7つのビットが、論理回路100によってワンホットエラーとして検出されない場合である。
【0005】
【発明が解決しようとする課題】
本発明の課題は、エラーのない状態において単一のビットのみがセットされるワンホットワードにおけるエラーを効率的に検出するための方法および装置を提供することにある。
【0006】
【課題を解決するための手段】
一態様において、本発明は、ワンホットワードにおけるエラーを検出する際に使用される装置である。本装置は、複数の入力信号線と、入力スイッチ信号線に接続された複数のスイッチング素子と、複数の中間信号線と、論理回路と、を備える。スイッチング素子は、入力信号線に接続される。中間信号線もまた、スイッチング素子に接続される。接続は、特定の入力信号線がセットされているとき、スイッチング素子によって該特定の入力信号線に接続されたすべての中間信号線が所定の論理状態になるよう強制されるような態様である。中間信号線は、論理回路への入力であり、論理回路は、複数の入力信号線のうち少なくとも2つがセットされているか否かを示す信号を出力する。
【0007】
別の態様において、本発明は、Mビットの群において、非ワンホット状態を検出するための方法である。本方法は、Mビットの群を少なくとも2log2M符号化ビットに符号化して、Nビットの群におけるワンホット状態それぞれが符号化ビットの群において一意の状態を生成するようにする。本方法は、Mビットの群が非ワンホット状態にあるか否かについて、符号化ビットを基にして決定を行う。少なくとも2log2M符号化ビットがそれぞれ少なくともlog2M符号化ビットの2つの群であることが好ましいが、必要不可欠なことではない。例えば(かつ制限としてではなく)、少なくともlog2M符号化ビットの2つの群は、互いの相補的な符号化であってもよい。
【0008】
さらに別の態様において、本発明は、ビットの群Dにおけるワンホットエラーを検出するための方法である。本方法は、まず、DがS0およびNS0の合併集合になるように、ビットの群Dを2つの共通部分のない部分集合S0およびNS0に分割する。本方法は、部分集合S0におけるいずれのビットがホットであるかを決定する。本方法はまた、部分集合NS0におけるいずれのビットがホットであるかも決定する。群Dは、再度、DがS1およびNS1の合併集合となるように、別の2つの完全に異なる共通部分のない部分集合S1およびNS1に分割される。次に、本方法は、S1におけるいずれのビットがホットであるか、またNS1におけるいずれのビットがホットであるかを決定する。これまでに行った決定を基にして、本方法は群Dがエラーを含むか否かを決定する。
【0009】
論理回路100と比較して、本発明のある実施形態は、以下を含む特定の利点を達成することができる。
(1)本発明のある実施形態により、すべての非ワンホットワード(すなわち、偶数であるか、奇数であるかに係わらずにすべてのマルチヒットならびに適用可能な場合にはミス)の検出が可能である。
(2)本発明のある実施形態は、論理回路100よりも少ない遅延でエラーを検出する目的で、ワンホットワードを処理することができる。特に、論理回路l00では、左側の入力から右側の出力までに7ゲートの遅延がある(ゲート遅延は、本明細書において、XORゲートが2単位の遅延をもたらす一方で、インバータまたはNANDゲートは1単位のゲート遅延をもたらすという典型的な慣習に従ってカウントされる)。一方、本発明のある実施形態は、同じことを行うのに4ゲートほどと少ない遅延を有する。さらに、ゲート遅延の数は、ワンホットワードのサイズ(すなわち、その中にあるビットの数)に主に無関係であるが、これは論理回路100には当てはまらない。
(3)本発明のある実施形態は、論理回路100よりも少ない半導体面積を使用して物理的に実施することができる。
【0010】
当業者は、添付図面を参照して、以下の好ましい実施形態の詳細な説明を読めば、本発明の各種実施形態のこれらおよび他のメリットおよび利点を理解するであろう。
【0011】
【発明の実施の形態】
図2は、本発明の一実施形態によるワンホットワードにおいてエラーを検出する際に使用する回路200の模式図である。公称的にはワンホットワードである8ビットワードD0:D7は、図において水平に示す8つの入力信号線D0、D1、...、D7上の回路200への入力である。入力信号線D0、D1、...、D7は、スイッチング素子201〜224に選択的に接続される。スイッチング素子201〜224は、長方形アレイが本発明の原理を最もよく示すことから、長方形アレイに構成されて図示されるが、スイッチング素子201〜224は、任意のいかなる物理的構成にも配置することができる。スイッチング素子201〜224は、NFET201〜224(Nチャネル型電界効果トランジスタ)であることが好ましい。各NFET201〜224は、ゲート端子において入力信号線に接続される。図2では垂直に示される数本の中間信号線NE0、E0、NE1、E1、NE2、およびE2もまたNFETに接続される。中間信号線NE0、E0、NE1、E1、NE2、およびE2は、スイッチング素子201〜224のドレイン端子において選択されたスイッチング素子201〜224に接続される。スイッチング素子201〜224のソース端子は、接地される。中間信号線NE0、E0、NE1、E1、NE2、およびE2はまた、PFET(Pチャネル型電界効果トランジスタ)にも接続される。例えば、中間信号線E0は、ドレイン端子においてPFET231に接続される。同様に、その他の中間信号線NE0、NE1、E1、NE2、およびE2がPFET232〜236にそれぞれ接続される。PFET231〜236はそれぞれ、ゲート端子においてクロック信号CLKに接続される。クロック信号CLKに接続されたPFET231〜236は、中間信号線NE0、E0、NE1、E1、NE2、およびE2をプレチャージする。したがって、公称的にはNE0=E0=NE1=E1=NE2=E2=1である。しかし、入力信号線D0:D7により、接続されたスイッチング素子が接続された中間信号線を接地させる。すなわち、中間信号線を、データ線D0:D7の状態およびそれらのスイッチング素子201〜224への接続に応じて、ローに引っ張ることができる。一例として、D0がハイであり、そのためスイッチング素子201、209、および217がソースからドレインにかけて導通され(すなわち、ターンオン)、したがって中間信号線NE2、NE1、およびNE0をロー論理状態にさせる場合を考える。
【0012】
回路200を点検してわかるように、D0、D1、D2、またはD3のいずれかがセットされる場合、中間信号線NE2がローに引っ張られる。D4、D5、D6、またはD7のいずれかがセットされている場合、中間信号線E2がローに引っ張られる。したがって、D0:D7において2つまたはそれ以上のビット、すなわち、前半分のD0:D3において少なくとも1つのビット、および後半分のD4:D7において少なくとも1つのビットがセットされている場合のみ、NE2およびE2が双方ともローになる。これは、中間信号線NE2およびE2がスイッチング素子201〜208を介してデータビットの重複しないセットに接続されるため、当てはまる。同様に、中間信号線NE1およびE1は、スイッチング素子209〜216を介してデータビットの重複しないセット({D0、D1、D4、D5}および{D2、D3、D6、D7}それぞれ)に接続され、中間信号線NE0およびE0は、スイッチング素子217〜224を介してデータビットの重複しない異なるセット({D0、D2、D4、D6}および{D1、D3、D5、D7}それぞれ)に接続される。
【0013】
図3の論理回路300に示すように、中間信号線NE2およびE2は、NANDゲート304への入力である。NANDゲート304の出力は、信号HITであり、これは、E2またはNE2のいずれかがローである場合にハイである。信号MISSは、信号HITに接続されたインバータ308によって形成される。信号HITおよびMISSは、E1およびNE1が論理回路300におけるE2およびNE2に取って代わった場合、まったく同等である。同様に、信号HITおよびMISSは、E0およびNE0が論理回路300におけるE2およびNE2と取って代わった場合、まったく同等である。
【0014】
中間信号線NE2、E2、NE1、E1、NE0、およびE0はそれぞれ、インバータゲート312〜332への入力であり、インバータゲート312〜332はNANDゲート336〜348に接続されている。NANDゲート348の出力は、信号MULTIHIT(マルチヒット)であり、これは、D0:D7のうちの2つまたはそれ以上がセットされている場合に限りハイである。わかるように、信号MULTIHITは、3つの条件のうちの1つまたはそれ以上が満たされる場合にハイである。第1に、NE2およびE2が双方ともローである、つまりD0:D3の中で少なくとも1つのビットがセットされ、かつD4:D7の中で少なくとも1つのビットがセットされていることを意味する場合、信号MULTIHITはハイである。第2に、NE1およびE1が双方ともローである、つまりビットの重複しないセット{D0、D1、D4、D5}および{D2、D3、D6、D7}の両方において、それらに接続されたデータビットのうちの少なくとも1つがハイであることを意味する場合、信号MULTIHITはハイである。第3に、NE0およびE0が双方ともローである、つまりビットの重複しないセット{D0、D2、D4、D6}および{D1、D3、D5、D7}の両方において、それらに接続されたデータビットのうちの少なくとも1つがハイであることを意味する場合、信号MULTIHITはハイである。したがって、回路200は、すべての組が異なり、かつ各組のうちの一方がその組の他方と共通部分を持たないように、8つのデータビットD0:D7を3組の値に符号化する。このようにして、D0:D7においていずれか2つまたはそれ以上のビットエラーが発生すると、3組のうちの少なくとも1組を双方ともローに引っ張るよう保証される。すなわち、D0:D7においてマルチヒットエラーが発生すると、以下のうちの1つまたはそれ以上が引き起こされる。すなわち、(a)NE0およびE0を双方ともローに引っ張る、および/または(b)NE1およびE1を双方ともローに引っ張る、および/または(c)NE2およびE2を双方ともローに引っ張る。論理回路300は、これらの任意の組み合わせを検出する。当業者は、論理回路300と同一機能を実施するために、異なる多くの論理回路を設計しうることを容易に認識するであろう。例えば、周知のゲート転換の結果として、異なるが、論理的に同等な回路になる。
【0015】
論理回路300と組み合わせた回路200は、偶数のマルチヒットだけでなく、あらゆるマルチヒットを検出することができる。さらに、回路200および論理回路300は共に、入力信号線D0:D7から出力MULTIHITまで、4ゲートの遅延しかもたらさない。回路200は、1単位の遅延の原因であり、インバータ312〜332がもう1単位の遅延の原因であり、NANDゲート336〜344がさらに1単位の遅延をもたらし、最後にNANDゲート348が1単位の遅延をもたらす。
【0016】
回路200および論理回路300は、8つの入力信号線上で動作するものとして図示されるが、これは広く任意である。当業者は、回路の基本的なパターンを16、32、または2つの入力信号線のそれ以上の累乗にスケーリングすることが可能であることを容易に理解しよう。例えば、16本の入力信号線が処理される場合、中間信号線の追加の組が必要であり(すなわち、NE3およびE3)、かつ16個のスイッチング素子の4列アレイが必要である。中間信号線は、以下の意味で同じであるパターンに従って、スイッチング素子を介して入力信号線に接続することができる。すなわち、(1)NE3を上の8本の入力信号線に接続しながら、E3を下の8本に接続する、(2)NE2およびE2をそれぞれ、連続した4本の入力信号線のセットに交互に接続する、(3)NE1およびE1をそれぞれ連続した2本の入力信号線のセットに交互に接続する、(4)NE0およびE0をそれぞれ、1本おきの入力信号線に接続する。入力信号線の数が2の累乗に満たず、かつ2の累乗の回路構造を利用している場合には、追加の入力信号線を非ホット(例えば、ロー)状態に固定することもできる。あるいは、2を累乗した数ではない入力信号線を直接許容する回路構造を利用してもよい。
【0017】
一般に、本方法は、2ビットからTビットまでのMの値すべてについて機能するが、但しTは、ワイヤードOR回路の最大幅等、ハードウェア技術に対しての最大限度である。例えば、ハードウェア技術によりワイヤードOR回路の幅が32ビット以下に制限され、かつ入力ビットが、第2の群が第1の群の相補的符号化であるlog2Mビットの2つの群に符号化される場合、Mは、2≦M≦64であるいずれの数であってもよい。2つの符号化群におけるビットがそれぞれ32個のスイッチング素子に接続され、かつワイヤードORゲートの技術的限度が32ビットであるため、この例示的な例において、最大は64ビットである。
【0018】
図4A、Bおよび図5は、本発明の別の実施形態を示したものである。図4Aおよび図4Bは、回路400を示す。図5は、論理回路500を示す。ある意味において、図4A、Bおよび図5に示す実施形態は、図2および図3に図示した実施形態を最適化したものである。図2のように、図4A、Bにおける入力信号線D0:D7は、左からの入力であり、スイッチング素子401〜416に接続される。また、クロック信号CLKも、プリチャージ構成でPFET431〜438に接続される。中間信号線NE0、E0、NE1、E1、F0、NF0、F1およびNF1は、スイッチング素子401〜416に選択的に接続されると共に、信号MULTIHITを生成するためにNANDゲート504〜540に入力され、かつ信号HITおよびMISSを生成するために、インバータ548に連結されたNORゲート544に入力される。当業者は、論理回路500からの信号MULTIHIT、HIT、およびMISSという出力は、論理回路300からの同じ信号出力と同等であることを容易に確認することができる。特に、信号HITは、D0:D7におけるいずれか1つまたはそれ以上のビットがセットされている場合にハイである。信号MULTIHITは、入力ビットD0:D7の群のうち2つまたはそれ以上がハイである場合に限り、ハイとなる。図2および図3と比較して、図4A、Bおよび図5の構成は、ある望ましい特性を有する。例えば、回路400の場合、入力負荷がより少ない。また、第2の実施形態は、論理回路500が一方の側にある図4Aに示す回路400の部分と、他方の側にある図4Bに示す回路400の部分の間の中間領域に配置される場合、より少ない垂直ワイヤトラックで、マルチレベル回路において物理的に実施することができる。
【0019】
回路200および論理回路300は共に、または回路400および論理回路500は共に、概してMビットの群において非ワンホット状態を検出するための方法を物理的に実施したものである。本方法は、例えばハードウェア、ソフトウェア、またはファームウェアにおいて実施することがすることが好ましい。本方法において、Mビットの群を符号化ビットの2つの群に符号化することが好ましい。各群は、少なくともlog2M(log2Mよりも次に大きな整数等)の符号化ビットを含む。符号化は、Mビットの群におけるワンホット状態がそれぞれ、符号化ビットにおいて一意の状態を生成するようなものである。例に続いて、8ビットのD0:D7は、第2の群の符号化ビットが第1の群の符号化ビットの相補的符号化である、それぞれ3つのビットを含む2つの群に符号化される。回路200を再度参照すると、第1の群の符号化ビットは、中間信号線E0、E1、およびE2に対応する。第2の群の符号化ビットは、中間信号線NE0、NE1、およびNE2に対応する。本方法は、Mビットの群が非ワンホット状態にあるか否かについて、符号化ビットを基にして決定する。この決定ステップは、例えば論理回路300によって行われる。
【0020】
Mが2の累乗ではない場合、本方法は、MビットをL個の非ホットビットで増大して、Nビットの群を形成することができる(但し、N=M+Lであり、かつNは2の累乗である)。例えば、5つのビットD0:D4のみがワンホット状態についてテストされる場合には、入力信号線D5、D6、およびD7は、図2における非ホット状態(例えば、ロー)に結びつけられる。この例の場合の本方法に関して、M=5かつL=3であるため、それらの和であるNは2の累乗である(N=8=23)。次に、本方法は、上述したように、M個のビットの代わりにN個の入力ビットで続けられる。あるいは、本方法は、2の累乗ではない数のビットに対して直接動作することができる。
【0021】
別の実施形態において、本方法は通常、ビットの群D、例えば、入力信号線D0、D1、...、D7の8ビットのセットにおいて動作して、群Dがその公称ワンホット(または考えられ得るミス)状態からのエラーによって破損しているか否かを決定する。本方法は、Dを、S0およびNS0で表すことができる2つの共通部分のない部分集合に分割する。例えば、論理回路200において、S0は、スイッチング素子を介して中間信号線NE0に接続された入力信号線のセットである。すなわち、S0={D0、D1、D2、D3}である。同様に、NS0は、スイッチング素子を介して中間信号線E0に接続された入力信号線のセット、すなわち{D4、D5、D6、D7}である。D=S0∪NS0。本方法は、S0におけるいずれか1つまたはそれ以上のビットがホットであるか否かを決定するとともに、NS0におけるいずれか1つまたはそれ以上のビットがホットであるか否かを決定する。本方法はまた、Dを別の方法で共通部分のない部分集合S1およびNS1に分割する。例えば、回路200においてそれぞれ中間信号線NE1およびE1に接続された、S1={D0、D1、D4、D5}およびNS1={D2、D3、D6、D7}である。なお、S0、NS0、S1、およびNS1のいずれも同じ部分集合ではないことに留意する。本方法は、S1におけるいずれか1つまたはそれ以上のビットがホットであるか否かを決定するとともに、NS1におけるいずれか1つまたはそれ以上のビットがホットであるか否かを決定する。分割の部分集合の各組において1つまたはそれ以上のビットがホットであるか否かを決定する都度、群Dのサイズに応じて必要であれば、本方法を続けてDの分割を行ってもよい。例えば、回路200は、中間信号線NE2およびE2への接続により、DをS2={D0、D2、D4、D6}およびNS2={D1、D3、D5、D7}に分割する。部分集合においていずれかのビットがホットであるか否かの決定を基にして、本方法は、上述したように、ビットの群Dにおいてマルチヒットがあるか否かを決定することができる。特定の部分集合S0、NS0、S1、NS1、S2、およびNS2は例示的なものである。異なる部分集合が可能である。具体的には、部分集合S0、NS0、S1、NS1、S2、およびNS2と、まとめて1対1で対応している任意の部分集合のセットで十分である。別の方法では、部分集合S0、NS0、S1、NS1、S2、およびNS2にまとめて適用した任意の全単写像が適した部分集合のセットを生成する。
【0022】
ちょうど本装置の変形が可能であるように、本方法の変形も可能である。例えば、図4A、Bおよび図5に示す本装置の実施形態は、上述した本方法の変形の物理的な実施である。基本的に、この変形は、ビットの群DDを2つの共通部分のない部分集合(例えば、第1の部分集合G1=D0:D3、および第2の部分集合G2=D4:D7)に分割し、各部分集合に対して上述した第1の方法を行い、それからその結果を論理的に結合する。この点から、図4Aは、群DD=D0:D7の部分集合D0:D3に対して本方法の一部を行うものとして見ることができ、また、図4Bは、部分集合D4:D7に対して本方法の一部を行うものとして見ることができる。
【0023】
図6は、モジュラビルディングブロックとして図4A、Bおよび図5に示す組み合わせを有するカスケード式ワンホットエラー検出器600である。特に、サブ検出器605〜640はそれぞれ、回路400および論理回路500の組み合わせである。サブ検出器645も同様に同じである。エラー検出器600において、64ビットワンホットワードが、公称なワンホット状態からの破損を検出するために、処理される。64ビットの群は、サブ検出器605〜640それぞれにより一度に8ビットずつ処理される。サブ検出器604〜640からの出力HIT0、HIT1、...、HIT7は、図示のように、8ビット入力データとしてサブ検出器645へ入力される。さらに、サブ検出器605〜640からのマルチヒット信号MHIT0、MHIT1、...、MHIT7の出力は、NFET651〜658、NANDゲート660、NORゲート665、およびインバータ670によって論理的に結合されて、図示のように、信号MULTIHITを生成する。エラー検出器600からの信号MULTIHIT出力は、サブ検出器605〜640のいずれかからの任意のMHIT信号がハイである場合、あるいは2つまたはそれ以上のサブ検出器605〜640からのHIT信号がハイである場合にはハイであり、したがってサブ検出器645からの信号GMHIT出力をハイにさせる。いずれの場合でも、2つまたはそれ以上のセットビットが64入力ビット内にあるか否かに係わらず、エラー検出器600によってマルチヒットが検出される。
【0024】
同様にして、ワンホットエラー検出器は、図6に示すパターンに従ういかなる任意のワードサイズについて構築することができる。例えば、エラー検出器600を二度複製して、それらの出力を適切に結合することで、128ビットワンホットエラー検出器を構築することができ、このような場合、より広いエラー検出器の総伝播遅延は、ほんのわずか(例えば、1または2ゲート遅延)だけ増大するにすぎない。あるいは、上述したように、各サブ検出器605〜640のサイズまたは入力幅を増大することで、より大きなワンホットエラー検出器を構築することができる。例えば、8ビットのサブ検出器605〜640の代わりに16ビットのサブ検出器を使用すると、結果として128ビットのワンホットエラー検出器になる。
【0025】
本明細書で用いた用語および説明は、例示としてだけのものであり、制限を意味するものではない。当業者は、すべての用語は、別記されない限りその最も広義の意味で理解されるべきである添付の特許請求の範囲およびその同等物に定義される本発明の精神および範囲内で多くの変形が可能であることを認識するであろう。
【0026】
以上、本発明の実施例について詳述したが、以下、本発明の各実施態様の例を示す。
【0027】
[実施態様1]
複数の入力信号線(D0〜D7)と、
前記入力信号線(D0〜D7)に接続された複数のスイッチング素子(201〜224、401〜416)と、
特定の入力信号線(D0〜D7)がセットされたとき、前記スイッチング素子(201〜224、401〜416)を介して前記特定の入力信号線(D0〜D7)に接続されたすべての中間信号線(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)が第1の所定の論理状態になるよう強制されるように、それぞれ前記スイッチング素子(201〜224、401〜416)のいくつかに接続された複数の中間信号線(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)と、
前記複数の中間信号線(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)を入力として受け入れ、前記複数の入力信号線(D0〜D7)のうち少なくとも2つがセットされているか否かを示す信号を出力する論理回路(300、500)と、
を備えて成る装置。
【0028】
[実施態様2]
前記スイッチング素子(201〜224、401〜416)がトランジスタであることを特徴とする、実施態様1に記載の装置。
【0029】
[実施態様3]
前記トランジスタはNFETであり、前記入力信号線(D0〜D7)は、ゲート端子において前記NFETに接続され、前記中間信号線(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)は、ドレイン端子において前記NFETに接続され、かつ前記NFETは、ソース端子において接地されることを特徴とする、実施態様2に記載の装置。
【0030】
[実施態様4]
前記中間信号線(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)は、接続された入力信号線(D0〜D7)がセットされていない場合に、第2の所定の論理状態にバイアスされることを特徴とする、実施態様1に記載の装置。
【0031】
[実施態様5]
接続された入力信号線(D0〜D7)がセットされていない場合に、前記中間信号線(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)を前記第2の所定の論理状態にバイアスする複数のバイアス素子(231〜236、431〜438)をさらに備えて成ることを特徴とする、実施態様4に記載の装置。
【0032】
[実施態様6]
前記入力信号線(D0〜D7)は、バイナリハイ状態にあるときにセットされることを特徴とする、実施態様1に記載の装置。
【0033】
[実施態様7]
Mビット(D0〜D7)の群において非ワンホット状態を検出するための方法であって、
前記Mビット(D0〜D7)の群におけるワンホット状態がそれぞれ、符号化ビット(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)の群において一意の状態を生成するように、前記Mビット(D0〜D7)の群を少なくとも2log2M符号化ビット(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)の群に符号化するステップと、
前記符号化ビット(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)に基づいて、前記Mビット(D0〜D7)の群が非ワンホット状態にあるか否かを決定するステップと、
を備えて成る方法。
【0034】
[実施態様8]
前記Mは2の累乗であることを特徴とする、実施態様7に記載の方法。
【0035】
[実施態様9]
少なくとも2log2M符号化ビット(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)の前記群が、それぞれが少なくともlog2M符号化ビットを有する2つの群からなることを特徴とする、実施態様7に記載の方法。
【0036】
[実施態様10]
少なくとも2log2M符号化ビット(E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1)の前記群が、符号化ビットの組からなり、符号化ビットの各組について、各組それぞれの一方の符号化ビットが、Mビットの各半分に基づいており、かつ各組それぞれの他方の符号化ビットが、Mビットの他方の各半分に基づいていることを特徴とする、実施態様9に記載の方法。
【0037】
【発明の効果】
以上説明したように、本発明を用いることにより、エラーのない状態において単一のビットのみがセットされるワンホットワードにおけるエラーを効率的に検出することができる。
【図面の簡単な説明】
【図1】パリティエラーを検出するための回路の論理図である。
【図2】本発明の一実施形態によるワンホットワードにおけるエラーを検出する際に使用する回路の模式図である。
【図3】本発明の一実施形態によるワンホットワードにおけるエラーを検出する際に使用する論理回路の図である。
【図4A】本発明の一実施形態によるワンホットワードにおけるエラーを検出する際に使用する回路の模式図である。
【図4B】本発明の一実施形態によるワンホットワードにおけるエラーを検出する際に使用する回路の模式図である。
【図5】本発明の別の実施形態によるワンホットワードにおけるエラーを検出する際に使用する論理回路を示す図である。
【図6】カスケード式ワンホットエラー検出器を示す図である。
【符号の説明】
D0〜D7:入力信号線、Mビット
201〜224、401〜416:スイッチング素子
E0、NE0、E1、NE1、E2、NE2;E0、NE0、E1、NE1、F0、NF0、F1、NF1:中間信号線、符号化ビット
231〜236、431〜438:バイアス素子
300、500:論理回路
Claims (3)
- Mビットの群における非ワンホット状態を検出するための方法において、
第1の回路により、前記Mビットの群を、少なくとも2log2M符号化ビットの群に、前記Mビットの群における各ワンホット状態が前記符号化ビットの群において一意の状態を生成するように、符号化するステップであって、前記第1の回路は、前記Mビットの群における各ビットをそれぞれ入力するためのM個の入力信号線と、前記2log 2 M符号化ビットの群における各符号化ビットをそれぞれ出力するための2log 2 M個の中間信号線と、前記入力信号線と前記中間信号線とを接続する複数のスイッチング素子と、を有し、前記2log 2 M符号化ビットの群は、それぞれlog 2 M個の第1の群および第2の群を成し、該第1の群における各符号化ビットは、前記第2の群における対応する符号化ビットと対を成し、該各対の一方の符号化ビットは、前記Mビットの群のうちの第1の部分集合のビット群に前記スイッチング素子によって接続され、他方の符号化ビットは、前記Mビットの群のうちのビットの重複しない第2の部分集合のビット群に前記スイッチング素子によって接続され、前記各対におけるいずれの部分集合も他のいずれの対におけるいずれの部分集合とも同じでないように構成されている、符号化するステップと、
第2の回路により、前記符号化ビットに基づいて、前記Mビットの群が非ワンホット状態にあるか否かを決定するステップであって、前記第2の回路は、少なくとも1つの前記対における各符号化ビットにそれぞれ対応する前記第1および第2の部分集合のいずれの部分集合のビット群においても少なくとも1つのビットがホットであることを検出することにより、前記Mビットの群のうちの2つまたはそれ以上のビットがホットであることを検出するように構成されている、決定するステップと、
を含み、
前記Mが2の累乗でない場合には、前記MビットをL個の非ホットビットで増大したM+Lビット(ここで、M+Lは2の累乗である)の群に対して、前記符号化するステップが実行される、方法。 - 共通部分のない2つの部分集合G1およびG2に分割された2Mビットの群DDにおいて、
前記第1の回路により、前記Mビットの群である前記G1に対し、前記符号化するステップを実行するステップと、
前記第1の回路により、前記Mビットの群である前記G2に対し、前記符号化するステップを実行するステップと、
第3の回路により、前記G1およびG2に対する符号化ステップの実行結果に基づいて、前記ビットの群DDが非ワンホット状態にあるか否かを決定するステップであって、前記第3の回路は、前記G1およびG2に対する符号化ステップの実行結果に基づいて、前記ビットの群DDのうちの2つまたはそれ以上のビットがホットであることを検出するように構成されている、決定するステップと、
をさらに含む、請求項1に記載の方法。 - ビットの群におけるワンホットエラーを検出する方法であって、
共通部分のない2つの部分集合S0およびNS0に、D=S0∪NS0となるように分割されたビットの群Dに対し、部分集合におけるビットのいずれかがホットであるか否かを決定する第1の回路によって、
(a)S0におけるビットのいずれかがホットであるか否かを決定するステップと、
(b)NS0におけるビットのいずれかがホットであるか否かを決定するステップと、
共通部分のない2つの部分集合S1およびNS1に、D=S1∪NS1で且つS0、NS0、S1、およびNS1のどれもが同じでないようにして、分割された前記群Dに対し、部分集合におけるビットのいずれかがホットであるか否かを決定する第2の回路によって、
(c)S1におけるビットのいずれかがホットであるか否かを決定するステップと、
(d)NS1におけるビットのいずれかがホットであるか否かを決定するステップと、
共通部分のない2つの部分集合S2およびNS2に、D=S2∪NS2で且つS0、NS0、S1、NS1、S2、およびNS2のどれもが同じでないようにして、分割された前記群Dに対し、部分集合におけるビットのいずれかがホットであるか否かを決定する第3の回路によって、
(e)S2におけるビットのいずれかがホットであるか否かを決定するステップと、
(f)NS2におけるビットのいずれかがホットであるか否かを決定するステップと、
(g)第4の回路により、前記決定するステップの結果に基づいて、前記群Dが2つまたはそれ以上のホットビットを含んでいるか否かを決定するステップと、
を含み、前記ステップ(g)が、
(1)前記ステップ(a)および(b)の両方の結果が肯定である、
(2)前記ステップ(c)および(d)の両方の結果が肯定である、
(3)前記ステップ(e)および(f)の両方の結果が肯定である、
の3つの状態のうちのいずれか1つが真であるか否かを決定し、いずれか1つが真である場合には、前記群Dがエラーを含んでいると決定するステップを含んでいる、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US465723 | 1999-12-17 | ||
US09/465,723 US6622284B1 (en) | 1999-12-17 | 1999-12-17 | Method and apparatus for detection of errors in one-hot words |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008326467A Division JP2009105938A (ja) | 1999-12-17 | 2008-12-22 | ワンホットワードにおけるエラーを検出するための方法及び装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001195273A JP2001195273A (ja) | 2001-07-19 |
JP2001195273A5 JP2001195273A5 (ja) | 2005-07-07 |
JP4731677B2 true JP4731677B2 (ja) | 2011-07-27 |
Family
ID=23848924
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000371133A Expired - Fee Related JP4731677B2 (ja) | 1999-12-17 | 2000-12-06 | ワンホットワードにおけるエラーを検出するための方法及び装置 |
JP2008326467A Pending JP2009105938A (ja) | 1999-12-17 | 2008-12-22 | ワンホットワードにおけるエラーを検出するための方法及び装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008326467A Pending JP2009105938A (ja) | 1999-12-17 | 2008-12-22 | ワンホットワードにおけるエラーを検出するための方法及び装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6622284B1 (ja) |
JP (2) | JP4731677B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009105938A (ja) * | 1999-12-17 | 2009-05-14 | Hewlett Packard Co <Hp> | ワンホットワードにおけるエラーを検出するための方法及び装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6290673B1 (en) * | 1999-05-20 | 2001-09-18 | Conor Medsystems, Inc. | Expandable medical device delivery system and method |
US6675266B2 (en) * | 2000-12-29 | 2004-01-06 | Intel Corporation | Circuit and method for protecting 1-hot and 2-hot vector tags in high performance microprocessors |
KR100532601B1 (ko) * | 2003-10-16 | 2005-12-01 | 현대모비스 주식회사 | 카오디오 시스템의 채널 다운 믹싱 장치 |
RU2419907C1 (ru) * | 2010-04-23 | 2011-05-27 | ЮГ Инвестмент Лтд. | Многоэлементный электрохимический конденсатор и способ его изготовления |
US8806294B2 (en) * | 2012-04-20 | 2014-08-12 | Freescale Semiconductor, Inc. | Error detection within a memory |
US10102848B2 (en) | 2014-02-28 | 2018-10-16 | Google Llc | Hotwords presentation framework |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4498177A (en) * | 1982-08-30 | 1985-02-05 | Sperry Corporation | M Out of N code checker circuit |
US4912348A (en) * | 1988-12-09 | 1990-03-27 | Idaho Research Foundation | Method for designing pass transistor asynchronous sequential circuits |
US5012246A (en) * | 1990-01-31 | 1991-04-30 | International Business Machines Corporation | BiCMOS analog-to-digital converter with minimized metastability |
US5860017A (en) | 1996-06-28 | 1999-01-12 | Intel Corporation | Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction |
US5859999A (en) | 1996-10-03 | 1999-01-12 | Idea Corporation | System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers |
US6003154A (en) * | 1997-05-14 | 1999-12-14 | Nortel Networks Corporation | System and method for covering illegal states in a programmable gate array |
US6034542A (en) * | 1997-10-14 | 2000-03-07 | Xilinx, Inc. | Bus structure for modularized chip with FPGA modules |
JP3201352B2 (ja) * | 1998-07-17 | 2001-08-20 | 日本電気株式会社 | 同期化回路 |
JP3339566B2 (ja) * | 1998-10-21 | 2002-10-28 | 日本電気株式会社 | サーモメトリック−バイナリコード変換方法および回路、それに使用されるエンコーダ素子回路 |
US6622284B1 (en) * | 1999-12-17 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | Method and apparatus for detection of errors in one-hot words |
-
1999
- 1999-12-17 US US09/465,723 patent/US6622284B1/en not_active Expired - Fee Related
-
2000
- 2000-12-06 JP JP2000371133A patent/JP4731677B2/ja not_active Expired - Fee Related
-
2008
- 2008-12-22 JP JP2008326467A patent/JP2009105938A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009105938A (ja) * | 1999-12-17 | 2009-05-14 | Hewlett Packard Co <Hp> | ワンホットワードにおけるエラーを検出するための方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2009105938A (ja) | 2009-05-14 |
US6622284B1 (en) | 2003-09-16 |
JP2001195273A (ja) | 2001-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7417881B2 (en) | Low power content addressable memory | |
US7352299B1 (en) | Method and system for improving memory interface data integrity | |
JP2009105938A (ja) | ワンホットワードにおけるエラーを検出するための方法及び装置 | |
EP0220876B1 (en) | Self-checking error-correcting encoder/decoder | |
KR100744141B1 (ko) | 싱글 엔디드 신호 라인의 가상 차동 상호 연결 회로 및가상 차동 신호 방식 | |
US8560927B1 (en) | Memory error detection circuitry | |
JPH11312396A (ja) | マルチビット半導体メモリ装置及びその装置の誤り訂正方法 | |
US5383205A (en) | Semiconductor memory device having an error correction circuit and an error correction method of data in a semiconductor memory device | |
US6420990B1 (en) | Priority selection circuit | |
JP2023512892A (ja) | 比較システム | |
US4236247A (en) | Apparatus for correcting multiple errors in data words read from a memory | |
US7612583B2 (en) | Efficient XOR calculation | |
Dutta et al. | Reliable network-on-chip using a low cost unequal error protection code | |
US6788106B2 (en) | Integrated circuit devices having data inversion circuits therein that reduce simultaneous switching noise and support interleaving of parallel data | |
US7509561B2 (en) | Parity checking circuit for continuous checking of the parity of a memory cell | |
US7242219B1 (en) | Circuit for parity tree structure | |
JP7454676B2 (ja) | 記憶システム | |
US4803649A (en) | Modulo-2-adder for the logic-linking of three input signals | |
US5148057A (en) | Circuit apparatus for detecting preceding value one | |
US4931971A (en) | Partial decode shifter/rotator | |
Piestrak | Design of encoders and self-testing checkers for some systematic unidirectional error detecting codes | |
US4888499A (en) | Three input exclusive OR-NOR gate circuit | |
JPH0855066A (ja) | エラー訂正及び変換システム | |
US5608741A (en) | Fast parity generator using complement pass-transistor logic | |
JPS6232814B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041102 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041102 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061031 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070130 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070206 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080129 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080428 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080502 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080729 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080822 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081222 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20081226 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20090403 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20101013 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20101019 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110323 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110420 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |