説明

誤り訂正回路、誤り訂正方法

【課題】簡易な構成で誤り訂正をすることができる誤り訂正回路を提供すること
【解決手段】誤り訂正回路1は、連想メモリ20と、連想メモリ20と並列に配置した論理回路10と、連想メモリ20からの出力信号と、論理回路10からの出力信号とを入力とする選択手段30と、を有する。連想メモリ20は、入力信号をワードとし、ワードと関連付けられた出力信号及び出力信号を訂正するための誤り訂正符号をデータとするテーブルを備える。さらに連想メモリ20は、入力された信号に対応するワードと関連付けられたデータを基に、誤り訂正済み信号を出力する誤り訂正手段を備える。選択手段30は、連想メモリ20からの出力信号と、論理回路10からの出力信号と、の一方を選択し、出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は誤り訂正回路、誤り訂正方法、特に入力信号を論理回路に入力した際の誤りを訂正する誤り訂正回路、誤り訂正方法に関する。
【背景技術】
【0002】
従来、LSI(Large Scale Integration)内部のRAM(Random Access Memory)の保持するデータや、レジスタ等が保持するデータにはソフトエラー等の原因により、エラーが生ずることがある。このようなエラーに対しては、当該データにECC(Error Correction Code)やパリティ等を付加することにより、エラー訂正及びエラー検出を行うことが可能であった。例えば、ソフトエラーは、中性子等がLSIチップの材料の媒質中に電荷発生させることにより発生する。
【0003】
一方、LSI内部の制御を行う一般的な論理回路は、その構成が複雑である。そのため、論理回路に対して、エラー検出処理を行うことは可能であるものの、エラー訂正処理を行うことが困難であった。以下に、論理回路に対する、エラー検出処理に関する技術について述べる。
【0004】
図6はLSI内の論理回路の二重化によるエラー検出の概念を示す図である。図6のLSI装置は、並列に配置した等価な論理回路の出力を比較することにより、論理回路からの出力にエラーがあるか否かを判定する。図7は、パリティプディクションを用いたエラー検出の概念を示す図である。図7のLSI装置は、入力信号とともにパリティビットを論理回路に入力する。論理回路から出力される出力信号と、パリティビットと、を比較し、奇偶性により、論理回路からの出力にエラーがあるか否かを判定する。
【0005】
しかし、前述のように、論理回路の二重化及びパリティプディクションは、エラー検出の技術であり、エラー訂正処理を行えない。近年、LSI製造プロセスの微細化に伴い、LSI内部の論理回路においても、エラーが発生するケースが多く考えられる。そのため、LSI内部の論理回路で発生したエラーを検出するのみならず、エラー訂正を行う技術が重要となる。
【0006】
ここで、所望の論理回路と等価な動作を行い、かつ、エラー訂正機能を設けた回路をPLA(Programmable Logic Array, プログラマブル・ロジック・アレイ)で実現し、これを論理回路と置き換えることが考えられる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平02−153457号公報
【特許文献2】特開2004−362315号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述のPLAを用いた構成によっては、PLAの設定が煩雑であるという問題点がある。すなわち、所望の論理回路と等価な動作を行うように、ユーザが回路動作前または、回路動作中にエラー訂正処理も含めた回路構成情報を全て設定する必要性がある。また、ユーザが所望の論理回路の動作を把握する必要があった。そのため、ユーザの手間がかかるという問題点があった。
【0009】
本発明は、このような問題点を解決するためになされたものであり、簡易な構成で誤り訂正をすることができる誤り訂正回路を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明にかかる誤り訂正回路の一態様は、入力信号が入力される連想メモリと、前記連想メモリと並列に配置され、前記入力信号が入力される論理回路と、前記連想メモリからの出力信号及び前記論理回路からの出力信号のいずれか一方を選択して出力する選択手段と、を有し、前記連想メモリは、入力信号を前記論理回路に入力した際に得られるべき出力信号及び前記出力信号の誤りを訂正するための誤り訂正符号を保持するテーブルと、入力信号に対応する出力信号を、前記誤り訂正符号により訂正して誤り訂正済み信号を出力する誤り訂正手段と、を備え、前記選択手段は、前記連想メモリに前記入力信号に対応する出力信号及び誤り訂正符号が存在する場合、前記連想メモリからの出力信号を選択して出力するものである。
【発明の効果】
【0011】
本発明により、簡易な構成で誤り訂正をすることができる誤り訂正回路を提供することができる。
【図面の簡単な説明】
【0012】
【図1】実施の形態1にかかる誤り訂正回路の構成図である。
【図2】実施の形態1にかかる連想メモリの構成図である。
【図3】実施の形態1にかかる論理回路の入出力信号を示す表である。
【図4】実施の形態2にかかる誤り訂正回路の構成図である。
【図5】実施の形態2にかかる連想メモリの構成図である。
【図6】従来の論理回路の二重化によるエラー検出の概念図である。
【図7】従来の論理回路のパリティプディクションによるエラー検出の概念図である。
【発明を実施するための形態】
【0013】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。まず、図1を参照して、本実施の形態1にかかる誤り訂正回路の基本構成について説明する。誤り訂正回路1は、論理回路10と、連想メモリ20(Content Addressable Memory: 以下の記載ではCAM20とも表現する)と、選択手段30と、を備える。
【0014】
論理回路10は、入力信号100を入力とし、出力信号120を選択手段30へ出力する。
【0015】
CAM20は、論理回路10と並列に配置され、論理回路10と同じ入力信号100を入力とする。CAM20は、入力信号100をワードとし、ワードと関連付けられた出力信号及び当該出力信号を訂正する為の誤り訂正符号を保持するテーブルを備える。ワードとは、連想メモリの検索のキーとなるデータであり、入力信号の値が入力されるものである。当該テーブルは、論理回路10と論理等価となるようにデータを設定される。CAM20は、入力信号100が入力された場合に、入力信号100に対応するワードと関連付けられた出力信号と、誤り訂正符号と、をテーブルから抽出し、エラー訂正信号を出力する誤り訂正手段を備える。CAM20は、前述のテーブルに基づき、誤り訂正手段により、入力信号100に対応するエラー(誤り)訂正済み出力信号130を選択手段30へ出力する。CAM20の構成及び動作の詳細は後述する。
【0016】
選択手段30は、論理回路10からの入力信号120、またはCAM20からの入力信号130のいずれか一方を選択して出力信号110を出力する。具体的には、CAM20内に入力信号100に対応するワードが存在する場合、選択手段30は、CAM20から入力された信号130を選択して出力する。上記以外の場合、選択手段30は、論理回路10から入力された信号120を選択して出力する。これにより、論理回路10と等価な出力信号を出力することができる。また、エラー訂正済み信号130を出力する場合、LSI内部でソフトエラー等の問題が生じた場合であっても、エラーのない信号を出力することができる。
【0017】
本実施の形態において、選択手段30は、CAM20から出力されるCAM一致信号140により、CAM20内に入力信号100に対応するワードが存在するか否かを判定する。CAM20は、内部に入力信号100に対応するデータが存在する場合、エラー訂正済み信号130とともに、対応データがCAM20内に存在する、すなわち、エントリがCAM20内に存在する旨を示すCAM一致信号140を選択手段30に出力する。
【0018】
なお、本実施の形態では、CAM一致信号140の種別により、CAM20内部に入力信号100に対応するエントリが存在するか否かを判定したが、必ずしもこの方式に限られない。例えば、CAM20は、入力信号100に対応するCAMワード211のデータが存在する場合のみ、CAM一致信号140を選択手段30に出力してもよい。
【0019】
また、入力信号100と、CAM20内部にあるテーブルと、を把握できる制御部を配置し、当該制御部が選択手段30に対して、出力すべき信号を通知する等して、選択手段30を制御する構成をとることもできる。
【0020】
続いて、CAM20の詳細について説明する。図2は、CAM20の内部構成を示す図である。CAM20は、テーブル210と、エラー訂正手段220と、を備える。テーブル210は、ワード211(以下、CAMワード211と記載する)と、出力信号データ212と、ECC(誤り訂正符号)213と、から構成されるテーブルである。
【0021】
CAMワード211には、CAM20に入力され得る入力信号100のデータが保持される。例えば、図2では、CAM20に対して"000"が入力信号100として、入力されることを示している。出力信号データ212には、CAMワード211に入力されている入力信号に対応する出力信号のデータが保持される。例えば、図2の例では、"000"の信号がCAM20に入力された際に、"00"が出力されることを示している。ECC213には、出力信号データ212のデータのエラーを訂正する為の訂正符号が入力される。ECC213に入力されるデータは、出力信号データ212のデータのエラーを訂正する為の訂正符号の形式であればよく、例えばハミング符号が該当する。図2の例では、"00"の出力信号を訂正する為のECC213のデータは、"A"であるものとする。
【0022】
テーブル210のエントリ、すなわち、CAMワード211のデータと、出力信号データ212のデータと、ECC213のデータと、の組は、ユーザが論理回路10と論理等価となるように外部から設定する。
【0023】
ここで、論理回路10の動作の一例を図3の真理値表に示す。図3の真理値表によると、論理回路10に入力される入力信号100は、3ビットの信号であり、取り得るビット値は、"000","001","010","100"の4通りである。論理回路10において、"000"が入力された場合、出力信号"00"を出力する。同様に、"001"が入力された場合、出力信号"01"を出力する。"010"が入力された場合、出力信号"10"を出力する。"100"が入力された場合、出力信号"11"を出力する。ユーザは、図3の真理値表に示した入出力と等価となるように、入出力信号の一部または、全部に対応するエントリをテーブル210に設定する。
【0024】
次に、入力信号100がCAM20に入力された場合の、CAM20内部での処理を説明する。入力信号100が入力された際に、CAM20は、入力信号100に対応するCAMワード211のデータが保持されているか否かを検索する。保持されている場合、CAMワード211のデータに対応する出力信号データ212のデータと、ECC213のデータと、をエラー訂正手段220への入力(230)とする。また、CAM20は、エントリがCAM20内に存在する旨を示すCAM一致信号140を選択手段30に出力する。図2の例では、入力信号100として、"000"が入力された場合、エラー訂正手段220に対して、入力信号230として、出力信号データ"00"と、ECC"A"と、が入力される。一方、入力信号100に対応するCAMワードのデータがテーブル210に保持されていない場合、CAM20は、エントリがCAM20内に存在しない旨を示すCAM一致信号140を選択手段30に出力する。
【0025】
エラー訂正手段220は、入力された出力信号のデータと、ECCのデータと、に基づいて、出力信号のデータのエラー訂正を行う。エラー訂正手段220は、エラー訂正済みの信号を出力信号130として出力する。エラー訂正手段220によるECCを用いたエラー訂正は、公知の様々な手法により実現することができる。連想メモリにおけるエラー訂正技術の開示例として、特許文献1、及び特許文献2が挙げられる。
【0026】
なお、エラー訂正手段220による訂正済み信号130をテーブル210に書き戻す構成としてもよい。これにより、ソフトエラー等により初期設定状態からテーブル210の内容が書き換えられてしまった場合等に、正しい値をテーブル210に再設定することができる。また、エラー訂正手段220による訂正対象のデータとして、CAMワード211に保持されているデータを含めてもよい。さらに、CAM20は、CAM20の各エントリを定期的に読み出して、各エントリの訂正処理を行うパトロール機能を備えた構成でもよい。
【0027】
上記一連の処理により、以下の効果を奏する。CAM20内部のテーブル210に入力信号100に対応するCAMワード211のデータが存在する場合には、CAM20は、当該CAMワードのデータに対応する出力信号のデータ及びECCのデータを抽出する。誤り訂正手段220は、これらのデータを基にエラー訂正済み信号130を選択手段30に出力する。CAM20内部のテーブルは、論理回路10と等価な出力をするように構成されている。そのため、選択手段30がこのエラー訂正済み信号130を出力信号とすることにより、エラー訂正機能を備えた論理回路を内蔵するLSI装置を提供することができる。
【0028】
また、CAM20内部のテーブルに入力信号100に対応するCAMワードのデータが存在しない場合、選択手段30は、CAM20と並列に配置された論理回路10からの出力信号を選択して出力する。これにより、CAM20内のテーブル210が論理回路10と完全に等価なデータを保持していない場合であっても、論理回路として正常に動作することができる。
【0029】
さらに、CAM20内部のテーブル210のエントリは、外部から設定可能な構成となっている。そのため、当該誤り訂正回路をLSIに適用した場合、テーブル210の設定を行うことにより、LSIの構成を変更することなく、論理バグを修正することができるという効果も奏する。
【0030】
実施の形態2
本発明の実施の形態2は、CAM20内部のテーブル210のデータを学習することを特徴とする。図4を参照して、本実施の形態にかかる誤り訂正回路の基本構成について説明する。本実施の形態にかかる誤り訂正回路では、実施の形態1に記載の誤り訂正回路と異なり、論理回路10は出力信号を連想メモリ20に対しても出力する。なお、論理回路10の構成(図3)、及びCAM20内部の構成は実施の形態1に示した構成と同様である。以下に、図4に示した誤り訂正回路の動作について、実施の形態1と異なる部分を説明する。
【0031】
図4の誤り訂正回路の図、および図2のCAM20を参照し、入力信号100が論理回路10およびCAM20に入力された場合の誤り訂正回路の動作について説明する。入力信号100として、"010"が入力された場合、論理回路10は、出力信号"10"を選択手段30と、CAM20と、に出力する。一方、CAM20に入力信号100として、"010"が入力された場合、CAM20内部のテーブル210は、CAMワード211として"010"を有していない。そのため、CAM20は、エントリがCAM20内に存在しない旨を示すCAM一致信号140を選択手段30に出力する。選択手段30の動作は、実施の形態1と同様のため、説明を割愛する。
【0032】
本実施の形態において、CAM20に対してCAMワード211のデータとして入力されていない入力信号100が入力された場合、CAM20はさらに以下の処理を行う。CAM20は、論理回路10から入力された信号から、誤り訂正符号を算出する。当該誤り訂正符号は、ハミング符号等の既存のエラー訂正技術により算出するものとする。CAM20は、入力信号100のデータをCAMワード211のデータとし、論理回路10からの入力信号を出力信号データ212のデータとし、算出した誤り訂正符号をECC213のデータとして登録する。例えば、入力信号100として"010"が入力された場合、CAM20は、CAMワード211のデータとして"010"と、出力信号データ212のデータとして"10"と、ECC213のデータとして既存のエラー訂正技術により算出した値である"C"と、を登録することでテーブル210を更新する。図5は、図2に示すテーブル210に対して、前述のデータ登録を行った場合のCAM20の構成を示す図である。
【0033】
続いて、図5に示すCAM20の状態において、さらに入力信号100が論理回路10およびCAM20に入力された場合の誤り訂正回路の動作について説明する。入力信号100として、"010"が入力された場合、CAM20内のテーブル210に、"010"に対応するCAMワード211のデータが存在する。そのため、CAM20は、出力信号データ212のデータである"10"を、ECC213のデータである"C"を用いてエラー訂正し、訂正済み信号130を選択手段30に出力する。
【0034】
なお、CAM20内のテーブル210へのデータの設定は、FIFO(First In First Out)方式として、テーブル210のエントリ数が入力信号100の取り得る信号の組み合わせの数よりも少なくする構成としてもよい。この場合、テーブル210のエントリ数を少なく抑えることができる。
【0035】
上記一連の処理により、CAM20内部のテーブル210のエントリを自動的に更新することができる。自動的に入力されるエントリは、論理回路10からの出力信号に基づいて登録される。そのため、CAM20は、論理回路10と等価な処理をすることができるように構成することができる。また、テーブル210のエントリは自動更新されるため、ユーザがテーブル210のデータを予め設定する必要がない、すなわち、ユーザが論理回路の構成を把握する必要がないという効果がある。
【0036】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0037】
1 誤り訂正回路
10 論理回路
20 連想メモリ(CAM)
30 選択手段

【特許請求の範囲】
【請求項1】
入力信号が入力される連想メモリと、前記連想メモリと並列に配置され、前記入力信号が入力される論理回路と、前記連想メモリからの出力信号及び前記論理回路からの出力信号のいずれか一方を選択して出力する選択手段と、を有し、
前記連想メモリは、入力信号を前記論理回路に入力した際に得られるべき出力信号及び前記出力信号の誤りを訂正するための誤り訂正符号を保持するテーブルと、
入力信号に対応する出力信号を、前記誤り訂正符号により訂正して誤り訂正済み信号を出力する誤り訂正手段と、を備え、
前記選択手段は、前記連想メモリに前記入力信号に対応する出力信号及び誤り訂正符号が存在する場合、前記連想メモリからの出力信号を選択して出力する、誤り訂正回路。
【請求項2】
前記連想メモリは、入力信号に対応する前記出力信号及び前記誤り訂正符号が存在する場合、前記誤り訂正済み信号と、前記出力信号及び前記誤り訂正符号が存在することを示す連想メモリ一致信号と、を前記選択手段に出力し、
前記選択手段は、前記連想メモリ一致信号が入力された場合は、前記連想メモリからの前記誤り訂正済み信号を出力し、前記連想メモリ一致信号が入力されない場合は、前記論理回路から入力された信号を出力する、請求項1に記載の誤り訂正回路。
【請求項3】
前記論理回路は、入力信号に対応する出力信号を前記連想メモリに出力し、
前記連想メモリは、入力信号に対応する前記出力信号及び前記誤り訂正符号が存在しない場合、前記論理回路からの出力信号を前記入力信号に対応する出力信号として前記テーブルに登録するとともに、前記論理回路からの出力信号から算出される誤り訂正符号を前記入力信号に対応する誤り訂正符号として前記テーブルに登録する請求項1または請求項2に記載の誤り訂正回路。
【請求項4】
前記誤り訂正手段により、誤りが訂正された場合に、訂正したデータを前記テーブルに登録することを特徴とする請求項1から請求項3のいずれか一に記載の誤り訂正回路。
【請求項5】
前記テーブルのエントリのデータ入れ替えは、FIFO(First In First Out)形式で行うことを特徴とする請求項1から請求項4のいずれか一に記載の誤り訂正回路。
【請求項6】
請求項1から請求項5のいずれか一に記載の誤り訂正回路を備えるLSI(Large Scale Integration)装置。
【請求項7】
入力信号を論理回路に入力した際の出力信号を訂正する誤り訂正方法であって、
入力信号と、当該入力信号を論理回路に入力したときに得られるべき出力信号と、当該出力信号の誤りを訂正する誤り訂正符号とが登録されたテーブルを有する連想メモリに、入力信号を入力し、
当該入力信号に対応する出力信号をその誤り訂正符号により訂正した誤り訂正信号を出力信号とし、
入力信号が、前記連想メモリの前記テーブルに登録されていない入力信号である場合にのみ、当該入力信号を前記論理回路に入力して得られる信号を出力信号とする、誤り訂正方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−28478(P2011−28478A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−172856(P2009−172856)
【出願日】平成21年7月24日(2009.7.24)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】