(57)【要約】【課題】面積効率を向上し、消費電力を削減した、故障検知を可能とする。【解決手段】情報処理回路は、格納データ生成回路と、記憶回路と、比較データ生成回路と、データ比較回路と、を備える。格納データ生成回路は、入力データに、冗長ビット及び書き込みされたことを示すライトフラグを付加して格納データを生成する。記憶回路は、前記格納データを記憶する。比較データ生成回路は、前記記憶回路に記憶されたデータから冗長ビットを生成する。データ比較回路は、前記格納データ生成回路が付加した冗長ビットと、前記比較データ生成回路が生成した冗長ビットとを比較し、比較結果及び前記ライトフラグに基づいて誤り検出を実行する。【選択図】図１
2020194357.tif 000002
【特許請求の範囲】
【請求項１】
入力データに、冗長ビット及び書き込みされたことを示すライトフラグを付加して格納データを生成する、格納データ生成回路と、
前記格納データを記憶する、記憶回路と、
前記記憶回路に記憶されたデータから冗長ビットを生成する、比較データ生成回路と、
前記格納データ生成回路が付加した冗長ビットと、前記比較データ生成回路が生成した冗長ビットとを比較し、比較結果及び前記ライトフラグに基づいて誤り検出を実行する、データ比較回路と、
を備える情報処理回路。
【請求項２】
冗長ビットは、前記記憶回路に記憶するアドレスに基づいたパリティビット、及び、前記入力データに基づいたパリティビット又は誤り訂正符号を備える、請求項１に記載の情報処理回路。
【請求項３】
前記アドレスのデータからパリティビットを生成する、第１パリティビット生成回路をさらに備える、請求項２に記載の情報処理回路。
【請求項４】
前記入力データ及び前記格納データ生成回路が付加した冗長ビットの情報に基づいて、前記記憶回路に記憶されているデータの誤り訂正を実行する、データ訂正回路、
をさらに備える、請求項１から請求項３のいずれかに記載の情報処理回路。
【請求項５】
外部からのメモリアクセスを制御する、メモリアクセス制御回路をさらに備え、
テストデータが入力されると、
前記メモリアクセス制御回路は、前記記憶回路における書き込みが可能である全て又は一部の領域において前記テストデータの書き込みを行う、請求項１から請求項４のいずれかに記載の情報処理回路。
【請求項６】
情報処理回路が、
入力データに、冗長ビット及び書き込みされたことを示すライトフラグを付加して格納データを生成し、
前記格納データを記憶し、
記憶されたデータから冗長ビットを生成し、
前記格納データの冗長ビットと、前記生成した冗長ビットとを比較し、比較結果及び前記ライトフラグに基づいて誤り検出を実行する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理回路及び情報処理方法に関する。
【背景技術】
【０００２】
情報処理装置において、装置内部における故障に対応することは広く求められている。例えば、車載用のデータ処理装置においては、ISO26262に準拠するために、装置内部の故障を検知できる機能、及び、故障を検知する回路の故障診断機能の実装が求められている。メモリデータにおいては、書き込み時及び読み込み時にデータから算出されたパリティ、ECC等の値を比較して、故障の検知を行う。一方、故障検知回路自体の故障は、メモリの２重化、LBIST（Logic Built-in Self-Test）により検知をする。この場合、メモリマクロ内部については、パッケージ製品が多く、任意の故障検知回路を挿入することができないことが多い。このため、アドレスデコーダを２重化するために、メモリを２分割する必要があるが、面積効率が悪く、さらに、消費電力が増えるという問題があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−７３１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一実施形態は、面積効率を向上し、消費電力を削減した、故障検知可能な情報処理回路を提供する。
【課題を解決するための手段】
【０００５】
一実施形態によれば、情報処理回路は、格納データ生成回路と、記憶回路と、比較データ生成回路と、データ比較回路と、を備える。格納データ生成回路は、入力データに、冗長ビット及び書き込みされたことを示すライトフラグを付加して格納データを生成する。記憶回路は、前記格納データを記憶する。比較データ生成回路は、前記記憶回路に記憶されたデータから冗長ビットを生成する。データ比較回路は、前記格納データ生成回路が付加した冗長ビットと、前記比較データ生成回路が生成した冗長ビットとを比較し、比較結果及び前記ライトフラグに基づいて誤り検出を実行する。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に係る情報処理回路の機能を示すブロック図。
【図２】一実施形態に係る情報処理回路の実装例を示す図。
【図３】一実施形態に係る記憶データ列の一例を示す図。
【図４】一実施形態に係る情報処理回路の実装例を示す図。
【図５】一実施形態に係る記憶データ列の一例を示す図。
【図６】一実施形態に係る情報処理回路の機能を示すブロック図。
【図７】一実施形態に係る情報処理回路の実装例を示す図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、図面及び本明細書に記載の説明は、例として示すものであり、本発明を限定するものではない。また、重複する構成要素の説明は省略することがある。
【０００８】
図１は、本実施形態に係る情報処理回路１の機能を示すブロック図である。情報処理回路１は、格納データ生成回路１０と、記憶回路１２と、比較データ生成回路１４と、データ比較回路１６と、を備える。情報処理回路１は、記憶回路１２にデータを書き込みし、又は、記憶回路１２からデータを読み出しする回路である。
【０００９】
格納データ生成回路１０は、情報処理回路１に入力されたデータに基づいて、冗長ビットを付加し、記憶回路１２に格納するデータを生成する。冗長ビットとは、例えば、データに対するパリティ又はECC（Error Correction Code）、データを格納するアドレスに対するパリティ等の情報を備えるビットである。冗長ビットは、その内容により、ビット長が変化してもよい。例えば、パリティであれば、１ビットであってもよいし、ECCであれば、誤り検出又は誤り訂正のレベルによりビット数が変化してもよい。
【００１０】
また、冗長ビットとして、書き込みしたことを示すライトフラグを備える。このライトフラグは、１ビットであってもよいし、２ビット以上であってもよい。ライトフラグは例えば、初期状態においては0、書き込み時においては1が立てられる。ライトフラグが２ビット以上である場合には、書き込み領域において隣接したビットとして備えられてもよい。より好ましくは、書き込み領域において離れた位置に存在するビットとして備えられてもよい。ライトフラグは、例えば、データ領域を挟むように、データ領域の前後に１ビットずつ備えられていてもよいし、パリティ、ECC等の冗長ビットの前後に１ビットずつ備えられていてもよい。ライトフラグを２ビット以上とすることにより、記憶されているデータの信頼性をさらに向上することができる。
【００１１】
記憶回路１２は、格納データ生成回路１０が生成したデータを格納する。記憶回路１２は、一時的又は非一時的な記憶手段、例えば、各種RAM（Random Access Memory）を備える。この記憶回路１２は、データを当該データに対して指定されたアドレスにおいて格納する。
【００１２】
比較データ生成回路１４は、記憶回路１２に格納されているデータから冗長ビットに対応するビットを生成する。より具体的には、記憶回路１２に格納されているデータにおいて、アドレス情報及び冗長ビットを除いた入力データから、格納データ生成回路１０と同じ手法を用いて冗長ビットを生成する。
【００１３】
データ比較回路１６は、記憶回路１２に記憶されている冗長ビットと、比較データ生成回路１４が生成した冗長ビットとを比較し、記憶回路１２に格納されているデータに誤りが生じていないかを検知する。さらに、データ比較回路１６は、ライトフラグが全て１であるかを確認する。
【００１４】
ライトフラグが全て1であり、かつ、異なる冗長ビットがある場合には、誤りがあると判定し、その旨を出力する。ライトフラグが全て0ではない、又は、冗長ビットが全て一致している場合には、誤りがないと判定し、エラー情報としてその旨を出力する。
【００１５】
このように、情報処理回路１は、記憶回路１２に正しくデータが格納され、かつ、正しく読み出されたか否かを判断し、その結果を出力する。記憶回路１２に備えられるメモリの領域を分割することなく記憶回路１２の故障検知を可能とする。メモリの領域を分割しないことにより、消費電力を低く抑えることができる。さらに、故障検知回路として備える回路は冗長ビットの生成回路と比較回路であるので、回路の設置面積を狭く抑えることができる。
【００１６】
（第１実装例）
図２は、本実施形態の実装例を示すものである。図２の情報処理回路１は、パリティエンコーダ１００と、ECCエンコーダ１０２と、メモリ１２０と、パリティデコーダ１４０と、ECCデコーダ１４２と、を備える。図に示される各バッファ回路（レジスタ回路）は、入力データDataに対する入出力のタイミング、例えば、データを読み書きする同期のタイミングを調節するものであり、状況に応じて増減させることが可能である。バッファについては、以降の図においても同様である。
【００１７】
図１の各構成要素と比較すると、パリティエンコーダ１００及びECCエンコーダ１０２が格納データ生成回路１０に備えられ、メモリ１２０が記憶回路１２に備えられ、パリティデコーダ１４０及びECCデコーダ１４２が比較データ生成回路１４に備えられ、その他論理和回路等がデータ比較回路１６に備えられる。情報処理回路１への入力は、入力データData、アドレスデータAddr、チップエネーブル信号CE、ライトエネーブル信号WEが示されているがこの他に必要な情報があれば入力されてもよいし、各エネーブル信号が不要であれば、適宜省略してもよい。
【００１８】
本実装例では、メモリ１２０には、ワード単位で入力データDataが格納される。パリティエンコーダ１００は、パリティビットを生成する回路である。パリティエンコーダ１００は、アドレスデータAddrが入力されると、当該アドレスデータのパリティを出力する。パリティは、例えば、偶パリティでも奇パリティでもよく、アドレスデータAddrから一意的に変換されるものであればよい。
【００１９】
ECCエンコーダ１０２は、誤り訂正符号を生成する回路である。ECCエンコーダ１０２は、入力データDataのECCを出力する。ECCの方式は、特に限定されるものではなく、例えば、誤り検出を目的としたパリティ符号、又は、誤り訂正を目的としたハミング符号、畳み込み符号等、任意の手法でもよい。例えば、パリティ符号である場合、パリティエンコーダ１００を第１パリティビット生成回路とし、ECCエンコーダ１０２は、入力データDataのパリティを生成する第２パリティビット生成回路であってもよい。
【００２０】
図３は、メモリ１２０に格納されるデータの一例を示す図である。先頭の0は、データの開始点を示すものであり、本実施形態において特に重要なデータではない。Pは、パリティビットを示す。ECCは、誤り訂正符号を示す。データ列の最後に、入力データDataが格納される。
【００２１】
Wは、ライトフラグを示す。なお、図３のライトフラグは２ビットであり、パリティ、ECCの冗長ビットの前後に１ビットずつ備えられている。ライトフラグは、例えば、0で初期化されており、書き込みされるタイミングで1が立てられる。格納データ生成回路１０は、ライトフラグ設定回路を別途備えていてもよい。
【００２２】
ライトフラグの初期化は、例えば、情報処理回路１の起動時に実行されてもよいし、所定又は任意のタイミングで実行されてもよい。この初期化は、メモリ１２０内の全てのビットを0に初期化することにより実行されてもよい。別の例として、メモリ１２０内のライトフラグを選択的に0で初期化してもよい。また、別途備えられたライトフラグ設定回路がライトフラグの初期化を実行してもよいし、ライトフラグ初期化回路がさらに備えられていてもよい。
【００２３】
なお、このデータの並びは、飽くまで一例として述べたものであり、適切に上記のデータが格納されるものであれば図３に示したものに限られない。
【００２４】
メモリ１２０は、記憶回路１２に備えられるデータを格納する回路である。パリティデコーダ１４０は、メモリ１２０から読み出したデータのパリティビットPの値と、読み出したデータから算出したパリティの値とを比較する。
【００２５】
ECCデコーダ１４２は、メモリ１２０から読み出したデータの誤り訂正符号ECCと、読み出したデータから算出した誤り訂正符号とを比較する。ECCデコーダ１４２は、ECCエンコーダ１０２と同じ方式、手法によりデータを生成して、比較をする。
【００２６】
パリティデコーダ１４０及びECCデコーダ１４２は、例えば、各々が比較した値が等しければ0を出力し、異なれば1を出力する。このような回路は、一例として、排他的論理和回路を備えて実装されてもよい。なお、比較データ生成回路１４として、これらのデコーダが比較の一部までを実行する回路、すなわち、データ比較回路１６の一部の機能までをも実行する回路であってもよい。
【００２７】
論理積回路１６０は、冗長ビットから、ライトフラグWの論理積を算出する。算出された値は、ライトフラグWの全てが1である場合に1となり、いずれかのライトフラグWが0である場合に0となる。すなわち、論理積回路１６０は、格納されているデータにおいてライトフラグWが正常に立てられているか否かを判断可能な値を出力する。
【００２８】
論理和回路１６２は、パリティデコーダ１４０及びECCデコーダ１４２の出力値の論理和を算出する。算出された値は、例えば、デコーダにおいて、エラーが検出された場合には1となり、エラーが検出されない場合には0となる。
【００２９】
論理積回路１６４は、論理積回路１６０及び論理和回路１６２の出力との論理積を算出する。すなわち、論理積回路１６４は、ライトフラグWが正常に立てられている状態において、パリティとECCとが正常に読み書きされなかった場合に1を出力し、それ以外の場合には0を出力する。例えば、書き込み自体が正常に行われている状態で、データの書き込みに異常がある場合、あるいは、宇宙線等の影響によりメモリ１２０のビット値が反転している場合、論理積回路１６４から1が出力される。この論理積回路１６４の出力により、書き込み、読み込みが正常に行われたか否かを判断することが可能となる。情報処理回路１は、この論理積回路１６４の出力を１ビット故障検知アラームとして出力する。
【００３０】
なお、パリティデコーダ１４０及びECCデコーダ１４２の出力は、別途、情報処理回路１から２ビット故障検知アラームとして出力されてもよい。論理積回路１６４の出力において異常が認められた場合に、アドレスデータに異常があるのか、入力データの格納に異常があるのかを判断することが可能となる。このように、情報処理回路１は、例えば、読み出したデータDataとともに、１ビット故障検知アラーム及び２ビット故障検知アラームを出力する。
【００３１】
（第２実装例）
図４は、本実施形態の別の実装例を示すものである。図４の情報処理回路１は、パリティエンコーダ１００、１１０と、メモリ１２０と、パリティデコーダ１４０、１５０と、を備える。
【００３２】
本実装例では、メモリ１２０には、例えば、バイト単位で入力データDataが格納される。例えば、バイト単位で入力データDataのパリティビットを算出し、バイト単位のデータと当該パリティビットとを併せて格納する。そして、読み出す場合には、バイト単位でアクセスされる。
【００３３】
このため、パリティエンコーダ１１０は、バイト単位でデータを処理するために複数備えられていてもよい。この場合、複数のパリティエンコーダ１１０はそれぞれ、あらかじめ決められたバイト単位に分割された入力データDataのパリティビットを生成し、データに付与して格納データを生成する。
【００３４】
図５は本実装例における格納データの一例を示す図である。第１実装例と同様に、Wはライトフラグ、Pはアドレスデータのパリティビットを示す。
【００３５】
ライトフラグW、パリティビットPに続けて、入力データDataがバイト単位に格納される。バイト単位のデータのそれぞれに、パリティエンコーダ１１０により生成されたパリティビットが付加される。例えば、最初のバイトにおいては、第１データData1と第１パリティビットP1が付加され、格納される。同様に、Data2とP2、・・・、として、バイト単位のデータとパリティビットがセットで生成され、メモリ１２０に格納される。
【００３６】
パリティデコーダ１５０は、バイト単位でデータを処理するために複数備えられていてもよい。複数のパリティデコーダ１５０はそれぞれ、あらかじめ決められたバイト単位のデータのパリティビットを生成し、データに付与されているパリティビットと比較する。パリティデコーダ１５０は、例えば、第１データData1から生成したパリティビットと、メモリ１２０に格納されている第１パリティビットP1とを比較し、一致する場合には0、一致しない場合には1を出力する。
【００３７】
論理和回路１７０は、パリティデコーダ１４０、１５０からの出力の論理和を算出する。すなわち、論理和回路１７０は、アドレスデータのパリティ及び入力データのパリティにおいて一致しない箇所がある場合には1を出力し、全てのパリティが一致する場合には0を出力する。
【００３８】
このように、入力データDataをバイト単位で記憶する場合にも、同様の効果を得ることが可能である。
【００３９】
（第３実装例）
図２及び図４の構成に誤り訂正回路をさらに備えていてもよい。図２において、誤り訂正回路は、ECCデコーダ１４２の誤り訂正符号ECCと、メモリ１２０の冗長ビットとから、誤り訂正を実行する。
【００４０】
図４において、例えば、第２実装例において、パリティエンコーダ１１０は、バイトごとに水平パリティを求めるとともに、８バイトごとに垂直パリティを求めておいてもよい。誤り訂正回路は、パリティデコーダ１５０が生成したバイトごとの水平パリティと、８バイトごとの垂直パリティとに基づいて、１ビットの誤り訂正を実行する。
【００４１】
誤り訂正回路を備える場合、情報処理回路１は、エラー情報の出力とともに、誤り訂正を実行した後のデータを出力してもよい。
【００４２】
（第４実装例）
エンコード時に生成された冗長ビット又は格納データの一部のビットを反転させる、エラー注入回路を備えていてもよい。ビットを反転させてエラーを注入した場合、エラーが正常に検出できているかをテストすることができる。
【００４３】
例えば、エラー注入回路が反転させたビットの情報を読み取り側に通知し、当該反転したビットを含むデータに対して各種デコーダにより誤り検出をすることにより、埋め込んだエラーが正常に検知できているか否かを判断することが可能となる。このように、エラー注入回路を備えることにより、エラー検出テストをも実行することが可能となる。
【００４４】
各実装例による実施形態は、情報処理回路１が、データの書き込み、読み出し時においてエラー検出等をするものであるが、これには限られない。例えば、工場出荷時、メンテナンス時、起動時、又は、所定時間ごと等にテストを実行する実装としてもよい。
【００４５】
図６は、テスト機能を備える情報処理回路１の一例を示すブロック図である。図６の情報処理回路１は、図１の構成の他、さらに、メモリアクセス制御回路１８を備える。また、さらに、ライトフラグマスク回路２０を備えてもよい。
【００４６】
メモリアクセス制御回路１８は、例えば、BIST（Built-In Self Test、LBISTを含む）を備え、情報処理回路１に外部から入力されるデータについて、メモリアクセスを制御する。メモリアクセス制御回路１８は、記憶回路１２において指定のアドレスへの書き込みがされたことを確認して次のアドレスへの書き込みを制御してもよい。また、データ比較回路１６が比較した結果を受信し、その後に次のアドレスへの書き込みを行う制御をしてもよい。さらには、記憶回路１２に書き込まれた値又はデータ比較回路１６からの出力を受信し、情報処理回路１の入出力信号が整合性を保っているかを確認してもよい。
【００４７】
データ比較回路１６は、例えば、ワード単位又はバイト単位での比較結果を都度出力してもよいし、記憶回路１２における記憶領域の全て又は一部においてテストが終了した後に確認結果を出力してもよい。エラーを検出した場合には、比較結果とともに、エラーが発生したアドレスを出力してもよい。
【００４８】
本実施形態において、情報処理回路１には、テストデータが入力される。情報処理回路１は、テストデータのメモリへの書き込み及び読み出しを交互に行う。テストデータ及びテストデータから生成した冗長ビットのいずれもが正常に書き込まれているか否かを確認する。このテストデータは、乱数により生成されてものでもよいし、"0xAA"、"0x55"、"0xDEADBEEF"等のマジックナンバーであってもよい。あるいは、過去の起動時に取得した実際のデータを用いてもよい。
【００４９】
メモリアクセス制御回路１８は、情報処理回路１に入力されたテストデータに対して記憶回路１２のアクセスを制御する。メモリアクセス制御回路１８は、記憶回路１２における全てのメモリ領域、又は、ターゲットとした一部のメモリ領域に対して制御してもよい。例えば、全てのメモリ領域に対して順番にワード単位のテストデータの書き込み及び読み出しの制御をしてテストを実行する。順番は、昇順、降順又は乱数で決定された順番であってもよい。あるいは、外部から指定されるテストの対象となる領域に対して、メモリアクセス制御回路１８がテストを実行してもよい。
【００５０】
メモリアクセス制御回路１８は、記憶回路１２の当該アドレスを参照し、又は、データ比較回路１６が出力したタイミングで、次のアドレスに対する制御を行う。このように、全て又は指定の一部の記憶領域において、書き込み、読み込みが正常に行われているか、及び、故障検知回路が正常に機能しているか、のテストを実行する。
【００５１】
情報処理回路１は、さらに、ライトフラグマスク回路２０を備えてもよい。ライトフラグマスク回路２０は、記憶回路１２の記憶領域において、ライトフラグを、例えば0に初期化する。このようなライトフラグマスク回路２０を備えることにより、例えば、ワード単位のみで書き込みが正常に実行されていることを判断することも可能である。
【００５２】
情報処理回路１の主機能と、上記のテスト機能とは、外部から入力される故障診断制御信号で切り替えることが可能な構成としてもよい。
【００５３】
（第５実装例）
図７は、メモリアクセス制御回路１８の実装の一例を示す図である。情報処理回路１は、例えば、さらにデータ処理メモリアクセス制御回路２２を備える。データ処理メモリアクセス制御回路２２は、情報処理回路１の入力を受け付ける回路であり、入力データData、アドレスデータAddr等の制御を行う。この入力に対し、メモリアクセス制御回路１８がメモリへのアクセスを制御することにより、上記の機能を発揮することが可能となる。
【００５４】
以上のように、全ての実施形態によれば、記憶回路１２、より具体的にはメモリ１２０の回路において実際のロジックを変更できない場合においても、メモリ領域を２分割等すること無く故障検知機能を付加することが可能となる。このことより、消費電力及び実装面積を削減するとともに、故障検知における論理合成のタイミング問題を生じるリスクを低減することが可能となる。また、アドレスデータから別途パリティを生成するため、記憶回路１２におけるデータの故障と、アドレスデコーダの故障とを独立して判定することができる。さらに、ライトフラグにより、書き込みよりも読み出しが先行し、データの読み捨てを行う場合においても、メモリを初期化せずに使用することが可能となる。さらに、メモリアクセス制御回路１８等を備えることにより、メモリ初期判断を冗長に実施することも可能となる。
【００５５】
前述の全ての実施形態は、その全部又は一部の機能が、アナログ回路により実装されてもよいし、FPGA（Field-Programmable Gate Array）等のプログラマブル論理回路により実装されてもよい。また、少なくとも一部の機能において、ソフトウェアによる情報処理がハードウェア資源により具体的に実現されるものであってもよい。
【００５６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５７】
１：情報処理回路、
１０：格納データ生成回路、１２：記憶回路、１４：比較データ生成回路、１６：データ比較回路、１８：メモリアクセス制御回路、２０：ライトフラグマスク回路、２２：データ処理メモリアクセス制御回路、
１００、１１０：パリティエンコーダ、１０２：ECCエンコーダ、１２０：メモリ、１４０、１５０：パリティデコーダ、１４２：ECCデコーダ、１６０、１６４：論理積回路、１６２、１７０：論理和回路
【図１】
2020194357.tif 000003
【図２】
2020194357.tif 000004
【図３】
2020194357.tif 000005
【図４】
2020194357.tif 000006
【図５】
2020194357.tif 000007
【図６】
2020194357.tif 000008
【図７】
2020194357.tif 000009