JP2004038541A - Memory check system, memory check method, signal processor, memory check method of signal processor, and memory check program - Google Patents
Memory check system, memory check method, signal processor, memory check method of signal processor, and memory check program Download PDFInfo
- Publication number
- JP2004038541A JP2004038541A JP2002194452A JP2002194452A JP2004038541A JP 2004038541 A JP2004038541 A JP 2004038541A JP 2002194452 A JP2002194452 A JP 2002194452A JP 2002194452 A JP2002194452 A JP 2002194452A JP 2004038541 A JP2004038541 A JP 2004038541A
- Authority
- JP
- Japan
- Prior art keywords
- parity
- program
- memory
- check
- check program
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
この発明は、メモリに記憶されたデータやプログラムのチェックを行うメモリチェックシステム、メモリチェック装置および方法、ならびに、メモリチェックプログラムに関する。
【0002】
【従来の技術】
従来から、例えばディジタルフィルタを用いた信号処理を行うために、DSP(Digital Signal Processor)が多く用いられている。DSPは、ROM(Read Only Memory)やRAM(Random Access Memory)に記憶されたプログラム(インストラクション)や係数データに基づき、加減乗除を行う演算器を構成し、入力されたディジタル信号に対して信号処理を行うようにされている。特に、RAMにプログラムや係数データを記憶するタイプのDSPは、RAMの記憶内容を書き換えることでDSPの機能をフレキシブルに変更することができるので、近年では需要が非常に多い。このようなDSPでは、例えば、DSPを制御するマイクロコンピュータなどから、インストラクションのデータや係数データをダウンロードし、RAMに記憶させるのが一般的である。
【0003】
DSPは、プログラムコードが記憶されるインストラクションRAMと、係数データが記憶される係数RAMとを有し、これらがバスにより接続される。また、RAMは、インストラクションRAMと係数RAM、さらに、係数RAMは、例えばX係数データを格納するRAMおよびY係数データを格納するRAMがそれぞれ物理的に独立され、各RAMに接続されるバスも、それぞれ物理的に独立した構成とされる。
【0004】
これにより、DSPでは、各RAMのデータの読み出しや書き込みを並列的に行うことができ、例えばX係数およびY係数をRAMから読み込んで演算処理し、演算結果をRAMに一旦記憶させる、といったような一連の処理を、一つのコマンドで実行することができる。一方、CPU(Central Processing Unit)を用いた構成では、CPUとRAMとが1本のバスで接続されるのが一般的とされ、上述の処理を行うために、各係数データ読み出し、演算処理、演算処理結果のRAMへの格納などのそれぞれの処理に応じた複数のコマンドが必要とされる。したがって、DSPは、CPUに比べ、積和演算を中心とした処理に対して高速に動作することができる。
【0005】
RAMに格納されたデータは、静電気やノイズなどの影響で部分的に破壊される可能性がある。また、RAMにデータを書き込む際にタイミングが合わないなど、書き込み途中にエラーが発生した場合、誤ったデータが格納されてしまうことになる。また、プログラム自体にバグがあり、プログラム実行中にRAMの領域を壊してしまうことも起こり得る。DSPのプログラムや係数データをRAMに格納してDSPを用いる場合、RAMに格納された内容にエラーがあると、DSPが期待される動作をしないばかりか、DSPが暴走してしまうおそれがある。
【0006】
【発明が解決しようとする課題】
そこで、従来から、DSPの暴走を検出したり、RAMに格納された内容をチェックする方法が幾つか考えられてきた。一例として、ある一定周期毎にプログラムカウンタをリセットすることにより、プログラムの異常ループや暴走を検出するウォッチドッグタイマが知られている。これによれば、例えばプログラムの実行箇所を示すプログラムカウンタが異常を来しているようなときに、これを検出することができる。
【0007】
また、他の例として、特開平5−313908号公報には、外部メモリに予め実行用プログラムの異常を検出するためのプログラム異常検出用プログラムを格納しておき、このプログラム異常検出用プログラムを用いてRAM上の誤りを検出する方法が開示されている。プログラム異常検出用プログラムを実行用プログラムと共に外部メモリからRAMにダウンロードする。このプログラム異常検出用プログラムにより、RAM上の実行用プログラムおよびプログラム異常検出用プログラムの異常の有無を調べ、異常が検出された実行用プログラムやプログラム異常検出用プログラムを修正する。
【0008】
プログラム異常検出用プログラムは、例えばRAMに格納されたプログラムデータや係数データに対してチェックサムやXORなどを求め、求められた値と予め用意された正しいチェックサム値やXOR結果といったチェックコードとを比較することにより、プログラムやデータの検査を行う。
【0009】
しかしながら、この方法では、RAMのアドレス単位でアクセスを行い、RAMに記憶されたデータを読み出した後、読み出されたデータを誤り検出のプログラムや誤り検出手段に転送して誤りを検出しているため、CPUやDSPの処理能力の向上に伴い大量のデータやプログラムコードを容易に処理可能となった場合、チェックしなければならないRAMの容量が増大し、チェック時間に非常に多くの時間を費やさねばならないという問題点があった。
【0010】
また、この方法では、プログラムの異常を検出するためのプログラム異常検出用プログラムおよびチェックコードと、検出の対象となる実行用プログラムおよび係数データとが同一のRAM上に存在する。そのため、静電気などの影響で、RAMに記憶されたプログラム異常検出用プログラムおよびチェックコードそのものや、これらと共に実行用プログラムおよび係数データが破壊されてしまう可能性があるという問題点があった。
【0011】
さらに他の例として、特開2000−339230号公報には、DMA(Direct Memory Access)を用いてRAM上の記憶情報を誤り検出手段に直接的に転送して、RAMに記憶された内容に誤りが含まれるか否かを判定する方法が開示されている。この方法によれば、RAMに格納されたプログラムデータのみならず、RAMに格納された係数データなどの誤り検出も可能とされる。そのため、RAMに格納されたデータに基づき動作するDSPやCPUが暴走に至らないようなデータ誤りも検出することができる。
【0012】
また、この特開2000−339230号公報の方法によれば、RAMに格納されたプログラムデータや係数データなどの誤りを検出する際に、検出のためのプログラムをCPU上で実行させる必要が無いため、データ誤り検出を考慮してCPUの処理能力を多めに見積もる必要が無いという利点がある。また、誤り検出手段をRAMとは別に有するため、RAM内容が破壊されても、誤り検出自体は問題なく行われる。
【0013】
しかしながら、この方法でも、上述したような、RAM容量の増大に伴いチェック時間が増加してしまうという問題点があった。
【0014】
したがって、この発明の目的は、RAMに格納されたプログラムデータや係数データのチェックおよび修正を、高速且つ正確に行うことができるメモリチェックシステム、メモリチェック装置および方法、ならびに、メモリチェックプログラムを提供することにある。
【0015】
【課題を解決するための手段】
この発明は、上述した課題を解決するために、書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置の書き換え可能なメモリの内容をチェックするメモリチェックシステムにおいて、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と、ホスト装置と接続され、ホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリを有し、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理装置とを備え、信号処理装置では、書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、パリティ演算の結果に基づいた検出コードを出力するようにしたことを特徴とするメモリチェックシステムである。
【0016】
また、この発明は、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と接続され、ホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリを有し、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理装置の書き換え可能なメモリの内容をチェックするメモリチェック方法において、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、パリティ演算のステップによるパリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップとを有することを特徴とするメモリチェック方法である。
【0017】
また、この発明は、書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置において、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリと、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理手段とを備え、書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、パリティ演算の結果に基づいた検出コードを出力するようにしたことを特徴とする信号処理装置である。
【0018】
また、この発明は、書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置のメモリチェック方法において、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、パリティ演算のステップによるパリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップとを有することを特徴とする信号処理装置のメモリチェック方法である。
【0019】
また、この発明は、書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置の書き換え可能なメモリに対するメモリチェックを実行させるメモリチェックプログラムにおいて、実行用プログラムと、パリティ演算によりメモリをチェックするメモリチェックプログラムと、実行用プログラムおよびメモリチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが書き換え可能なメモリに格納され、書き換え可能なメモリ上の実行用プログラムおよびメモリチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、パリティ演算のステップによるパリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップとを有することを特徴とするメモリチェックプログラムである。
【0020】
上述したように、請求項1および7に記載の発明は、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と、ホスト装置と接続され、ホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリを有し、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理装置とを備え、信号処理装置では、書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、パリティ演算の結果に基づいた検出コードを出力するようにしているため、メモリチェックに要する時間が短縮されると共に、実行用プログラムのチェックとパリティチェックプログラム自身のチェックとを交互に行うことができる。
【0021】
また、請求項8および13に記載の発明は、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリと、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理手段とを備え、書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、パリティ演算の結果に基づいた検出コードを出力するようにしているため、メモリチェックに要する時間が短縮されると共に、実行用プログラムのチェックとパリティチェックプログラム自身のチェックとを交互に行うことができる。
【0022】
また、請求項14に記載の発明によるメモリチェックプログラムは、実行用プログラムと、パリティ演算によりメモリをチェックするメモリチェックプログラムと、実行用プログラムおよびメモリチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが書き換え可能なメモリに格納され、書き換え可能なメモリ上の実行用プログラムおよびメモリチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、パリティ演算のステップによるパリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップとを有するため、メモリチェックに要する時間が短縮されると共に、実行用プログラムのチェックと自分自身のチェックとを交互に行うことができる。
【0023】
【発明の実施の形態】
以下、この発明の実施の一形態について説明する。この発明では、DSP(Digital Signal Processor)で用いられる実行用プログラムや係数データを、ホストとなるマイクロコンピュータ(以下、ホストマイコンと称する)が有するメモリからDSPのRAM(Random Access Memory)にダウンロードし、DSPが有するRAMに格納するようにした構成において、ダウンロードされDSPのRAMに格納された実行用プログラムおよびデータをパリティ演算によりチェックするパリティチェックプログラムを、DSP実行用プログラムおよびデータと共にDSPのRAMにダウンロードおよび格納し、DSP側で、ダウンロードされたパリティチェックプログラムを用いてRAMに格納された実行用プログラムおよび係数データ、ならびに、パリティチェックプログラム自身のチェックを行う。
【0024】
このとき、この発明によれば、RAMに格納された実行用プログラムおよびパリティチェックプログラムに対するパリティチェックプログラムによるチェックは、RAMの単位アドレスの複数のサイズからなるブロック毎に行われる。
【0025】
実行用プログラムおよび係数データ、ならびに、パリティチェックプログラムのチェックが所定サイズのブロック単位で行われるため、チェックに要する時間を短縮できる。また、パリティチェックプログラム自身のチェックもブロック単位で行うため、RAMに格納された実行用プログラムおよび係数データとパリティチェックプログラムとを、ブロック毎に交互にチェックすることができる。これにより、パリティチェックプログラム自身が正常か否かを常にチェックすることができる。
【0026】
さらに、この発明では、ホストマイコン側のメモリに格納されているチェックプログラムを用いて、DSP側にダウンロードされRAMに格納された実行用プログラムおよび係数データ、ならびに、チェックプログラムのチェックを所定サイズのブロック単位で行うようにしている。チェックをDSP側およびホストマイコン側の双方で行うため、チェックに用いるチェックコードと、チェックプログラムとの何方が正常でないかを判断することができる。
【0027】
図1は、この発明の実施の一形態に適用可能なDSPシステムの一例の構成を概略的に示す。ホストマイコン1は、例えば、CPU10およびRAMおよび/またはROM(Read Only Memory)によるメモリ11を有する、マイクロコンピュータである。DSP2は、RAM20を有し、RAM20に格納された実行用プログラムや係数データに基づき動作する。DSP2の実行用プログラムは、DSP2が解読可能なインストラクションコードによって記述される。
【0028】
ホストマイコン1とDSP2とがアドレスバス3およびデータバス4で接続される。例えばホストマイコン1からDSP2に対して、DSP2の動作を指示するコマンドなどがバス3、4を介して送信され、ホストマイコン1によりDSP2が制御される。
【0029】
ホストマイコン1のメモリ11には、DSP2の実行用プログラムであるDSPプログラム12や係数データ(図示しない)などが予め格納される。このホストマイコン1のメモリ11に格納されるDSPプログラムも、上述したインストラクションコードを用いて記述される。以下では、DSPプログラムおよび当該DSPプログラムで用いられる係数データを、まとめてDSPプログラムと称する。
【0030】
ホストマイコン1からDSP2に対してDSPプログラムがアップロードされ、DSP2のRAM20に格納される。例えば、ホストマイコン1からDSP2に対して、アドレスバス3を介してRAM20のアドレスが指定される。ホストマイコン1からDSP2に対して、データバス4を介してDSPプログラムがアップロードされる。アップロードされたDSPプログラムは、アドレスバス3を用いて指定されたアドレスに基づきRAM20に書き込まれる。
【0031】
DSP2は、ホストマイコン1からダウンロードされたDSPプログラムに従った動作を行う。ホストマイコン1からDSP2にアップロードされるDSPプログラムの内容を変更することで、DSP2に異なる処理を行わせることができる。
【0032】
さらに、ホストマイコン1のメモリ11には、DSP2にアップロードされRAM20に格納されたDSPプログラム12のパリティチェックを行うためのパリティチェックプログラム13と、メモリ11に格納されたDSPプログラム12およびパリティチェックプログラム13に対してパリティチェックプログラム13を用いて予めパリティ演算を行った結果であるパリティコード14とが格納される。パリティチェックプログラム13は、DSP2において実行可能なように、上述したインストラクションコードで記述される。これらパリティチェックプログラム13およびパリティコード14は、上述のDSPプログラム12と共に、ホストマイコン1からDSP2にアップロードされ、RAM20に格納される。
【0033】
図2は、RAM20における一例のデータ配置を示す。図2の例では、RAM20が64kB(キロバイト)の容量を有しており、アドレスが「0x0000」乃至「0x10000」で指定される。なお、アドレスの記述において、「0x」は、記述が16進表記であることを示す。アドレス「0x0400」乃至「0xAFFF」は、DSPプログラム23が格納される。アドレス「0xB000」乃至「0xFFFF」は、バッファ領域24である。バッファ領域24は、DSP2においてDSPプログラム23が動作する際に用いられる領域であって、DSPプログラムの実行に伴い内容が変化される。
【0034】
アドレス「0x0000」乃至「0x02FF」は、パリティコード21が格納される。アドレス「0x0300」乃至「0x03FF」は、パリティチェックプログラム22が格納される。パリティコード21は、RAM20における、バッファ領域24を除く全ての領域のデータに対するパリティコードとなる。すなわち、パリティコード21は、RAM20のバッファ領域24を除く全ての領域のデータに対して、パリティチェックプログラム22を用いて予めパリティ演算を行った結果に対応する。バッファ領域24は、上述したようにDSPプログラムの実行に伴い内容が変化されるため、パリティが確定しない。
【0035】
なお、RAM20の容量は、64kBに限定されるものではなく、この図2に示されるアドレス配置も、一例であって、この例に限定されるものではない。
【0036】
この発明では、パリティチェックプログラム22によるパリティチェック演算を、所定サイズのブロックを単位として、1ブロック毎に行う。例えば、RAM20における単位アドレスが複数集合したサイズで1ブロックが構成される。一例として、パリティチェックプログラム22が格納される領域に対応するサイズのブロックを1単位ブロックとする。RAM20の容量が64kBであって、パリティチェックプログラム22がアドレス幅「0x0100」を有するこの例では、アドレス幅「0x0100」に対応する、サイズが256バイトのブロックが1単位ブロックとされる。したがって、図2の例では、パリティコード21が3ブロック、DSPプログラム23が172ブロックでそれぞれ構成されることになる。
【0037】
パリティチェックプログラム22によるパリティチェック演算は、このサイズが256バイトの1ブロックを単位として、1ブロック毎に行われる。予め計算されRAM20に格納されるパリティコード21も、DSPプログラム23およびパリティチェックプログラム22がこの1ブロックを単位としてパリティ演算されたものである。RAM20に対して所定にアドレスを指定することで、パリティコード21から、ブロック単位のパリティ演算に対応するパリティコードを取り出すことができるようにされている。
【0038】
なお、上述では、ブロックのサイズがパリティチェックプログラム22のサイズと同一であるように説明したが、これはこの例に限定されない。ブロックのサイズは、RAM20のアドレス指定の単位で任意に設定することができる。例えば、パリティチェックプログラム22が複数のブロックに格納されるようなブロックサイズとしてもよい。これに限らず、例えば、アドレス指定の最小単位、例えば図2における1行をブロックとすることも可能である。
【0039】
次に、この発明の実施の一形態によるパリティチェックの動作について、図3を用いて説明する。パリティチェックに先立って、ホストマイコン1からDSP2に対して、プログラムチェック開始コマンドが発行される。そして、ホストマイコン1からDSP2に対して、チェックを行いたいブロックが指示される。例えば、チェックを行いたいブロックのRAM20における先頭アドレスがホストマイコン1により指示される。DSP2では、この指示に基づきチェックを行うブロックが確認される。ブロックが確認されたら、RAM20に格納されるパリティチェックプログラム22が実行され、指定されたブロックに対するパリティチェックが実行される。
【0040】
なお、パリティチェックは、様々な方法により行うことが可能である。例えば、偶数パリティや奇数パリティといった単純パリティを用いてパリティチェックを行うことが考えられる。パリティチェックプログラム22により単純パリティ演算を行い、演算結果をブロック毎に積算した値を出力する。これに限らず、パリティチェックをXOR(Exclusive OR)を用いて行うこともできる。ブロックのデータに対して、予め用意された所定のビット列を用いてXORを求める。XORによるチェックは、より高速に処理を行うことができる利点がある。また、パリティチェック方法としてCRC(cyclic redundancy check)を用いることもできる。
【0041】
一例として、パリティチェックプログラム22によりDSPプログラム23の4ブロック目のパリティチェックを行うものとする。先ず、パリティチェックプログラム22により、DSPプログラム23の4ブロック目のパリティ演算が行われ、パリティ演算結果41が得られる。続いてRAM20から、パリティコード21のうち、パリティチェック対象である、DSPプログラム23の4ブロック目のパリティ演算結果に対応するパリティコード40が取り出される。この取り出されたパリティコード40とパリティ演算結果41とが比較処理42により比較される。
【0042】
若し、比較処理42によるパリティコード40およびパリティ演算結果41の比較の結果、両者が同一の値を示しているとされた場合には、判断処理43により、RAM20上のDSPプログラム23の4ブロック目には誤りが無かったと判断され、その旨を示す正解固定値44がレジスタ46にセットされる。例えばRAM20のバッファ領域24内の所定領域をレジスタ46として用いることができる。
【0043】
一方、比較処理42によるパリティコード40およびパリティ演算結果41の比較の結果、両者が異なる値であるとされた場合には、判断処理43により、パリティコード40および/またはパリティ演算結果41に誤りが存在すると判断され、パリティチェックプログラム22によるパリティ演算結果41がレジスタ46にセットされる。
【0044】
すなわち、レジスタ46には、パリティチェックプログラム22のパリティ演算結果41に基づき、パリティチェックの対象となるブロック(この例では、DSPプログラム23の4ブロック目)に誤りが無いと判断されれば正解固定値44がセットされ、誤りがあると判断されれば、誤りがあると判断された当該パリティ演算の演算結果41そのものがレジスタ46にセットされる。
【0045】
DSPプログラム23の1ブロック分のパリティチェックが終了すると、次に、RAM20に格納されたパリティチェックプログラム22に対するパリティチェックが行われる。パリティチェックプログラム22により、パリティチェックプログラム22が格納されているブロック(この例ではアドレス「0x0300」乃至「0x03FF」のブロック)を対象に、パリティ演算を行なわれ、パリティ演算結果31が得られる。続いてRAM20から、パリティコード21のうち、パリティチェックプログラム22のパリティ演算結果に対応するパリティコード30が取り出される。この取り出されたパリティコード30とパリティ演算結果31とが比較処理32により比較される。
【0046】
若し、比較処理32によるパリティコード30およびパリティ演算結果31の比較の結果、両者が同一の値を示ている場合には、判断処理33によりRAM20上のパリティチェックプログラム22には誤りが無かったと判断され、その旨を示す正解固定値34がレジスタ36にセットされる。例えばRAM20のバッファ領域24の、上述したレジスタ46として用いられた領域とは異なる領域がレジスタ36として用いられる。
【0047】
一方、比較処理32によるパリティコード30およびパリティ演算結果31の比較の結果、両者が異なる値であるとされた場合には、判断処理43により、パリティコード30および/またはパリティ演算結果31に誤りが存在すると判断され、パリティチェックプログラム22によるパリティ演算結果31がレジスタ36にセットされる。
【0048】
すなわち、レジスタ36には、上述のレジスタ46と同様に、パリティチェックプログラム22のパリティ演算結果31に基づき、パリティチェックの対象となるRAM20上のパリティチェックプログラム22に誤りが無いと判断されれば正解固定値34がセットされ、誤りがあると判断されれば、誤りがあると判断された当該パリティ演算のパリティ演算結果31そのものがセットされる。
【0049】
こうして、DSPプログラム23の4ブロック目およびパリティチェックプログラム22そのものの、それぞれ1ブロック分のパリティチェック処理が終了すると、DSP2からホストマイコン1に対して、パリティチェックが行われたブロックのRAM20におけるアドレスが通知される。
【0050】
ホストマイコン1により、DSP2から通知された、パリティチェックが行われたブロックのアドレスが受け取られると、DSP2のRAM20におけるレジスタ36および46にセットされたデータがホストマイコン1により取り込まれる。そして、取り込まれたレジスタ36および46のデータに基づき、RAM20にアップロードしたデータの修正が必要か否かの判断処理が行われる。データ修正が必要であると判断されれば、RAM20に対するデータの再アップロードが行われ、RAM20に格納されたデータが修正される。
【0051】
なお、正解固定値34および44は、パリティチェックプログラム22によるパリティ演算の演算結果と重複しない所定の値が用いられる。
【0052】
図4は、ホストマイコン1による、パリティチェック結果に基づく一例のデータ修正処理を示すフローチャートである。最初のステップS10で、DSP2から送信された、パリティチェックを行ったブロックのアドレスがホストマイコン1に受信される。次のステップS11で、ホストマイコン1により、レジスタ36にセットされた、パリティチェックプログラム22に対するパリティチェック結果が取り込まれる。
【0053】
ステップS12で、ステップS11でレジスタ36から取り込まれたパリティチェック結果が正解固定値34であるか否かが判断される。若し、レジスタ36から取り込まれた値が正解固定値34であると判断された場合には、RAM20に格納されたパリティチェックプログラム22およびパリティコード21には問題が無かったと判断され、処理はステップS13に移行する。
【0054】
一方、ステップS12でレジスタ36から取り込まれた値が正解固定値34ではないと判断されれば、処理はステップS16に移行される。ステップS16では、ホストマイコン1のメモリ11内のパリティコード14のうち、パリティチェックプログラム22、すなわちメモリ11内のパリティチェックプログラム13に対するパリティチェック結果に対応するパリティコードが取り出される。そして、ステップS17において、取り出されたパリティコードと、上述のステップS11によりレジスタ36から取り込まれた値とが一致しているか否かが判断される。
【0055】
若し、両者が一致していると判断されれば、RAM20内のパリティチェックプログラム22は正しいが、パリティコード21が誤っていると考えられる。すなわち、パリティチェックプログラム22に対するパリティ演算結果31が正しい値となっても、比較処理32で当該パリティ演算結果31と比較されるパリティコード30が誤った値であれば、当該パリティ演算結果31とパリティコード30とが一致せず、レジスタ36に正解固定値34がセットされない。このときには、レジスタ36に対してパリティチェックプログラム22に対する正しいパリティ演算結果がセットされることになる。
【0056】
この場合、処理はステップS18に移行し、ホストマイコン1のメモリ11に格納されるパリティコード14のうちパリティチェックプログラム22(パリティチェックプログラム13)に対するパリティ演算結果に対応するパリティコードが取り出され、DSP2に送信され再アップロードされる。再アップロードされたこのパリティコードは、上述のパリティコード30としてRAM20の対応する領域に書き込まれる。パリティコードの再アップロードが完了すると、処理はステップS15に移行される。
【0057】
なお、上述では、パリティコードの再アップロードに際して、メモリ11に格納されるパリティコード14のうち対応するデータだけを取り出し、DSP2に送信しているが、これはこの例に限定されない。メモリ11に格納されるパリティコード14のうち対応するデータを含むブロックを、ホストマイコン1からDSP2に送信してもよい。また、メモリ11に格納されるパリティコード14を全てDSP2に送信することもできる。
【0058】
ステップS15では、次のブロックに対するチェック処理が準備される。すなわち、ホストマイコン1からDSP2に対して、次にチェックを行うブロックのアドレスが通知される。例えば、この例では、RAM20におけるDSPプログラム23の5ブロック目のアドレスと、パリティチェックプログラム22のアドレスとがDSP2に対して通知される。
【0059】
アドレスが通知されると、DSP2において上述したようにして、RAM20における通知されたアドレスのブロックに対してパリティ演算が行われ、パリティ演算結果に基づきレジスタ36および46に正解固定値34、44やパリティ演算結果がセットされる。そして、ホストマイコン1では、処理はステップS10に移行され、レジスタ36および46にセットされた値に基づくチェック処理が行われる。
【0060】
この発明の実施の一形態では、このように、RAMに格納されたDSPプログラム23およびパリティチェックプログラム22に対するチェックを、ブロック単位で交互に行うようにしている。これにより、パリティチェックプログラム22を常に正常な状態に保ちながらDSPプログラム23に対するチェックを行うことができ、チェック結果の信頼性が向上される。
【0061】
一方、上述のステップS17で、両者が一致していないと判断された場合、RAM20上のパリティチェックプログラム22が誤っていると判断される。またこの場合、さらに、RAM20上のパリティチェックプログラム22と共にパリティコード30も誤っている可能性がある。そこで、処理はステップS19に移行し、ホストマイコン1のメモリ11内に格納されたパリティチェックプログラム13がDSP2に対して再アップロードされる。再アップロードされたこのパリティチェックプログラム13は、パリティチェックプログラム22としてRAM20に格納される。パリティチェックプログラムの再アップロードが完了されると、処理はステップS15に移行される。
【0062】
このパリティチェックプログラム22に対するパリティチェック処理は、DSPプログラム23に対して行われるパリティチェック処理に対して、ブロック毎に交互に実行される。したがって、上述のステップS19でパリティチェックプログラム22の再アップロードを行った後に、再び同様のチェック処理が再アップロードされたチェックプログラム22に対して実行されることになる。その際に、上述のステップS17の判断においてパリティコード30に誤りがあったか否かを判定することができる。
【0063】
上述したように、ステップS12において、レジスタ36から取り込まれた値が正解固定値34であると判断された場合、RAM20上のパリティチェックプログラム22には誤りが無いとされ、処理はステップS13に移行され、RAM20のDSPプログラム23に対するブロック単位での修正処理が行われる。
【0064】
ステップS13では、ホストマイコン1により、レジスタ46にセットされた、DSPプログラム23のチェック対象とされるブロック(DSPプログラムの4ブロック目とする)に対するパリティチェック結果が取り込まれる。次のステップS14で、ステップS13でレジスタ46から取り込まれたパリティチェック結果が正解固定値44であるか否かが判断される。若し、レジスタ46から取り込まれたチェック結果が正解固定値44であると判断された場合には、RAM20に格納されたDSPプログラム23の4ブロック目には問題が無かったと判断され、処理はステップS15に移行される。
【0065】
一方、ステップS14で、レジスタ46から取り込まれた値が正解固定値44ではないと判断されれば、処理はステップS20に移行される。ステップS20では、ホストマイコン1のメモリ11内のパリティコード14のうち、パリティ演算の対象であるDSPプログラム23の4ブロック目、すなわちメモリ11内のDSPプログラム12における対応ブロックに対するパリティコードが取り出される。そして、ステップS21において、取り出されたパリティコードと、上述のステップS13によりレジスタ46から取り込まれた値とが一致しているか否かが判断される。
【0066】
若し、両者が一致していると判断されれば、上述のパリティチェックプログラム22に対する判断の場合と同様にして、RAM20内のDSPプログラム23の4ブロック目は正しいが、パリティコード21が誤っていると考えられる。この場合、処理はステップS22に移行し、ホストマイコン1のメモリ11に格納されるパリティコードのうちDSPプログラム23の4ブロック目に対するパリティ演算結果に対応するパリティコードが取り出され、DSP2に再アップロードされる。再アップロードされたこのパリティコードは、上述のパリティコード40としてRAM20の対応する領域に書き込まれる。パリティコードの再アップロードが完了すると、処理はステップS15に移行される。
【0067】
一方、ステップS21で、両者が一致していないと判断された場合、パリティチェック対象であるDSPプログラム23の4ブロック目が誤っていると判断される。そこで、処理はステップS23に移行され、ホストマイコン1のメモリ11内に格納されたDSPプログラム12における、DSPプログラム23の4ブロック目に対応するブロックがDSP2に対して再アップロードされる。再アップロードされたこのブロックは、RAM20の対応する位置に書き込まれる。この際アップロード処理が完了されると、処理はステップS15に移行される。
【0068】
なお、図3および図4を用いて説明した、この発明の実施の一形態によるメモリチェックは、DSP2の起動時に行うことができる。例えば、ホストマイコン1からDSP2に対して処理開始が指示されてから、実際にDSP2における処理が開始されるまでの間に、一連のメモリチェック処理が行われる。これに限らず、DSP2の稼働中においてDSP2本来の処理が行われていないときに、メモリチェック処理を実行することもできる。また、メモリチェック処理は、DSP2の稼働中において実行可能なタイミングで随時行ってもよいし、DSP2の起動時などに1度だけ行ってもよい。さらに、DSP2の処理能力に余裕があれば、DSP2の動作中に本来の処理に対するバックグラウンドとして、常時、メモリチェック処理を行うようにしてもよい。
【0069】
さらにまた、一連のメモリチェック動作において、RAM20の全てのブロックに対してチェックを行う必要は無い。例えば、RAM20途中のブロックまでチェックを行った時点で一時的に処理を中断し、再びチェック可能となったときに、処理が中断されたブロックから再びチェック処理を再開するようにできる。
【0070】
上述では、この発明の実施の一形態によるメモリチェックがホストマイコン1およびDSP2で行われるように説明したが、これはこの例に限定されず、この発明に本質的な部分はDSP2側だけでも実現可能である。例えば、上述の図4において、データの再アップロード処理、すなわち、ステップS18、S19、S22およびS23の処理を除いた処理は、DSP2のみで実行可能である。パリティコードやパリティチェックプログラム、DSPプログラムの再アップロードは、DSPからホストマイコンに対して再アップロード要求を出すことで可能である。また、DSPのRAMに、同一のパリティコードを複数、格納することで、図4におけるステップS16およびS17、ならびに、ステップS20およびS21の、パリティチェックプログラムによるパリティ演算結果と、正しいパリティコードとを比較する処理を代用することが可能である。
【0071】
【発明の効果】
以上説明したように、この発明は、DSPのRAMに対するパリティチェックを、所定サイズのブロック毎に行うようにしているため、DSPとホストマイコンとの通信回数などが減少するため、チェック時間を短縮できる効果がある。
【0072】
また、DSPのRAMにアップロードしたDSPプログラムおよびパリティチェックプログラムについて、アップロードされたパリティチェックプログラムにより、RAMに格納されたパリティチェックプログラムに対するパリティチェックが行われる。このときには、パリティチェックプログラム自身に誤りが無いことが前提となる。したがって、DSPプログラムのパリティチェックを行う前に、パリティチェックプログラム自身のチェックを行う必要がある。
【0073】
この発明の実施の一形態では、パリティチェックをブロック単位で行うと共に、パリティチェックプログラムを1ブロックに収めるようにしているため、1回のパリティチェック処理でパリティチェックプログラム自身のチェックを終了できる。したがって、DSPプログラムのパリティチェックとパリティチェックプログラム自身のパリティチェックとを、ブロック単位で交互に行うことで、パリティチェックプログラム自身が正常か否かを常に確認できるという効果がある。
【0074】
またこれにより、DSPプログラムに対するパリティチェック結果と、パリティチェックプログラム自身に対するパリティチェック結果の2つのパリティチェック結果が確認できるので、DSPプログラムに誤りがあるのか、パリティチェックプログラム自身に誤りがあるのかが瞬時に判断できるという効果がある。
【0075】
さらに、この発明の実施の一形態では、パリティチェックの結果、パリティチェックプログラム自身に誤りがあるとされた場合に、当該パリティチェックによるパリティコードがそのまま出力されるため、ホストマイコン側で、アップロード元としてメモリに格納してあるデータを用いて再度チェックを行うことができる。このため、チェック対象のプログラムに誤りがあるのか、チェックにおいてパリティ演算結果との比較を行うパリティコードに誤りがあるのかを判断することができる効果がある。
【図面の簡単な説明】
【図1】この発明の実施の一形態に適用可能なDSPシステムの一例の構成を概略的に示す略線図である。
【図2】DSP内のRAMにおける一例のデータ配置を示す略線図である。
【図3】この発明の実施の一形態によるパリティチェックの動作について説明するための図である。
【図4】ホストマイコンによる、パリティチェック結果に基づく一例のデータ修正処理を示すフローチャートである。
【符号の説明】
1・・・ホストマイコン、2・・・DSP、11・・・メモリ、12・・・DSPプログラム、13・・・パリティチェックプログラム、14・・・パリティコード、20・・・RAM、21・・・パリティコード、22・・・パリティチェックプログラム、23・・・DSPプログラム、24・・・バッファ領域、30,40・・・パリティコード、31,41・・・パリティ演算結果、34,44・・・正解固定値、36,46・・・レジスタ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a memory check system, a memory check device and a method for checking data and a program stored in a memory, and a memory check program.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, for performing signal processing using a digital filter, for example, a DSP (Digital Signal Processor) has been widely used. The DSP constitutes an arithmetic unit that performs addition, subtraction, multiplication and division based on a program (instruction) and coefficient data stored in a ROM (Read Only Memory) or a RAM (Random Access Memory), and performs signal processing on an input digital signal. Is to do. In particular, a type of DSP that stores programs and coefficient data in a RAM can flexibly change the function of the DSP by rewriting the storage contents of the RAM. In such a DSP, for example, instruction data and coefficient data are generally downloaded from a microcomputer or the like that controls the DSP and stored in a RAM.
[0003]
The DSP has an instruction RAM for storing program codes and a coefficient RAM for storing coefficient data, and these are connected by a bus. The RAM is an instruction RAM and a coefficient RAM, and the coefficient RAM is, for example, a RAM for storing X coefficient data and a RAM for storing Y coefficient data, each of which is physically independent, and a bus connected to each RAM. Each has a physically independent configuration.
[0004]
This allows the DSP to read and write data from and to each RAM in parallel. For example, the DSP reads the X and Y coefficients from the RAM, performs arithmetic processing, and temporarily stores the arithmetic result in the RAM. A series of processes can be executed by one command. On the other hand, in a configuration using a CPU (Central Processing Unit), it is general that the CPU and the RAM are connected by a single bus, and in order to perform the above-described processing, each coefficient data is read, arithmetic processing, A plurality of commands are required according to each processing such as storing the result of the arithmetic processing in the RAM. Therefore, the DSP can operate at higher speed for processing centering on the product-sum operation than the CPU.
[0005]
Data stored in the RAM may be partially destroyed by the influence of static electricity or noise. In addition, if an error occurs during the writing, such as when the timing of writing data to the RAM does not match, incorrect data will be stored. Further, there is a possibility that the program itself has a bug and the RAM area is destroyed during the execution of the program. In the case where a DSP program and coefficient data are stored in the RAM and the DSP is used, if there is an error in the contents stored in the RAM, the DSP may not operate as expected, or the DSP may run away.
[0006]
[Problems to be solved by the invention]
Therefore, conventionally, several methods have been considered for detecting a runaway of the DSP and checking the contents stored in the RAM. As an example, a watchdog timer that detects an abnormal loop or runaway of a program by resetting a program counter every certain fixed period is known. According to this, for example, when the program counter indicating the execution position of the program is abnormal, this can be detected.
[0007]
As another example, in Japanese Patent Application Laid-Open No. Hei 5-313908, a program abnormality detection program for detecting an abnormality of an execution program is stored in an external memory in advance, and the program abnormality detection program is used. A method for detecting an error on a RAM is disclosed. The program for detecting a program abnormality is downloaded from the external memory to the RAM together with the program for execution. The presence / absence of the execution program and the program abnormality detection program in the RAM is checked by the program abnormality detection program, and the execution program and the program abnormality detection program in which the abnormality is detected are corrected.
[0008]
The program for detecting a program abnormality, for example, obtains a checksum or XOR for the program data or coefficient data stored in the RAM, and compares the obtained value with a check code such as a correct checksum value or XOR result prepared in advance. By comparing, programs and data are inspected.
[0009]
However, according to this method, an access is made in units of an address of the RAM, the data stored in the RAM is read, and then the read data is transferred to an error detection program or error detection means to detect an error. Therefore, if a large amount of data or program code can be easily processed with the improvement of the processing capability of the CPU or the DSP, the amount of RAM that must be checked increases, and much time is spent on the check time. There was a problem that it had to be done.
[0010]
In this method, a program abnormality detection program and a check code for detecting a program abnormality, and an execution program and coefficient data to be detected exist on the same RAM. Therefore, there is a problem that the program for detecting a program abnormality and the check code stored in the RAM, and the execution program and the coefficient data together therewith may be destroyed due to the influence of static electricity or the like.
[0011]
As still another example, Japanese Patent Application Laid-Open No. 2000-339230 discloses that information stored in a RAM is directly transferred to an error detection unit using DMA (Direct Memory Access), and an error is detected in the content stored in the RAM. A method for determining whether or not is included is disclosed. According to this method, not only program data stored in the RAM but also error detection of coefficient data and the like stored in the RAM can be detected. Therefore, it is possible to detect a data error such that the DSP or CPU operating based on the data stored in the RAM does not run out of control.
[0012]
Further, according to the method disclosed in Japanese Patent Laid-Open No. 2000-339230, it is not necessary to execute a detection program on the CPU when detecting an error in the program data or coefficient data stored in the RAM. There is an advantage that it is not necessary to overestimate the processing capacity of the CPU in consideration of data error detection. Further, since the error detecting means is provided separately from the RAM, even if the contents of the RAM are destroyed, the error detection itself can be performed without any problem.
[0013]
However, this method also has a problem that the check time increases as the RAM capacity increases, as described above.
[0014]
Therefore, an object of the present invention is to provide a memory check system, a memory check device and a method, and a memory check program that can check and correct program data and coefficient data stored in a RAM at high speed and accurately. It is in.
[0015]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, the present invention provides a rewritable memory of a signal processing device having a rewritable memory and performing signal processing according to contents written in the rewritable memory. In a memory check system for checking contents, a memory for storing an execution program, a parity check program, and a parity code resulting from performing a parity operation on the execution program and the parity check program by the parity check program is provided. A host device, having a rewritable memory connected to the host device and storing an execution program, a parity check program, and a parity code supplied from the host device, based on the execution program stored in the rewritable memory; Signal for signal processing A signal processing device, wherein a parity check program stored in a rewritable memory is used to execute an execution program and a parity check program stored in the rewritable memory. A parity check is performed for each block of a plurality of sizes, and a detection code based on the result of the parity calculation is output.
[0016]
The present invention also provides a host device having a memory for storing an execution program, a parity check program, and a parity code obtained by performing a parity operation on the execution program and the parity check program in the parity check program. A signal processing device that is connected and has a rewritable memory for storing an execution program, a parity check program, and a parity code supplied from a host device, and performs signal processing based on the execution program stored in the rewritable memory In a memory check method for checking the contents of a rewritable memory, an execution program, a parity check program, and a parity operation for the execution program and the parity check program in the parity check program. A memory rewritable by an execution program, a parity check program, and a parity check program stored in a rewritable memory for storing a parity code, which are supplied from a host device having a memory for storing a parity code obtained as a result. Of a parity operation for performing a parity operation for each block having a plurality of unit addresses of a rewritable memory with respect to the execution program and the parity check program stored in the memory, and a result of the parity operation by the parity operation step And a detection code output step of outputting a detection code based on the memory check method.
[0017]
According to another aspect of the present invention, there is provided a signal processing apparatus having a rewritable memory and performing signal processing in accordance with the content written in the rewritable memory. A rewritable memory in which a parity code obtained by performing a parity operation on the execution program and the parity check program in advance by the check program is stored, and signal processing is performed based on the execution program stored in the rewritable memory. And a parity check program stored in the rewritable memory, for executing the execution program and the parity check program stored in the rewritable memory from a plurality of unit addresses of the rewritable memory. Size block Parity operation was carried out, a signal processing apparatus is characterized in that so as to output a detection code based on the result of the parity operation for each.
[0018]
The present invention also relates to a memory check method of a signal processing device having a rewritable memory and performing signal processing in accordance with the content written in the rewritable memory, comprising: an execution program; A parity check program stored in a rewritable memory in which a program and a parity code obtained by performing a parity operation on the execution program and the parity check program in advance by the parity check program are stored in a rewritable memory. A parity calculation step of performing a parity calculation for each of the blocks having a plurality of unit addresses of the rewritable memory with respect to the stored execution program and parity check program, and a result of the parity calculation by the parity calculation step A memory checking method of a signal processing device and having a detection code output step of outputting a detection codes based.
[0019]
Further, the present invention provides a memory check for executing a memory check on a rewritable memory of a signal processing device having a rewritable memory and performing signal processing according to contents written in the rewritable memory. In the program, an execution program, a memory check program for checking a memory by a parity operation, and a parity code obtained by performing a parity operation on the execution program and the memory check program in advance are stored in a rewritable memory, A parity calculation step of performing a parity calculation for each block of a plurality of unit addresses of the rewritable memory with respect to the execution program and the memory check program on the rewritable memory; A memory check program; and a detection code output step of outputting a detection code based on the result of the operation.
[0020]
As described above, the invention according to
[0021]
According to the eighth and thirteenth aspects of the present invention, an execution program, a parity check program, and a parity code obtained by performing a parity operation on the execution program and the parity check program by the parity check program in advance are stored. A rewritable memory, and signal processing means for performing signal processing based on an execution program stored in the rewritable memory. The stored execution program and the parity check program are subjected to a parity operation for each block having a plurality of sizes of rewritable memory unit addresses, and a detection code based on the result of the parity operation is output. Because the memory With the time required for Ekku is shortened, it is possible to perform the checking check and parity check program itself of the execution program alternately.
[0022]
A memory check program according to a fourteenth aspect of the present invention includes an execution program, a memory check program for checking a memory by a parity operation, and a result of performing a parity operation on the execution program and the memory check program in advance. A parity code is stored in a rewritable memory, and a parity operation is performed on the execution program and the memory check program on the rewritable memory for each block of a plurality of sizes of unit addresses of the rewritable memory. Since it has an operation step and a detection code output step of outputting a detection code based on the result of the parity operation in the parity operation step, the time required for memory check is reduced, and the execution program check and self- Own and check can be performed alternately.
[0023]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of the present invention will be described. According to the present invention, an execution program and coefficient data used in a DSP (Digital Signal Processor) are downloaded from a memory of a microcomputer serving as a host (hereinafter, referred to as a host microcomputer) to a RAM (Random Access Memory) of the DSP, In a configuration in which the DSP is stored in the RAM of the DSP, a parity check program for checking the downloaded execution program and data stored in the RAM of the DSP by a parity operation is downloaded to the RAM of the DSP together with the DSP execution program and data. On the DSP side, the execution program and coefficient data stored in the RAM using the downloaded parity check program, and Check the program itself.
[0024]
At this time, according to the present invention, the execution program and the parity check program stored in the RAM are checked by the parity check program for each block having a plurality of sizes of the unit address of the RAM.
[0025]
Since the execution program, coefficient data, and parity check program are checked in units of blocks of a predetermined size, the time required for the check can be reduced. In addition, since the parity check program itself is also checked for each block, the execution program, coefficient data, and parity check program stored in the RAM can be alternately checked for each block. This makes it possible to always check whether the parity check program itself is normal or not.
[0026]
Further, according to the present invention, using the check program stored in the memory of the host microcomputer, the execution program and coefficient data downloaded to the DSP and stored in the RAM, and the check of the check program can be checked by a block of a predetermined size. It is done in units. Since the check is performed on both the DSP side and the host microcomputer side, it is possible to determine which of the check code used for the check and the check program is not normal.
[0027]
FIG. 1 schematically shows a configuration of an example of a DSP system applicable to an embodiment of the present invention. The
[0028]
The
[0029]
In the
[0030]
The DSP program is uploaded from the
[0031]
The DSP 2 operates according to the DSP program downloaded from the
[0032]
Further, the
[0033]
FIG. 2 shows an example of a data arrangement in the
[0034]
The
[0035]
Note that the capacity of the
[0036]
In the present invention, the parity check operation by the
[0037]
The parity check operation by the
[0038]
In the above description, the size of the block has been described as being the same as the size of the
[0039]
Next, the operation of the parity check according to the embodiment of the present invention will be described with reference to FIG. Prior to the parity check, a program check start command is issued from the
[0040]
Note that the parity check can be performed by various methods. For example, it is conceivable to perform a parity check using simple parity such as even parity or odd parity. A simple parity calculation is performed by the
[0041]
As an example, the parity check of the fourth block of the
[0042]
If the result of the comparison between the
[0043]
On the other hand, as a result of the comparison between the
[0044]
That is, if it is determined in the
[0045]
When the parity check of one block of the
[0046]
If the result of the comparison between the
[0047]
On the other hand, as a result of the comparison between the
[0048]
That is, as in the case of the
[0049]
When the parity check processing of the fourth block of the
[0050]
When the
[0051]
As the correct answer fixed
[0052]
FIG. 4 is a flowchart illustrating an example of a data correction process by the
[0053]
In step S12, it is determined whether or not the parity check result fetched from the
[0054]
On the other hand, if it is determined in step S12 that the value fetched from the
[0055]
If it is determined that they match, the
[0056]
In this case, the process proceeds to step S18, where the parity code corresponding to the parity operation result for the parity check program 22 (parity check program 13) is extracted from the
[0057]
In the above description, when the parity code is re-uploaded, only the corresponding data from the
[0058]
In step S15, a check process for the next block is prepared. That is, the
[0059]
When the address is notified, the DSP 2 performs the parity operation on the block of the notified address in the
[0060]
In the embodiment of the present invention, the checks on the
[0061]
On the other hand, if it is determined in step S17 that the two do not match, it is determined that the
[0062]
The parity check processing for the
[0063]
As described above, when it is determined in step S12 that the value fetched from the
[0064]
In step S13, the
[0065]
On the other hand, if it is determined in step S14 that the value fetched from the
[0066]
If it is determined that they match, the fourth block of the
[0067]
On the other hand, if it is determined in step S21 that the two do not match, it is determined that the fourth block of the
[0068]
The memory check according to the embodiment of the present invention described with reference to FIGS. 3 and 4 can be performed when the DSP 2 is started. For example, a series of memory check processes is performed from when the
[0069]
Furthermore, in a series of memory check operations, it is not necessary to check all blocks in the
[0070]
In the above description, the memory check according to the embodiment of the present invention has been described as being performed by the
[0071]
【The invention's effect】
As described above, according to the present invention, the parity check on the RAM of the DSP is performed for each block of a predetermined size, so that the number of times of communication between the DSP and the host microcomputer is reduced, so that the check time can be shortened. effective.
[0072]
In addition, for the DSP program and the parity check program uploaded to the RAM of the DSP, the parity check program uploaded performs a parity check on the parity check program stored in the RAM. At this time, it is assumed that there is no error in the parity check program itself. Therefore, it is necessary to check the parity check program itself before performing the parity check of the DSP program.
[0073]
In the embodiment of the present invention, the parity check is performed in units of blocks and the parity check program is contained in one block. Therefore, the parity check program itself can be completed by one parity check process. Therefore, by performing the parity check of the DSP program and the parity check of the parity check program itself alternately in block units, there is an effect that it is always possible to confirm whether the parity check program itself is normal or not.
[0074]
In addition, since the two parity check results, that is, the parity check result for the DSP program and the parity check result for the parity check program itself, can be confirmed, it is instantaneous whether there is an error in the DSP program or the parity check program itself. There is an effect that can be determined.
[0075]
Further, according to the embodiment of the present invention, when the parity check finds that the parity check program itself has an error, the parity code by the parity check is output as it is. The check can be performed again using the data stored in the memory. Therefore, it is possible to determine whether there is an error in the program to be checked or whether there is an error in the parity code that is compared with the parity operation result in the check.
[Brief description of the drawings]
FIG. 1 is a schematic diagram schematically showing a configuration of an example of a DSP system applicable to an embodiment of the present invention;
FIG. 2 is a schematic diagram illustrating an example of a data arrangement in a RAM in a DSP.
FIG. 3 is a diagram for explaining an operation of a parity check according to the embodiment of the present invention;
FIG. 4 is a flowchart illustrating an example of data correction processing by a host microcomputer based on a parity check result.
[Explanation of symbols]
DESCRIPTION OF
Claims (18)
実行用プログラムと、パリティチェックプログラムと、該パリティチェックプログラムで上記実行用プログラムおよび該パリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と、
上記ホスト装置と接続され、該ホスト装置から供給された上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードを格納する書き換え可能なメモリを有し、該書き換え可能なメモリに格納された上記実行用プログラムに基づき信号処理を行う信号処理装置と
を備え、
上記信号処理装置では、上記書き換え可能なメモリに格納された上記パリティチェックプログラムにより、上記書き換え可能なメモリに格納された上記実行用プログラムおよび上記パリティチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、該パリティ演算の結果に基づいた検出コードを出力するようにしたことを特徴とするメモリチェックシステム。A memory check system that has a rewritable memory and checks the content of a rewritable memory of a signal processing device that is configured to perform signal processing according to the content written in the rewritable memory,
A host device having a memory for storing an execution program, a parity check program, and a parity code obtained by performing a parity operation on the execution program and the parity check program with the parity check program;
A rewritable memory connected to the host device and storing the execution program, the parity check program, and the parity code supplied from the host device, wherein the execution program stored in the rewritable memory is stored. A signal processing device that performs signal processing based on a program,
In the signal processing device, the parity check program stored in the rewritable memory allows the execution program and the parity check program stored in the rewritable memory to have a unit of the rewritable memory. A memory check system wherein a parity operation is performed for each block having a plurality of addresses and a detection code is output based on a result of the parity operation.
上記パリティチェックプログラムは、上記書き換え可能なメモリ内で1または複数の上記ブロックに格納されることを特徴とするメモリチェックシステム。The memory check system according to claim 1,
The memory check system, wherein the parity check program is stored in one or a plurality of the blocks in the rewritable memory.
上記パリティチェックプログラムは、上記パリティ演算の結果が正常を示していれば上記検出コードとして所定の固定値を出力し、上記パリティ演算の結果が異常を示していれば上記検出コードとして該パリティ演算の結果を出力するようにしたことを特徴とするメモリチェックシステム。The memory check system according to claim 1,
The parity check program outputs a predetermined fixed value as the detection code if the result of the parity operation indicates normal, and outputs the predetermined code as the detection code if the result of the parity operation indicates abnormal. A memory check system characterized by outputting a result.
上記パリティチェックプログラムは、上記実行用プログラムに対する上記パリティ演算と、上記パリティチェックプログラムに対する上記パリティ演算とを上記ブロック単位で交互に行うようにしたことを特徴とするメモリチェックシステム。The memory check system according to claim 1,
The memory check system, wherein the parity check program alternately performs the parity calculation for the execution program and the parity calculation for the parity check program in block units.
上記パリティチェックプログラムによる、上記実行用プログラムに対する上記パリティ演算の結果に基づく上記検出コードと、上記パリティチェックプログラムに対する上記パリティ演算の結果に基づく上記検出コードとを上記ホスト装置に対して出力するようにしたことを特徴とするメモリチェックシステム。The memory check system according to claim 4,
According to the parity check program, the detection code based on the result of the parity operation for the execution program and the detection code based on the result of the parity operation for the parity check program are output to the host device. A memory check system characterized by:
さらに、上記ホスト装置により、上記書き換え可能なメモリに格納される上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードに対するチェックを、上記検出コードに基づき行うようにしたことを特徴とするメモリチェックシステム。The memory check system according to claim 1,
A memory check system, wherein the host device performs a check on the execution program, the parity check program, and the parity code stored in the rewritable memory based on the detection code. .
実行用プログラムと、パリティチェックプログラムと、該パリティチェックプログラムで実行用プログラムおよび該パリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置から供給された上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードを格納する書き換え可能なメモリに格納された上記パリティチェックプログラムにより、上記書き換え可能なメモリに格納された上記実行用プログラムおよび上記パリティチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、
上記パリティ演算のステップによる上記パリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップと
を有することを特徴とするメモリチェック方法。An execution program, a parity check program, a parity check program, and a host device having a memory storing a parity code obtained by performing a parity operation on the execution program and the parity check program in the parity check program. A rewritable memory of a signal processing device having a rewritable memory for storing a supplied execution program, a parity check program, and a parity code, and performing signal processing based on the execution program stored in the rewritable memory In the memory check method for checking the contents of
The parity check program supplied from a host device having a memory for storing an execution program, a parity check program, and a parity code obtained by performing a parity operation on the execution program and the parity check program in the parity check program. The execution program, the parity check program, and the parity check program stored in the rewritable memory that stores the parity code are used to execute the parity check program and the execution program stored in the rewritable memory. A parity calculation step of performing a parity calculation for each block having a size of a plurality of unit addresses of the rewritable memory;
Outputting a detection code based on a result of the parity operation in the parity operation step.
実行用プログラムと、パリティチェックプログラムと、該パリティチェックプログラムで上記実行用プログラムおよび該パリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリと、
上記書き換え可能なメモリに格納された上記実行用プログラムに基づき信号処理を行う信号処理手段と
を備え、
上記書き換え可能なメモリに格納された上記パリティチェックプログラムにより、上記書き換え可能なメモリに格納された上記実行用プログラムおよび上記パリティチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、該パリティ演算の結果に基づいた検出コードを出力するようにしたことを特徴とする信号処理装置。In a signal processing device having a rewritable memory and performing signal processing according to the content written in the rewritable memory,
A rewritable memory in which an execution program, a parity check program, and a parity code obtained by performing a parity operation on the execution program and the parity check program in advance with the parity check program are stored;
Signal processing means for performing signal processing based on the execution program stored in the rewritable memory,
The parity check program stored in the rewritable memory allows the execution program and the parity check program stored in the rewritable memory to have a plurality of unit addresses of the rewritable memory. A signal processing apparatus for performing a parity operation for each of the blocks and outputting a detection code based on a result of the parity operation.
上記パリティチェックプログラムは、上記書き換え可能なメモリ内で1または複数の上記ブロックに格納されることを特徴とする信号処理装置。The signal processing device according to claim 8,
The signal processing device according to claim 1, wherein the parity check program is stored in one or a plurality of the blocks in the rewritable memory.
上記パリティチェックプログラムは、上記パリティ演算の結果が正常を示していれば上記検出コードとして所定の固定値を出力し、上記パリティ演算の結果が異常を示していれば上記検出コードとして該パリティ演算の結果を出力するようにしたことを特徴とする信号処理装置。The signal processing device according to claim 8,
The parity check program outputs a predetermined fixed value as the detection code if the result of the parity operation indicates normal, and outputs the predetermined code as the detection code if the result of the parity operation indicates abnormal. A signal processing device for outputting a result.
上記パリティチェックプログラムは、上記実行用プログラムに対する上記パリティ演算と、上記パリティチェックプログラムに対する上記パリティ演算とを上記ブロック単位で交互に行うようにしたことを特徴とする信号処理装置。The signal processing device according to claim 8,
The signal processing device according to claim 1, wherein the parity check program alternately performs the parity calculation for the execution program and the parity calculation for the parity check program in block units.
上記パリティチェックプログラムによる、上記実行用プログラムに対する上記パリティ演算の結果に基づく上記検出コードと、上記パリティチェックプログラムに対する上記パリティ演算の結果に基づく上記検出コードとを、上記書き換え可能なメモリに対して上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードを供給するホスト装置に対して出力するようにしたことを特徴とする信号処理装置。The signal processing device according to claim 11,
By the parity check program, the detection code based on the result of the parity operation on the execution program, and the detection code based on the result of the parity operation on the parity check program, for the rewritable memory, A signal processing device for outputting to a host device that supplies an execution program, the parity check program, and the parity code.
実行用プログラムと、パリティチェックプログラムと、該パリティチェックプログラムで実行用プログラムおよび該パリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリに格納された上記パリティチェックプログラムにより、上記書き換え可能なメモリに格納された上記実行用プログラムおよび上記パリティチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、
上記パリティ演算のステップによる上記パリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップと
を有することを特徴とする信号処理装置のメモリチェック方法。A memory check method of a signal processing device having a rewritable memory and performing signal processing in accordance with the content written in the rewritable memory,
The execution program, the parity check program, and the parity program which are stored in a rewritable memory in which an execution program and a parity code obtained by performing a parity operation on the parity check program in advance are stored. A parity operation for performing a parity operation on the execution program and the parity check program stored in the rewritable memory for each block having a plurality of unit addresses of the rewritable memory by a parity check program. Steps and
A detection code output step of outputting a detection code based on a result of the parity operation in the parity operation step.
実行用プログラムと、パリティ演算によりメモリをチェックするメモリチェックプログラムと、上記実行用プログラムおよび上記メモリチェックプログラムに対して予め上記パリティ演算を行った結果のパリティコードとが書き換え可能なメモリに格納され、該書き換え可能なメモリ上の上記実行用プログラムおよび上記メモリチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、
上記パリティ演算のステップによる上記パリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップと
を有することを特徴とするメモリチェックプログラム。A memory check program that has a rewritable memory and executes a memory check on the rewritable memory of the signal processing device that is configured to perform signal processing according to the content written in the rewritable memory,
An execution program, a memory check program for checking a memory by a parity operation, and a parity code obtained by performing the parity operation on the execution program and the memory check program in advance are stored in a rewritable memory; A parity operation step of performing a parity operation on the execution program and the memory check program on the rewritable memory for each block having a plurality of unit addresses of the rewritable memory;
A detection code output step of outputting a detection code based on a result of the parity operation in the parity operation step.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002194452A JP4135413B2 (en) | 2002-07-03 | 2002-07-03 | MEMORY CHECK SYSTEM, MEMORY CHECK METHOD, SIGNAL PROCESSING DEVICE, SIGNAL PROCESSING DEVICE MEMORY CHECK METHOD, AND MEMORY CHECK PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002194452A JP4135413B2 (en) | 2002-07-03 | 2002-07-03 | MEMORY CHECK SYSTEM, MEMORY CHECK METHOD, SIGNAL PROCESSING DEVICE, SIGNAL PROCESSING DEVICE MEMORY CHECK METHOD, AND MEMORY CHECK PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004038541A true JP2004038541A (en) | 2004-02-05 |
JP4135413B2 JP4135413B2 (en) | 2008-08-20 |
Family
ID=31703140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002194452A Expired - Fee Related JP4135413B2 (en) | 2002-07-03 | 2002-07-03 | MEMORY CHECK SYSTEM, MEMORY CHECK METHOD, SIGNAL PROCESSING DEVICE, SIGNAL PROCESSING DEVICE MEMORY CHECK METHOD, AND MEMORY CHECK PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4135413B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008071101A (en) * | 2006-09-14 | 2008-03-27 | Megachips Lsi Solutions Inc | Storage device and data output circuit |
EP2261810A1 (en) | 2009-06-02 | 2010-12-15 | Sanyo Electric Co., Ltd. | Data check circuit |
JP2013190923A (en) * | 2012-03-13 | 2013-09-26 | Dainippon Printing Co Ltd | Ic card and computer program |
JP2013222348A (en) * | 2012-04-17 | 2013-10-28 | Dainippon Printing Co Ltd | Ic card and computer program |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0620216U (en) * | 1992-05-08 | 1994-03-15 | 松下電器産業株式会社 | Packaging box with handle |
JPH0620217U (en) * | 1992-05-20 | 1994-03-15 | 八木アンテナ株式会社 | Packing box |
-
2002
- 2002-07-03 JP JP2002194452A patent/JP4135413B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008071101A (en) * | 2006-09-14 | 2008-03-27 | Megachips Lsi Solutions Inc | Storage device and data output circuit |
EP2261810A1 (en) | 2009-06-02 | 2010-12-15 | Sanyo Electric Co., Ltd. | Data check circuit |
US8327054B2 (en) | 2009-06-02 | 2012-12-04 | Semiconductor Components Industries, Llc | Data check circuit for checking program data stored in memory |
JP2013190923A (en) * | 2012-03-13 | 2013-09-26 | Dainippon Printing Co Ltd | Ic card and computer program |
JP2013222348A (en) * | 2012-04-17 | 2013-10-28 | Dainippon Printing Co Ltd | Ic card and computer program |
Also Published As
Publication number | Publication date |
---|---|
JP4135413B2 (en) | 2008-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2159709B1 (en) | Error correcting method and computing element | |
US4701915A (en) | Error recovery system in a data processor having a control storage | |
JP5780174B2 (en) | System and method for handling bad bit errors | |
TWI431526B (en) | Hardware flow control monitor | |
TWI803927B (en) | Processor, apparatus for protecting the processor, and method for protecting the processor | |
CN114328316A (en) | DMA controller, SOC system and data carrying method based on DMA controller | |
JP2024513174A (en) | Error checking of data used in offloaded operations | |
JP4135413B2 (en) | MEMORY CHECK SYSTEM, MEMORY CHECK METHOD, SIGNAL PROCESSING DEVICE, SIGNAL PROCESSING DEVICE MEMORY CHECK METHOD, AND MEMORY CHECK PROGRAM | |
JP2003015958A (en) | Write-protect method | |
US8190971B2 (en) | Data processing system and method for operating a data processing system | |
WO2021038923A1 (en) | Control device, execution control method for user program, and system program | |
EP2352092B1 (en) | Processor, information processing apparatus, and method of controlling processor | |
JP2004126658A (en) | Processor system | |
EP0655686B1 (en) | Retry control method and device for control processor | |
JP4543505B2 (en) | Microcomputer control method and abnormality monitoring device | |
JP2016177717A (en) | Memory control device and memory control method | |
KR100216045B1 (en) | Bit arithmetic processing method and apparatus of programmable controller | |
JP2012048445A (en) | Program executing device, program generating device, program correctness determination method and program processing method | |
JP2004171106A (en) | Data storage control method and device | |
JP3616588B2 (en) | Micro program check system | |
JPS6052451B2 (en) | Microinstruction execution control method | |
JPH0229839A (en) | Microprogram control device | |
JPH04255032A (en) | Error correcting system for control storage | |
JPH0135369B2 (en) | ||
JPS60238933A (en) | Error processing system of control storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050502 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080219 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080418 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080513 |
|
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: 20080526 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110613 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |