(57)【要約】【課題】簡易な構成で誤り訂正をすることができる誤り訂正回路を提供すること【解決手段】誤り訂正回路１は、連想メモリ２０と、連想メモリ２０と並列に配置した論理回路１０と、連想メモリ２０からの出力信号と、論理回路１０からの出力信号とを入力とする選択手段３０と、を有する。連想メモリ２０は、入力信号をワードとし、ワードと関連付けられた出力信号及び出力信号を訂正するための誤り訂正符号をデータとするテーブルを備える。さらに連想メモリ２０は、入力された信号に対応するワードと関連付けられたデータを基に、誤り訂正済み信号を出力する誤り訂正手段を備える。選択手段３０は、連想メモリ２０からの出力信号と、論理回路１０からの出力信号と、の一方を選択し、出力する。【選択図】図１
2011028478.tif 000002
【特許請求の範囲】
【請求項１】
入力信号が入力される連想メモリと、前記連想メモリと並列に配置され、前記入力信号が入力される論理回路と、前記連想メモリからの出力信号及び前記論理回路からの出力信号のいずれか一方を選択して出力する選択手段と、を有し、
前記連想メモリは、入力信号を前記論理回路に入力した際に得られるべき出力信号及び前記出力信号の誤りを訂正するための誤り訂正符号を保持するテーブルと、
入力信号に対応する出力信号を、前記誤り訂正符号により訂正して誤り訂正済み信号を出力する誤り訂正手段と、を備え、
前記選択手段は、前記連想メモリに前記入力信号に対応する出力信号及び誤り訂正符号が存在する場合、前記連想メモリからの出力信号を選択して出力する、誤り訂正回路。
【請求項２】
前記連想メモリは、入力信号に対応する前記出力信号及び前記誤り訂正符号が存在する場合、前記誤り訂正済み信号と、前記出力信号及び前記誤り訂正符号が存在することを示す連想メモリ一致信号と、を前記選択手段に出力し、
前記選択手段は、前記連想メモリ一致信号が入力された場合は、前記連想メモリからの前記誤り訂正済み信号を出力し、前記連想メモリ一致信号が入力されない場合は、前記論理回路から入力された信号を出力する、請求項１に記載の誤り訂正回路。
【請求項３】
前記論理回路は、入力信号に対応する出力信号を前記連想メモリに出力し、
前記連想メモリは、入力信号に対応する前記出力信号及び前記誤り訂正符号が存在しない場合、前記論理回路からの出力信号を前記入力信号に対応する出力信号として前記テーブルに登録するとともに、前記論理回路からの出力信号から算出される誤り訂正符号を前記入力信号に対応する誤り訂正符号として前記テーブルに登録する請求項１または請求項２に記載の誤り訂正回路。
【請求項４】
前記誤り訂正手段により、誤りが訂正された場合に、訂正したデータを前記テーブルに登録することを特徴とする請求項１から請求項３のいずれか一に記載の誤り訂正回路。
【請求項５】
前記テーブルのエントリのデータ入れ替えは、ＦＩＦＯ（First In First Out）形式で行うことを特徴とする請求項１から請求項４のいずれか一に記載の誤り訂正回路。
【請求項６】
請求項１から請求項５のいずれか一に記載の誤り訂正回路を備えるＬＳＩ（Large Scale Integration）装置。
【請求項７】
入力信号を論理回路に入力した際の出力信号を訂正する誤り訂正方法であって、
入力信号と、当該入力信号を論理回路に入力したときに得られるべき出力信号と、当該出力信号の誤りを訂正する誤り訂正符号とが登録されたテーブルを有する連想メモリに、入力信号を入力し、
当該入力信号に対応する出力信号をその誤り訂正符号により訂正した誤り訂正信号を出力信号とし、
入力信号が、前記連想メモリの前記テーブルに登録されていない入力信号である場合にのみ、当該入力信号を前記論理回路に入力して得られる信号を出力信号とする、誤り訂正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は誤り訂正回路、誤り訂正方法、特に入力信号を論理回路に入力した際の誤りを訂正する誤り訂正回路、誤り訂正方法に関する。
【背景技術】
【０００２】
従来、ＬＳＩ（Large Scale Integration）内部のＲＡＭ（Random Access Memory）の保持するデータや、レジスタ等が保持するデータにはソフトエラー等の原因により、エラーが生ずることがある。このようなエラーに対しては、当該データにＥＣＣ（Error Correction Code）やパリティ等を付加することにより、エラー訂正及びエラー検出を行うことが可能であった。例えば、ソフトエラーは、中性子等がＬＳＩチップの材料の媒質中に電荷発生させることにより発生する。
【０００３】
一方、ＬＳＩ内部の制御を行う一般的な論理回路は、その構成が複雑である。そのため、論理回路に対して、エラー検出処理を行うことは可能であるものの、エラー訂正処理を行うことが困難であった。以下に、論理回路に対する、エラー検出処理に関する技術について述べる。
【０００４】
図６はＬＳＩ内の論理回路の二重化によるエラー検出の概念を示す図である。図６のＬＳＩ装置は、並列に配置した等価な論理回路の出力を比較することにより、論理回路からの出力にエラーがあるか否かを判定する。図７は、パリティプディクションを用いたエラー検出の概念を示す図である。図７のＬＳＩ装置は、入力信号とともにパリティビットを論理回路に入力する。論理回路から出力される出力信号と、パリティビットと、を比較し、奇偶性により、論理回路からの出力にエラーがあるか否かを判定する。
【０００５】
しかし、前述のように、論理回路の二重化及びパリティプディクションは、エラー検出の技術であり、エラー訂正処理を行えない。近年、ＬＳＩ製造プロセスの微細化に伴い、ＬＳＩ内部の論理回路においても、エラーが発生するケースが多く考えられる。そのため、ＬＳＩ内部の論理回路で発生したエラーを検出するのみならず、エラー訂正を行う技術が重要となる。
【０００６】
ここで、所望の論理回路と等価な動作を行い、かつ、エラー訂正機能を設けた回路をＰＬＡ（Programmable Logic Array, プログラマブル・ロジック・アレイ）で実現し、これを論理回路と置き換えることが考えられる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０２−１５３４５７号公報
【特許文献２】特開２００４−３６２３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述のＰＬＡを用いた構成によっては、ＰＬＡの設定が煩雑であるという問題点がある。すなわち、所望の論理回路と等価な動作を行うように、ユーザが回路動作前または、回路動作中にエラー訂正処理も含めた回路構成情報を全て設定する必要性がある。また、ユーザが所望の論理回路の動作を把握する必要があった。そのため、ユーザの手間がかかるという問題点があった。
【０００９】
本発明は、このような問題点を解決するためになされたものであり、簡易な構成で誤り訂正をすることができる誤り訂正回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明にかかる誤り訂正回路の一態様は、入力信号が入力される連想メモリと、前記連想メモリと並列に配置され、前記入力信号が入力される論理回路と、前記連想メモリからの出力信号及び前記論理回路からの出力信号のいずれか一方を選択して出力する選択手段と、を有し、前記連想メモリは、入力信号を前記論理回路に入力した際に得られるべき出力信号及び前記出力信号の誤りを訂正するための誤り訂正符号を保持するテーブルと、入力信号に対応する出力信号を、前記誤り訂正符号により訂正して誤り訂正済み信号を出力する誤り訂正手段と、を備え、前記選択手段は、前記連想メモリに前記入力信号に対応する出力信号及び誤り訂正符号が存在する場合、前記連想メモリからの出力信号を選択して出力するものである。
【発明の効果】
【００１１】
本発明により、簡易な構成で誤り訂正をすることができる誤り訂正回路を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる誤り訂正回路の構成図である。
【図２】実施の形態１にかかる連想メモリの構成図である。
【図３】実施の形態１にかかる論理回路の入出力信号を示す表である。
【図４】実施の形態２にかかる誤り訂正回路の構成図である。
【図５】実施の形態２にかかる連想メモリの構成図である。
【図６】従来の論理回路の二重化によるエラー検出の概念図である。
【図７】従来の論理回路のパリティプディクションによるエラー検出の概念図である。
【発明を実施するための形態】
【００１３】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。まず、図１を参照して、本実施の形態１にかかる誤り訂正回路の基本構成について説明する。誤り訂正回路１は、論理回路１０と、連想メモリ２０（Content Addressable Memory： 以下の記載ではＣＡＭ２０とも表現する）と、選択手段３０と、を備える。
【００１４】
論理回路１０は、入力信号１００を入力とし、出力信号１２０を選択手段３０へ出力する。
【００１５】
ＣＡＭ２０は、論理回路１０と並列に配置され、論理回路１０と同じ入力信号１００を入力とする。ＣＡＭ２０は、入力信号１００をワードとし、ワードと関連付けられた出力信号及び当該出力信号を訂正する為の誤り訂正符号を保持するテーブルを備える。ワードとは、連想メモリの検索のキーとなるデータであり、入力信号の値が入力されるものである。当該テーブルは、論理回路１０と論理等価となるようにデータを設定される。ＣＡＭ２０は、入力信号１００が入力された場合に、入力信号１００に対応するワードと関連付けられた出力信号と、誤り訂正符号と、をテーブルから抽出し、エラー訂正信号を出力する誤り訂正手段を備える。ＣＡＭ２０は、前述のテーブルに基づき、誤り訂正手段により、入力信号１００に対応するエラー（誤り）訂正済み出力信号１３０を選択手段３０へ出力する。ＣＡＭ２０の構成及び動作の詳細は後述する。
【００１６】
選択手段３０は、論理回路１０からの入力信号１２０、またはＣＡＭ２０からの入力信号１３０のいずれか一方を選択して出力信号１１０を出力する。具体的には、ＣＡＭ２０内に入力信号１００に対応するワードが存在する場合、選択手段３０は、ＣＡＭ２０から入力された信号１３０を選択して出力する。上記以外の場合、選択手段３０は、論理回路１０から入力された信号１２０を選択して出力する。これにより、論理回路１０と等価な出力信号を出力することができる。また、エラー訂正済み信号１３０を出力する場合、ＬＳＩ内部でソフトエラー等の問題が生じた場合であっても、エラーのない信号を出力することができる。
【００１７】
本実施の形態において、選択手段３０は、ＣＡＭ２０から出力されるＣＡＭ一致信号１４０により、ＣＡＭ２０内に入力信号１００に対応するワードが存在するか否かを判定する。ＣＡＭ２０は、内部に入力信号１００に対応するデータが存在する場合、エラー訂正済み信号１３０とともに、対応データがＣＡＭ２０内に存在する、すなわち、エントリがＣＡＭ２０内に存在する旨を示すＣＡＭ一致信号１４０を選択手段３０に出力する。
【００１８】
なお、本実施の形態では、ＣＡＭ一致信号１４０の種別により、ＣＡＭ２０内部に入力信号１００に対応するエントリが存在するか否かを判定したが、必ずしもこの方式に限られない。例えば、ＣＡＭ２０は、入力信号１００に対応するＣＡＭワード２１１のデータが存在する場合のみ、ＣＡＭ一致信号１４０を選択手段３０に出力してもよい。
【００１９】
また、入力信号１００と、ＣＡＭ２０内部にあるテーブルと、を把握できる制御部を配置し、当該制御部が選択手段３０に対して、出力すべき信号を通知する等して、選択手段３０を制御する構成をとることもできる。
【００２０】
続いて、ＣＡＭ２０の詳細について説明する。図２は、ＣＡＭ２０の内部構成を示す図である。ＣＡＭ２０は、テーブル２１０と、エラー訂正手段２２０と、を備える。テーブル２１０は、ワード２１１（以下、ＣＡＭワード２１１と記載する）と、出力信号データ２１２と、ＥＣＣ（誤り訂正符号）２１３と、から構成されるテーブルである。
【００２１】
ＣＡＭワード２１１には、ＣＡＭ２０に入力され得る入力信号１００のデータが保持される。例えば、図２では、ＣＡＭ２０に対して"０００"が入力信号１００として、入力されることを示している。出力信号データ２１２には、ＣＡＭワード２１１に入力されている入力信号に対応する出力信号のデータが保持される。例えば、図２の例では、"０００"の信号がＣＡＭ２０に入力された際に、"００"が出力されることを示している。ＥＣＣ２１３には、出力信号データ２１２のデータのエラーを訂正する為の訂正符号が入力される。ＥＣＣ２１３に入力されるデータは、出力信号データ２１２のデータのエラーを訂正する為の訂正符号の形式であればよく、例えばハミング符号が該当する。図２の例では、"００"の出力信号を訂正する為のＥＣＣ２１３のデータは、"Ａ"であるものとする。
【００２２】
テーブル２１０のエントリ、すなわち、ＣＡＭワード２１１のデータと、出力信号データ２１２のデータと、ＥＣＣ２１３のデータと、の組は、ユーザが論理回路１０と論理等価となるように外部から設定する。
【００２３】
ここで、論理回路１０の動作の一例を図３の真理値表に示す。図３の真理値表によると、論理回路１０に入力される入力信号１００は、３ビットの信号であり、取り得るビット値は、"０００","００１","０１０","１００"の４通りである。論理回路１０において、"０００"が入力された場合、出力信号"００"を出力する。同様に、"００１"が入力された場合、出力信号"０１"を出力する。"０１０"が入力された場合、出力信号"１０"を出力する。"１００"が入力された場合、出力信号"１１"を出力する。ユーザは、図３の真理値表に示した入出力と等価となるように、入出力信号の一部または、全部に対応するエントリをテーブル２１０に設定する。
【００２４】
次に、入力信号１００がＣＡＭ２０に入力された場合の、ＣＡＭ２０内部での処理を説明する。入力信号１００が入力された際に、ＣＡＭ２０は、入力信号１００に対応するＣＡＭワード２１１のデータが保持されているか否かを検索する。保持されている場合、ＣＡＭワード２１１のデータに対応する出力信号データ２１２のデータと、ＥＣＣ２１３のデータと、をエラー訂正手段２２０への入力（２３０）とする。また、ＣＡＭ２０は、エントリがＣＡＭ２０内に存在する旨を示すＣＡＭ一致信号１４０を選択手段３０に出力する。図２の例では、入力信号１００として、"０００"が入力された場合、エラー訂正手段２２０に対して、入力信号２３０として、出力信号データ"００"と、ＥＣＣ"Ａ"と、が入力される。一方、入力信号１００に対応するＣＡＭワードのデータがテーブル２１０に保持されていない場合、ＣＡＭ２０は、エントリがＣＡＭ２０内に存在しない旨を示すＣＡＭ一致信号１４０を選択手段３０に出力する。
【００２５】
エラー訂正手段２２０は、入力された出力信号のデータと、ＥＣＣのデータと、に基づいて、出力信号のデータのエラー訂正を行う。エラー訂正手段２２０は、エラー訂正済みの信号を出力信号１３０として出力する。エラー訂正手段２２０によるＥＣＣを用いたエラー訂正は、公知の様々な手法により実現することができる。連想メモリにおけるエラー訂正技術の開示例として、特許文献１、及び特許文献２が挙げられる。
【００２６】
なお、エラー訂正手段２２０による訂正済み信号１３０をテーブル２１０に書き戻す構成としてもよい。これにより、ソフトエラー等により初期設定状態からテーブル２１０の内容が書き換えられてしまった場合等に、正しい値をテーブル２１０に再設定することができる。また、エラー訂正手段２２０による訂正対象のデータとして、ＣＡＭワード２１１に保持されているデータを含めてもよい。さらに、ＣＡＭ２０は、ＣＡＭ２０の各エントリを定期的に読み出して、各エントリの訂正処理を行うパトロール機能を備えた構成でもよい。
【００２７】
上記一連の処理により、以下の効果を奏する。ＣＡＭ２０内部のテーブル２１０に入力信号１００に対応するＣＡＭワード２１１のデータが存在する場合には、ＣＡＭ２０は、当該ＣＡＭワードのデータに対応する出力信号のデータ及びＥＣＣのデータを抽出する。誤り訂正手段２２０は、これらのデータを基にエラー訂正済み信号１３０を選択手段３０に出力する。ＣＡＭ２０内部のテーブルは、論理回路１０と等価な出力をするように構成されている。そのため、選択手段３０がこのエラー訂正済み信号１３０を出力信号とすることにより、エラー訂正機能を備えた論理回路を内蔵するＬＳＩ装置を提供することができる。
【００２８】
また、ＣＡＭ２０内部のテーブルに入力信号１００に対応するＣＡＭワードのデータが存在しない場合、選択手段３０は、ＣＡＭ２０と並列に配置された論理回路１０からの出力信号を選択して出力する。これにより、ＣＡＭ２０内のテーブル２１０が論理回路１０と完全に等価なデータを保持していない場合であっても、論理回路として正常に動作することができる。
【００２９】
さらに、ＣＡＭ２０内部のテーブル２１０のエントリは、外部から設定可能な構成となっている。そのため、当該誤り訂正回路をＬＳＩに適用した場合、テーブル２１０の設定を行うことにより、ＬＳＩの構成を変更することなく、論理バグを修正することができるという効果も奏する。
【００３０】
実施の形態２
本発明の実施の形態２は、ＣＡＭ２０内部のテーブル２１０のデータを学習することを特徴とする。図４を参照して、本実施の形態にかかる誤り訂正回路の基本構成について説明する。本実施の形態にかかる誤り訂正回路では、実施の形態１に記載の誤り訂正回路と異なり、論理回路１０は出力信号を連想メモリ２０に対しても出力する。なお、論理回路１０の構成（図３）、及びＣＡＭ２０内部の構成は実施の形態１に示した構成と同様である。以下に、図４に示した誤り訂正回路の動作について、実施の形態１と異なる部分を説明する。
【００３１】
図４の誤り訂正回路の図、および図２のＣＡＭ２０を参照し、入力信号１００が論理回路１０およびＣＡＭ２０に入力された場合の誤り訂正回路の動作について説明する。入力信号１００として、"０１０"が入力された場合、論理回路１０は、出力信号"１０"を選択手段３０と、ＣＡＭ２０と、に出力する。一方、ＣＡＭ２０に入力信号１００として、"０１０"が入力された場合、ＣＡＭ２０内部のテーブル２１０は、ＣＡＭワード２１１として"０１０"を有していない。そのため、ＣＡＭ２０は、エントリがＣＡＭ２０内に存在しない旨を示すＣＡＭ一致信号１４０を選択手段３０に出力する。選択手段３０の動作は、実施の形態１と同様のため、説明を割愛する。
【００３２】
本実施の形態において、ＣＡＭ２０に対してＣＡＭワード２１１のデータとして入力されていない入力信号１００が入力された場合、ＣＡＭ２０はさらに以下の処理を行う。ＣＡＭ２０は、論理回路１０から入力された信号から、誤り訂正符号を算出する。当該誤り訂正符号は、ハミング符号等の既存のエラー訂正技術により算出するものとする。ＣＡＭ２０は、入力信号１００のデータをＣＡＭワード２１１のデータとし、論理回路１０からの入力信号を出力信号データ２１２のデータとし、算出した誤り訂正符号をＥＣＣ２１３のデータとして登録する。例えば、入力信号１００として"０１０"が入力された場合、ＣＡＭ２０は、ＣＡＭワード２１１のデータとして"０１０"と、出力信号データ２１２のデータとして"１０"と、ＥＣＣ２１３のデータとして既存のエラー訂正技術により算出した値である"Ｃ"と、を登録することでテーブル２１０を更新する。図５は、図２に示すテーブル２１０に対して、前述のデータ登録を行った場合のＣＡＭ２０の構成を示す図である。
【００３３】
続いて、図５に示すＣＡＭ２０の状態において、さらに入力信号１００が論理回路１０およびＣＡＭ２０に入力された場合の誤り訂正回路の動作について説明する。入力信号１００として、"０１０"が入力された場合、ＣＡＭ２０内のテーブル２１０に、"０１０"に対応するＣＡＭワード２１１のデータが存在する。そのため、ＣＡＭ２０は、出力信号データ２１２のデータである"１０"を、ＥＣＣ２１３のデータである"Ｃ"を用いてエラー訂正し、訂正済み信号１３０を選択手段３０に出力する。
【００３４】
なお、ＣＡＭ２０内のテーブル２１０へのデータの設定は、ＦＩＦＯ（First In First Out）方式として、テーブル２１０のエントリ数が入力信号１００の取り得る信号の組み合わせの数よりも少なくする構成としてもよい。この場合、テーブル２１０のエントリ数を少なく抑えることができる。
【００３５】
上記一連の処理により、ＣＡＭ２０内部のテーブル２１０のエントリを自動的に更新することができる。自動的に入力されるエントリは、論理回路１０からの出力信号に基づいて登録される。そのため、ＣＡＭ２０は、論理回路１０と等価な処理をすることができるように構成することができる。また、テーブル２１０のエントリは自動更新されるため、ユーザがテーブル２１０のデータを予め設定する必要がない、すなわち、ユーザが論理回路の構成を把握する必要がないという効果がある。
【００３６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００３７】
１    誤り訂正回路
１０  論理回路
２０  連想メモリ（ＣＡＭ）
３０  選択手段
【図１】
2011028478.tif 000003
【図２】
2011028478.tif 000004
【図３】
2011028478.tif 000005
【図４】
2011028478.tif 000006
【図５】
2011028478.tif 000007
【図６】
2011028478.tif 000008
【図７】
2011028478.tif 000009