(57)【要約】【課題】ＲＡＭ上のプログラムや係数データを高速且つ正確にチェックする。【解決手段】所定サイズのブロックに格納されるプログラム２２は、ＤＳＰプログラム２３をブロック毎にチェックし、演算結果４１と対応するパリティコード４０とを比較し、両者の一致で固定値４４を、不一致で演算結果４１をレジスタ４６にセットする。同様にＲＡＭ２０上のプログラム２２もブロック単位でチェックし、演算結果３１と対応するパリティコード３０との一致で固定値３４を、不一致で演算結果３１をレジスタ３６にセットする。レジスタ３６と４６の値に基づき、ホストは、ＲＡＭ２０上のパリティコード２１、プログラム２２及び２３の正当性を判断する。ホストは、判断結果に基づきＤＳＰ２に正しいデータと供給し、ＲＡＭ２０の内容を修正する。プログラム２２は、プログラム２３とブロック毎に交互にチェックされ、常に正当性が保たれる。【選択図】　図３
2004038541.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置の書き換え可能なメモリの内容をチェックするメモリチェックシステムにおいて、
実行用プログラムと、パリティチェックプログラムと、該パリティチェックプログラムで上記実行用プログラムおよび該パリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と、
上記ホスト装置と接続され、該ホスト装置から供給された上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードを格納する書き換え可能なメモリを有し、該書き換え可能なメモリに格納された上記実行用プログラムに基づき信号処理を行う信号処理装置と
を備え、
上記信号処理装置では、上記書き換え可能なメモリに格納された上記パリティチェックプログラムにより、上記書き換え可能なメモリに格納された上記実行用プログラムおよび上記パリティチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、該パリティ演算の結果に基づいた検出コードを出力するようにしたことを特徴とするメモリチェックシステム。
【請求項２】
請求項１に記載のメモリチェックシステムにおいて、
上記パリティチェックプログラムは、上記書き換え可能なメモリ内で１または複数の上記ブロックに格納されることを特徴とするメモリチェックシステム。
【請求項３】
請求項１に記載のメモリチェックシステムにおいて、
上記パリティチェックプログラムは、上記パリティ演算の結果が正常を示していれば上記検出コードとして所定の固定値を出力し、上記パリティ演算の結果が異常を示していれば上記検出コードとして該パリティ演算の結果を出力するようにしたことを特徴とするメモリチェックシステム。
【請求項４】
請求項１に記載のメモリチェックシステムにおいて、
上記パリティチェックプログラムは、上記実行用プログラムに対する上記パリティ演算と、上記パリティチェックプログラムに対する上記パリティ演算とを上記ブロック単位で交互に行うようにしたことを特徴とするメモリチェックシステム。
【請求項５】
請求項４に記載のメモリチェックシステムにおいて、
上記パリティチェックプログラムによる、上記実行用プログラムに対する上記パリティ演算の結果に基づく上記検出コードと、上記パリティチェックプログラムに対する上記パリティ演算の結果に基づく上記検出コードとを上記ホスト装置に対して出力するようにしたことを特徴とするメモリチェックシステム。
【請求項６】
請求項１に記載のメモリチェックシステムにおいて、
さらに、上記ホスト装置により、上記書き換え可能なメモリに格納される上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードに対するチェックを、上記検出コードに基づき行うようにしたことを特徴とするメモリチェックシステム。
【請求項７】
実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と接続され、ホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリを有し、書き換え可能なメモリに格納された上記実行用プログラムに基づき信号処理を行う信号処理装置の書き換え可能なメモリの内容をチェックするメモリチェック方法において、
実行用プログラムと、パリティチェックプログラムと、該パリティチェックプログラムで実行用プログラムおよび該パリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置から供給された上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードを格納する書き換え可能なメモリに格納された上記パリティチェックプログラムにより、上記書き換え可能なメモリに格納された上記実行用プログラムおよび上記パリティチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、
上記パリティ演算のステップによる上記パリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップと
を有することを特徴とするメモリチェック方法。
【請求項８】
書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置において、
実行用プログラムと、パリティチェックプログラムと、該パリティチェックプログラムで上記実行用プログラムおよび該パリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリと、
上記書き換え可能なメモリに格納された上記実行用プログラムに基づき信号処理を行う信号処理手段と
を備え、
上記書き換え可能なメモリに格納された上記パリティチェックプログラムにより、上記書き換え可能なメモリに格納された上記実行用プログラムおよび上記パリティチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、該パリティ演算の結果に基づいた検出コードを出力するようにしたことを特徴とする信号処理装置。
【請求項９】
請求項８に記載の信号処理装置において、
上記パリティチェックプログラムは、上記書き換え可能なメモリ内で１または複数の上記ブロックに格納されることを特徴とする信号処理装置。
【請求項１０】
請求項８に記載の信号処理装置において、
上記パリティチェックプログラムは、上記パリティ演算の結果が正常を示していれば上記検出コードとして所定の固定値を出力し、上記パリティ演算の結果が異常を示していれば上記検出コードとして該パリティ演算の結果を出力するようにしたことを特徴とする信号処理装置。
【請求項１１】
請求項８に記載の信号処理装置において、
上記パリティチェックプログラムは、上記実行用プログラムに対する上記パリティ演算と、上記パリティチェックプログラムに対する上記パリティ演算とを上記ブロック単位で交互に行うようにしたことを特徴とする信号処理装置。
【請求項１２】
請求項１１に記載の信号処理装置において、
上記パリティチェックプログラムによる、上記実行用プログラムに対する上記パリティ演算の結果に基づく上記検出コードと、上記パリティチェックプログラムに対する上記パリティ演算の結果に基づく上記検出コードとを、上記書き換え可能なメモリに対して上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードを供給するホスト装置に対して出力するようにしたことを特徴とする信号処理装置。
【請求項１３】
書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置のメモリチェック方法において、
実行用プログラムと、パリティチェックプログラムと、該パリティチェックプログラムで実行用プログラムおよび該パリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリに格納された上記パリティチェックプログラムにより、上記書き換え可能なメモリに格納された上記実行用プログラムおよび上記パリティチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、
上記パリティ演算のステップによる上記パリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップと
を有することを特徴とする信号処理装置のメモリチェック方法。
【請求項１４】
書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置の書き換え可能なメモリに対するメモリチェックを実行させるメモリチェックプログラムにおいて、
実行用プログラムと、パリティ演算によりメモリをチェックするメモリチェックプログラムと、上記実行用プログラムおよび上記メモリチェックプログラムに対して予め上記パリティ演算を行った結果のパリティコードとが書き換え可能なメモリに格納され、該書き換え可能なメモリ上の上記実行用プログラムおよび上記メモリチェックプログラムに対して、上記書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、
上記パリティ演算のステップによる上記パリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップと
を有することを特徴とするメモリチェックプログラム。
【請求項１５】
請求項１４に記載のメモリチェックプログラムにおいて、上記書き換え可能なメモリ内で１または複数の上記ブロックに格納されることを特徴とするメモリチェックプログラム。
【請求項１６】
請求項１４に記載のメモリチェックプログラムにおいて、上記パリティ演算の結果が正常を示していれば上記検出コードとして所定の固定値を出力し、上記パリティ演算の結果が異常を示していれば上記検出コードとして該パリティ演算の結果を出力するようにしたことを特徴とするメモリチェックプログラム。
【請求項１７】
請求項１４に記載のメモリチェックプログラムにおいて、上記書き換え可能なメモリ上の上記実行用プログラムに対する上記パリティ演算と、上記書き換え可能なメモリ上の上記メモリチェックプログラムに対する上記パリティ演算とを上記ブロック単位で交互に行うようにしたことを特徴とするメモリチェックプログラム。
【請求項１８】
請求項１７に記載のメモリチェックプログラムにおいて、上記書き換え可能なメモリ上の上記実行用プログラムに対する上記パリティ演算の結果に基づく上記検出コードと、上記書き換え可能なメモリ上の上記メモリチェックプログラムに対する上記パリティ演算の結果に基づく上記検出コードとを、上記書き換え可能なメモリに対して上記実行用プログラム、上記パリティチェックプログラムおよび上記パリティコードを供給するホスト装置に対して出力するようにしたことを特徴とするメモリチェックプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メモリに記憶されたデータやプログラムのチェックを行うメモリチェックシステム、メモリチェック装置および方法、ならびに、メモリチェックプログラムに関する。
【０００２】
【従来の技術】
従来から、例えばディジタルフィルタを用いた信号処理を行うために、ＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）が多く用いられている。ＤＳＰは、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）に記憶されたプログラム（インストラクション）や係数データに基づき、加減乗除を行う演算器を構成し、入力されたディジタル信号に対して信号処理を行うようにされている。特に、ＲＡＭにプログラムや係数データを記憶するタイプのＤＳＰは、ＲＡＭの記憶内容を書き換えることでＤＳＰの機能をフレキシブルに変更することができるので、近年では需要が非常に多い。このようなＤＳＰでは、例えば、ＤＳＰを制御するマイクロコンピュータなどから、インストラクションのデータや係数データをダウンロードし、ＲＡＭに記憶させるのが一般的である。
【０００３】
ＤＳＰは、プログラムコードが記憶されるインストラクションＲＡＭと、係数データが記憶される係数ＲＡＭとを有し、これらがバスにより接続される。また、ＲＡＭは、インストラクションＲＡＭと係数ＲＡＭ、さらに、係数ＲＡＭは、例えばＸ係数データを格納するＲＡＭおよびＹ係数データを格納するＲＡＭがそれぞれ物理的に独立され、各ＲＡＭに接続されるバスも、それぞれ物理的に独立した構成とされる。
【０００４】
これにより、ＤＳＰでは、各ＲＡＭのデータの読み出しや書き込みを並列的に行うことができ、例えばＸ係数およびＹ係数をＲＡＭから読み込んで演算処理し、演算結果をＲＡＭに一旦記憶させる、といったような一連の処理を、一つのコマンドで実行することができる。一方、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）を用いた構成では、ＣＰＵとＲＡＭとが１本のバスで接続されるのが一般的とされ、上述の処理を行うために、各係数データ読み出し、演算処理、演算処理結果のＲＡＭへの格納などのそれぞれの処理に応じた複数のコマンドが必要とされる。したがって、ＤＳＰは、ＣＰＵに比べ、積和演算を中心とした処理に対して高速に動作することができる。
【０００５】
ＲＡＭに格納されたデータは、静電気やノイズなどの影響で部分的に破壊される可能性がある。また、ＲＡＭにデータを書き込む際にタイミングが合わないなど、書き込み途中にエラーが発生した場合、誤ったデータが格納されてしまうことになる。また、プログラム自体にバグがあり、プログラム実行中にＲＡＭの領域を壊してしまうことも起こり得る。ＤＳＰのプログラムや係数データをＲＡＭに格納してＤＳＰを用いる場合、ＲＡＭに格納された内容にエラーがあると、ＤＳＰが期待される動作をしないばかりか、ＤＳＰが暴走してしまうおそれがある。
【０００６】
【発明が解決しようとする課題】
そこで、従来から、ＤＳＰの暴走を検出したり、ＲＡＭに格納された内容をチェックする方法が幾つか考えられてきた。一例として、ある一定周期毎にプログラムカウンタをリセットすることにより、プログラムの異常ループや暴走を検出するウォッチドッグタイマが知られている。これによれば、例えばプログラムの実行箇所を示すプログラムカウンタが異常を来しているようなときに、これを検出することができる。
【０００７】
また、他の例として、特開平５−３１３９０８号公報には、外部メモリに予め実行用プログラムの異常を検出するためのプログラム異常検出用プログラムを格納しておき、このプログラム異常検出用プログラムを用いてＲＡＭ上の誤りを検出する方法が開示されている。プログラム異常検出用プログラムを実行用プログラムと共に外部メモリからＲＡＭにダウンロードする。このプログラム異常検出用プログラムにより、ＲＡＭ上の実行用プログラムおよびプログラム異常検出用プログラムの異常の有無を調べ、異常が検出された実行用プログラムやプログラム異常検出用プログラムを修正する。
【０００８】
プログラム異常検出用プログラムは、例えばＲＡＭに格納されたプログラムデータや係数データに対してチェックサムやＸＯＲなどを求め、求められた値と予め用意された正しいチェックサム値やＸＯＲ結果といったチェックコードとを比較することにより、プログラムやデータの検査を行う。
【０００９】
しかしながら、この方法では、ＲＡＭのアドレス単位でアクセスを行い、ＲＡＭに記憶されたデータを読み出した後、読み出されたデータを誤り検出のプログラムや誤り検出手段に転送して誤りを検出しているため、ＣＰＵやＤＳＰの処理能力の向上に伴い大量のデータやプログラムコードを容易に処理可能となった場合、チェックしなければならないＲＡＭの容量が増大し、チェック時間に非常に多くの時間を費やさねばならないという問題点があった。
【００１０】
また、この方法では、プログラムの異常を検出するためのプログラム異常検出用プログラムおよびチェックコードと、検出の対象となる実行用プログラムおよび係数データとが同一のＲＡＭ上に存在する。そのため、静電気などの影響で、ＲＡＭに記憶されたプログラム異常検出用プログラムおよびチェックコードそのものや、これらと共に実行用プログラムおよび係数データが破壊されてしまう可能性があるという問題点があった。
【００１１】
さらに他の例として、特開２０００−３３９２３０号公報には、ＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）を用いてＲＡＭ上の記憶情報を誤り検出手段に直接的に転送して、ＲＡＭに記憶された内容に誤りが含まれるか否かを判定する方法が開示されている。この方法によれば、ＲＡＭに格納されたプログラムデータのみならず、ＲＡＭに格納された係数データなどの誤り検出も可能とされる。そのため、ＲＡＭに格納されたデータに基づき動作するＤＳＰやＣＰＵが暴走に至らないようなデータ誤りも検出することができる。
【００１２】
また、この特開２０００−３３９２３０号公報の方法によれば、ＲＡＭに格納されたプログラムデータや係数データなどの誤りを検出する際に、検出のためのプログラムをＣＰＵ上で実行させる必要が無いため、データ誤り検出を考慮してＣＰＵの処理能力を多めに見積もる必要が無いという利点がある。また、誤り検出手段をＲＡＭとは別に有するため、ＲＡＭ内容が破壊されても、誤り検出自体は問題なく行われる。
【００１３】
しかしながら、この方法でも、上述したような、ＲＡＭ容量の増大に伴いチェック時間が増加してしまうという問題点があった。
【００１４】
したがって、この発明の目的は、ＲＡＭに格納されたプログラムデータや係数データのチェックおよび修正を、高速且つ正確に行うことができるメモリチェックシステム、メモリチェック装置および方法、ならびに、メモリチェックプログラムを提供することにある。
【００１５】
【課題を解決するための手段】
この発明は、上述した課題を解決するために、書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置の書き換え可能なメモリの内容をチェックするメモリチェックシステムにおいて、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と、ホスト装置と接続され、ホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリを有し、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理装置とを備え、信号処理装置では、書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、パリティ演算の結果に基づいた検出コードを出力するようにしたことを特徴とするメモリチェックシステムである。
【００１６】
また、この発明は、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と接続され、ホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリを有し、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理装置の書き換え可能なメモリの内容をチェックするメモリチェック方法において、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、パリティ演算のステップによるパリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップとを有することを特徴とするメモリチェック方法である。
【００１７】
また、この発明は、書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置において、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリと、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理手段とを備え、書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、パリティ演算の結果に基づいた検出コードを出力するようにしたことを特徴とする信号処理装置である。
【００１８】
また、この発明は、書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置のメモリチェック方法において、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、パリティ演算のステップによるパリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップとを有することを特徴とする信号処理装置のメモリチェック方法である。
【００１９】
また、この発明は、書き換え可能なメモリを有し、書き換え可能なメモリに書き込まれた内容に応じた信号処理を行うようにされた信号処理装置の書き換え可能なメモリに対するメモリチェックを実行させるメモリチェックプログラムにおいて、実行用プログラムと、パリティ演算によりメモリをチェックするメモリチェックプログラムと、実行用プログラムおよびメモリチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが書き換え可能なメモリに格納され、書き換え可能なメモリ上の実行用プログラムおよびメモリチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、パリティ演算のステップによるパリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップとを有することを特徴とするメモリチェックプログラムである。
【００２０】
上述したように、請求項１および７に記載の発明は、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対してパリティ演算を行った結果のパリティコードとが格納されるメモリを有するホスト装置と、ホスト装置と接続され、ホスト装置から供給された実行用プログラム、パリティチェックプログラムおよびパリティコードを格納する書き換え可能なメモリを有し、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理装置とを備え、信号処理装置では、書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、パリティ演算の結果に基づいた検出コードを出力するようにしているため、メモリチェックに要する時間が短縮されると共に、実行用プログラムのチェックとパリティチェックプログラム自身のチェックとを交互に行うことができる。
【００２１】
また、請求項８および１３に記載の発明は、実行用プログラムと、パリティチェックプログラムと、パリティチェックプログラムで実行用プログラムおよびパリティチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが格納される書き換え可能なメモリと、書き換え可能なメモリに格納された実行用プログラムに基づき信号処理を行う信号処理手段とを備え、書き換え可能なメモリに格納されたパリティチェックプログラムにより、書き換え可能なメモリに格納された実行用プログラムおよびパリティチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行い、パリティ演算の結果に基づいた検出コードを出力するようにしているため、メモリチェックに要する時間が短縮されると共に、実行用プログラムのチェックとパリティチェックプログラム自身のチェックとを交互に行うことができる。
【００２２】
また、請求項１４に記載の発明によるメモリチェックプログラムは、実行用プログラムと、パリティ演算によりメモリをチェックするメモリチェックプログラムと、実行用プログラムおよびメモリチェックプログラムに対して予めパリティ演算を行った結果のパリティコードとが書き換え可能なメモリに格納され、書き換え可能なメモリ上の実行用プログラムおよびメモリチェックプログラムに対して、書き換え可能なメモリの単位アドレスの複数からなるサイズのブロック毎にパリティ演算を行うパリティ演算のステップと、パリティ演算のステップによるパリティ演算の結果に基づいた検出コードを出力する検出コード出力のステップとを有するため、メモリチェックに要する時間が短縮されると共に、実行用プログラムのチェックと自分自身のチェックとを交互に行うことができる。
【００２３】
【発明の実施の形態】
以下、この発明の実施の一形態について説明する。この発明では、ＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）で用いられる実行用プログラムや係数データを、ホストとなるマイクロコンピュータ（以下、ホストマイコンと称する）が有するメモリからＤＳＰのＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）にダウンロードし、ＤＳＰが有するＲＡＭに格納するようにした構成において、ダウンロードされＤＳＰのＲＡＭに格納された実行用プログラムおよびデータをパリティ演算によりチェックするパリティチェックプログラムを、ＤＳＰ実行用プログラムおよびデータと共にＤＳＰのＲＡＭにダウンロードおよび格納し、ＤＳＰ側で、ダウンロードされたパリティチェックプログラムを用いてＲＡＭに格納された実行用プログラムおよび係数データ、ならびに、パリティチェックプログラム自身のチェックを行う。
【００２４】
このとき、この発明によれば、ＲＡＭに格納された実行用プログラムおよびパリティチェックプログラムに対するパリティチェックプログラムによるチェックは、ＲＡＭの単位アドレスの複数のサイズからなるブロック毎に行われる。
【００２５】
実行用プログラムおよび係数データ、ならびに、パリティチェックプログラムのチェックが所定サイズのブロック単位で行われるため、チェックに要する時間を短縮できる。また、パリティチェックプログラム自身のチェックもブロック単位で行うため、ＲＡＭに格納された実行用プログラムおよび係数データとパリティチェックプログラムとを、ブロック毎に交互にチェックすることができる。これにより、パリティチェックプログラム自身が正常か否かを常にチェックすることができる。
【００２６】
さらに、この発明では、ホストマイコン側のメモリに格納されているチェックプログラムを用いて、ＤＳＰ側にダウンロードされＲＡＭに格納された実行用プログラムおよび係数データ、ならびに、チェックプログラムのチェックを所定サイズのブロック単位で行うようにしている。チェックをＤＳＰ側およびホストマイコン側の双方で行うため、チェックに用いるチェックコードと、チェックプログラムとの何方が正常でないかを判断することができる。
【００２７】
図１は、この発明の実施の一形態に適用可能なＤＳＰシステムの一例の構成を概略的に示す。ホストマイコン１は、例えば、ＣＰＵ１０およびＲＡＭおよび／またはＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）によるメモリ１１を有する、マイクロコンピュータである。ＤＳＰ２は、ＲＡＭ２０を有し、ＲＡＭ２０に格納された実行用プログラムや係数データに基づき動作する。ＤＳＰ２の実行用プログラムは、ＤＳＰ２が解読可能なインストラクションコードによって記述される。
【００２８】
ホストマイコン１とＤＳＰ２とがアドレスバス３およびデータバス４で接続される。例えばホストマイコン１からＤＳＰ２に対して、ＤＳＰ２の動作を指示するコマンドなどがバス３、４を介して送信され、ホストマイコン１によりＤＳＰ２が制御される。
【００２９】
ホストマイコン１のメモリ１１には、ＤＳＰ２の実行用プログラムであるＤＳＰプログラム１２や係数データ（図示しない）などが予め格納される。このホストマイコン１のメモリ１１に格納されるＤＳＰプログラムも、上述したインストラクションコードを用いて記述される。以下では、ＤＳＰプログラムおよび当該ＤＳＰプログラムで用いられる係数データを、まとめてＤＳＰプログラムと称する。
【００３０】
ホストマイコン１からＤＳＰ２に対してＤＳＰプログラムがアップロードされ、ＤＳＰ２のＲＡＭ２０に格納される。例えば、ホストマイコン１からＤＳＰ２に対して、アドレスバス３を介してＲＡＭ２０のアドレスが指定される。ホストマイコン１からＤＳＰ２に対して、データバス４を介してＤＳＰプログラムがアップロードされる。アップロードされたＤＳＰプログラムは、アドレスバス３を用いて指定されたアドレスに基づきＲＡＭ２０に書き込まれる。
【００３１】
ＤＳＰ２は、ホストマイコン１からダウンロードされたＤＳＰプログラムに従った動作を行う。ホストマイコン１からＤＳＰ２にアップロードされるＤＳＰプログラムの内容を変更することで、ＤＳＰ２に異なる処理を行わせることができる。
【００３２】
さらに、ホストマイコン１のメモリ１１には、ＤＳＰ２にアップロードされＲＡＭ２０に格納されたＤＳＰプログラム１２のパリティチェックを行うためのパリティチェックプログラム１３と、メモリ１１に格納されたＤＳＰプログラム１２およびパリティチェックプログラム１３に対してパリティチェックプログラム１３を用いて予めパリティ演算を行った結果であるパリティコード１４とが格納される。パリティチェックプログラム１３は、ＤＳＰ２において実行可能なように、上述したインストラクションコードで記述される。これらパリティチェックプログラム１３およびパリティコード１４は、上述のＤＳＰプログラム１２と共に、ホストマイコン１からＤＳＰ２にアップロードされ、ＲＡＭ２０に格納される。
【００３３】
図２は、ＲＡＭ２０における一例のデータ配置を示す。図２の例では、ＲＡＭ２０が６４ｋＢ（キロバイト）の容量を有しており、アドレスが「０ｘ００００」乃至「０ｘ１００００」で指定される。なお、アドレスの記述において、「０ｘ」は、記述が１６進表記であることを示す。アドレス「０ｘ０４００」乃至「０ｘＡＦＦＦ」は、ＤＳＰプログラム２３が格納される。アドレス「０ｘＢ０００」乃至「０ｘＦＦＦＦ」は、バッファ領域２４である。バッファ領域２４は、ＤＳＰ２においてＤＳＰプログラム２３が動作する際に用いられる領域であって、ＤＳＰプログラムの実行に伴い内容が変化される。
【００３４】
アドレス「０ｘ００００」乃至「０ｘ０２ＦＦ」は、パリティコード２１が格納される。アドレス「０ｘ０３００」乃至「０ｘ０３ＦＦ」は、パリティチェックプログラム２２が格納される。パリティコード２１は、ＲＡＭ２０における、バッファ領域２４を除く全ての領域のデータに対するパリティコードとなる。すなわち、パリティコード２１は、ＲＡＭ２０のバッファ領域２４を除く全ての領域のデータに対して、パリティチェックプログラム２２を用いて予めパリティ演算を行った結果に対応する。バッファ領域２４は、上述したようにＤＳＰプログラムの実行に伴い内容が変化されるため、パリティが確定しない。
【００３５】
なお、ＲＡＭ２０の容量は、６４ｋＢに限定されるものではなく、この図２に示されるアドレス配置も、一例であって、この例に限定されるものではない。
【００３６】
この発明では、パリティチェックプログラム２２によるパリティチェック演算を、所定サイズのブロックを単位として、１ブロック毎に行う。例えば、ＲＡＭ２０における単位アドレスが複数集合したサイズで１ブロックが構成される。一例として、パリティチェックプログラム２２が格納される領域に対応するサイズのブロックを１単位ブロックとする。ＲＡＭ２０の容量が６４ｋＢであって、パリティチェックプログラム２２がアドレス幅「０ｘ０１００」を有するこの例では、アドレス幅「０ｘ０１００」に対応する、サイズが２５６バイトのブロックが１単位ブロックとされる。したがって、図２の例では、パリティコード２１が３ブロック、ＤＳＰプログラム２３が１７２ブロックでそれぞれ構成されることになる。
【００３７】
パリティチェックプログラム２２によるパリティチェック演算は、このサイズが２５６バイトの１ブロックを単位として、１ブロック毎に行われる。予め計算されＲＡＭ２０に格納されるパリティコード２１も、ＤＳＰプログラム２３およびパリティチェックプログラム２２がこの１ブロックを単位としてパリティ演算されたものである。ＲＡＭ２０に対して所定にアドレスを指定することで、パリティコード２１から、ブロック単位のパリティ演算に対応するパリティコードを取り出すことができるようにされている。
【００３８】
なお、上述では、ブロックのサイズがパリティチェックプログラム２２のサイズと同一であるように説明したが、これはこの例に限定されない。ブロックのサイズは、ＲＡＭ２０のアドレス指定の単位で任意に設定することができる。例えば、パリティチェックプログラム２２が複数のブロックに格納されるようなブロックサイズとしてもよい。これに限らず、例えば、アドレス指定の最小単位、例えば図２における１行をブロックとすることも可能である。
【００３９】
次に、この発明の実施の一形態によるパリティチェックの動作について、図３を用いて説明する。パリティチェックに先立って、ホストマイコン１からＤＳＰ２に対して、プログラムチェック開始コマンドが発行される。そして、ホストマイコン１からＤＳＰ２に対して、チェックを行いたいブロックが指示される。例えば、チェックを行いたいブロックのＲＡＭ２０における先頭アドレスがホストマイコン１により指示される。ＤＳＰ２では、この指示に基づきチェックを行うブロックが確認される。ブロックが確認されたら、ＲＡＭ２０に格納されるパリティチェックプログラム２２が実行され、指定されたブロックに対するパリティチェックが実行される。
【００４０】
なお、パリティチェックは、様々な方法により行うことが可能である。例えば、偶数パリティや奇数パリティといった単純パリティを用いてパリティチェックを行うことが考えられる。パリティチェックプログラム２２により単純パリティ演算を行い、演算結果をブロック毎に積算した値を出力する。これに限らず、パリティチェックをＸＯＲ（Ｅｘｃｌｕｓｉｖｅ　ＯＲ）を用いて行うこともできる。ブロックのデータに対して、予め用意された所定のビット列を用いてＸＯＲを求める。ＸＯＲによるチェックは、より高速に処理を行うことができる利点がある。また、パリティチェック方法としてＣＲＣ（ｃｙｃｌｉｃ　ｒｅｄｕｎｄａｎｃｙ　ｃｈｅｃｋ）を用いることもできる。
【００４１】
一例として、パリティチェックプログラム２２によりＤＳＰプログラム２３の４ブロック目のパリティチェックを行うものとする。先ず、パリティチェックプログラム２２により、ＤＳＰプログラム２３の４ブロック目のパリティ演算が行われ、パリティ演算結果４１が得られる。続いてＲＡＭ２０から、パリティコード２１のうち、パリティチェック対象である、ＤＳＰプログラム２３の４ブロック目のパリティ演算結果に対応するパリティコード４０が取り出される。この取り出されたパリティコード４０とパリティ演算結果４１とが比較処理４２により比較される。
【００４２】
若し、比較処理４２によるパリティコード４０およびパリティ演算結果４１の比較の結果、両者が同一の値を示しているとされた場合には、判断処理４３により、ＲＡＭ２０上のＤＳＰプログラム２３の４ブロック目には誤りが無かったと判断され、その旨を示す正解固定値４４がレジスタ４６にセットされる。例えばＲＡＭ２０のバッファ領域２４内の所定領域をレジスタ４６として用いることができる。
【００４３】
一方、比較処理４２によるパリティコード４０およびパリティ演算結果４１の比較の結果、両者が異なる値であるとされた場合には、判断処理４３により、パリティコード４０および／またはパリティ演算結果４１に誤りが存在すると判断され、パリティチェックプログラム２２によるパリティ演算結果４１がレジスタ４６にセットされる。
【００４４】
すなわち、レジスタ４６には、パリティチェックプログラム２２のパリティ演算結果４１に基づき、パリティチェックの対象となるブロック（この例では、ＤＳＰプログラム２３の４ブロック目）に誤りが無いと判断されれば正解固定値４４がセットされ、誤りがあると判断されれば、誤りがあると判断された当該パリティ演算の演算結果４１そのものがレジスタ４６にセットされる。
【００４５】
ＤＳＰプログラム２３の１ブロック分のパリティチェックが終了すると、次に、ＲＡＭ２０に格納されたパリティチェックプログラム２２に対するパリティチェックが行われる。パリティチェックプログラム２２により、パリティチェックプログラム２２が格納されているブロック（この例ではアドレス「０ｘ０３００」乃至「０ｘ０３ＦＦ」のブロック）を対象に、パリティ演算を行なわれ、パリティ演算結果３１が得られる。続いてＲＡＭ２０から、パリティコード２１のうち、パリティチェックプログラム２２のパリティ演算結果に対応するパリティコード３０が取り出される。この取り出されたパリティコード３０とパリティ演算結果３１とが比較処理３２により比較される。
【００４６】
若し、比較処理３２によるパリティコード３０およびパリティ演算結果３１の比較の結果、両者が同一の値を示ている場合には、判断処理３３によりＲＡＭ２０上のパリティチェックプログラム２２には誤りが無かったと判断され、その旨を示す正解固定値３４がレジスタ３６にセットされる。例えばＲＡＭ２０のバッファ領域２４の、上述したレジスタ４６として用いられた領域とは異なる領域がレジスタ３６として用いられる。
【００４７】
一方、比較処理３２によるパリティコード３０およびパリティ演算結果３１の比較の結果、両者が異なる値であるとされた場合には、判断処理４３により、パリティコード３０および／またはパリティ演算結果３１に誤りが存在すると判断され、パリティチェックプログラム２２によるパリティ演算結果３１がレジスタ３６にセットされる。
【００４８】
すなわち、レジスタ３６には、上述のレジスタ４６と同様に、パリティチェックプログラム２２のパリティ演算結果３１に基づき、パリティチェックの対象となるＲＡＭ２０上のパリティチェックプログラム２２に誤りが無いと判断されれば正解固定値３４がセットされ、誤りがあると判断されれば、誤りがあると判断された当該パリティ演算のパリティ演算結果３１そのものがセットされる。
【００４９】
こうして、ＤＳＰプログラム２３の４ブロック目およびパリティチェックプログラム２２そのものの、それぞれ１ブロック分のパリティチェック処理が終了すると、ＤＳＰ２からホストマイコン１に対して、パリティチェックが行われたブロックのＲＡＭ２０におけるアドレスが通知される。
【００５０】
ホストマイコン１により、ＤＳＰ２から通知された、パリティチェックが行われたブロックのアドレスが受け取られると、ＤＳＰ２のＲＡＭ２０におけるレジスタ３６および４６にセットされたデータがホストマイコン１により取り込まれる。そして、取り込まれたレジスタ３６および４６のデータに基づき、ＲＡＭ２０にアップロードしたデータの修正が必要か否かの判断処理が行われる。データ修正が必要であると判断されれば、ＲＡＭ２０に対するデータの再アップロードが行われ、ＲＡＭ２０に格納されたデータが修正される。
【００５１】
なお、正解固定値３４および４４は、パリティチェックプログラム２２によるパリティ演算の演算結果と重複しない所定の値が用いられる。
【００５２】
図４は、ホストマイコン１による、パリティチェック結果に基づく一例のデータ修正処理を示すフローチャートである。最初のステップＳ１０で、ＤＳＰ２から送信された、パリティチェックを行ったブロックのアドレスがホストマイコン１に受信される。次のステップＳ１１で、ホストマイコン１により、レジスタ３６にセットされた、パリティチェックプログラム２２に対するパリティチェック結果が取り込まれる。
【００５３】
ステップＳ１２で、ステップＳ１１でレジスタ３６から取り込まれたパリティチェック結果が正解固定値３４であるか否かが判断される。若し、レジスタ３６から取り込まれた値が正解固定値３４であると判断された場合には、ＲＡＭ２０に格納されたパリティチェックプログラム２２およびパリティコード２１には問題が無かったと判断され、処理はステップＳ１３に移行する。
【００５４】
一方、ステップＳ１２でレジスタ３６から取り込まれた値が正解固定値３４ではないと判断されれば、処理はステップＳ１６に移行される。ステップＳ１６では、ホストマイコン１のメモリ１１内のパリティコード１４のうち、パリティチェックプログラム２２、すなわちメモリ１１内のパリティチェックプログラム１３に対するパリティチェック結果に対応するパリティコードが取り出される。そして、ステップＳ１７において、取り出されたパリティコードと、上述のステップＳ１１によりレジスタ３６から取り込まれた値とが一致しているか否かが判断される。
【００５５】
若し、両者が一致していると判断されれば、ＲＡＭ２０内のパリティチェックプログラム２２は正しいが、パリティコード２１が誤っていると考えられる。すなわち、パリティチェックプログラム２２に対するパリティ演算結果３１が正しい値となっても、比較処理３２で当該パリティ演算結果３１と比較されるパリティコード３０が誤った値であれば、当該パリティ演算結果３１とパリティコード３０とが一致せず、レジスタ３６に正解固定値３４がセットされない。このときには、レジスタ３６に対してパリティチェックプログラム２２に対する正しいパリティ演算結果がセットされることになる。
【００５６】
この場合、処理はステップＳ１８に移行し、ホストマイコン１のメモリ１１に格納されるパリティコード１４のうちパリティチェックプログラム２２（パリティチェックプログラム１３）に対するパリティ演算結果に対応するパリティコードが取り出され、ＤＳＰ２に送信され再アップロードされる。再アップロードされたこのパリティコードは、上述のパリティコード３０としてＲＡＭ２０の対応する領域に書き込まれる。パリティコードの再アップロードが完了すると、処理はステップＳ１５に移行される。
【００５７】
なお、上述では、パリティコードの再アップロードに際して、メモリ１１に格納されるパリティコード１４のうち対応するデータだけを取り出し、ＤＳＰ２に送信しているが、これはこの例に限定されない。メモリ１１に格納されるパリティコード１４のうち対応するデータを含むブロックを、ホストマイコン１からＤＳＰ２に送信してもよい。また、メモリ１１に格納されるパリティコード１４を全てＤＳＰ２に送信することもできる。
【００５８】
ステップＳ１５では、次のブロックに対するチェック処理が準備される。すなわち、ホストマイコン１からＤＳＰ２に対して、次にチェックを行うブロックのアドレスが通知される。例えば、この例では、ＲＡＭ２０におけるＤＳＰプログラム２３の５ブロック目のアドレスと、パリティチェックプログラム２２のアドレスとがＤＳＰ２に対して通知される。
【００５９】
アドレスが通知されると、ＤＳＰ２において上述したようにして、ＲＡＭ２０における通知されたアドレスのブロックに対してパリティ演算が行われ、パリティ演算結果に基づきレジスタ３６および４６に正解固定値３４、４４やパリティ演算結果がセットされる。そして、ホストマイコン１では、処理はステップＳ１０に移行され、レジスタ３６および４６にセットされた値に基づくチェック処理が行われる。
【００６０】
この発明の実施の一形態では、このように、ＲＡＭに格納されたＤＳＰプログラム２３およびパリティチェックプログラム２２に対するチェックを、ブロック単位で交互に行うようにしている。これにより、パリティチェックプログラム２２を常に正常な状態に保ちながらＤＳＰプログラム２３に対するチェックを行うことができ、チェック結果の信頼性が向上される。
【００６１】
一方、上述のステップＳ１７で、両者が一致していないと判断された場合、ＲＡＭ２０上のパリティチェックプログラム２２が誤っていると判断される。またこの場合、さらに、ＲＡＭ２０上のパリティチェックプログラム２２と共にパリティコード３０も誤っている可能性がある。そこで、処理はステップＳ１９に移行し、ホストマイコン１のメモリ１１内に格納されたパリティチェックプログラム１３がＤＳＰ２に対して再アップロードされる。再アップロードされたこのパリティチェックプログラム１３は、パリティチェックプログラム２２としてＲＡＭ２０に格納される。パリティチェックプログラムの再アップロードが完了されると、処理はステップＳ１５に移行される。
【００６２】
このパリティチェックプログラム２２に対するパリティチェック処理は、ＤＳＰプログラム２３に対して行われるパリティチェック処理に対して、ブロック毎に交互に実行される。したがって、上述のステップＳ１９でパリティチェックプログラム２２の再アップロードを行った後に、再び同様のチェック処理が再アップロードされたチェックプログラム２２に対して実行されることになる。その際に、上述のステップＳ１７の判断においてパリティコード３０に誤りがあったか否かを判定することができる。
【００６３】
上述したように、ステップＳ１２において、レジスタ３６から取り込まれた値が正解固定値３４であると判断された場合、ＲＡＭ２０上のパリティチェックプログラム２２には誤りが無いとされ、処理はステップＳ１３に移行され、ＲＡＭ２０のＤＳＰプログラム２３に対するブロック単位での修正処理が行われる。
【００６４】
ステップＳ１３では、ホストマイコン１により、レジスタ４６にセットされた、ＤＳＰプログラム２３のチェック対象とされるブロック（ＤＳＰプログラムの４ブロック目とする）に対するパリティチェック結果が取り込まれる。次のステップＳ１４で、ステップＳ１３でレジスタ４６から取り込まれたパリティチェック結果が正解固定値４４であるか否かが判断される。若し、レジスタ４６から取り込まれたチェック結果が正解固定値４４であると判断された場合には、ＲＡＭ２０に格納されたＤＳＰプログラム２３の４ブロック目には問題が無かったと判断され、処理はステップＳ１５に移行される。
【００６５】
一方、ステップＳ１４で、レジスタ４６から取り込まれた値が正解固定値４４ではないと判断されれば、処理はステップＳ２０に移行される。ステップＳ２０では、ホストマイコン１のメモリ１１内のパリティコード１４のうち、パリティ演算の対象であるＤＳＰプログラム２３の４ブロック目、すなわちメモリ１１内のＤＳＰプログラム１２における対応ブロックに対するパリティコードが取り出される。そして、ステップＳ２１において、取り出されたパリティコードと、上述のステップＳ１３によりレジスタ４６から取り込まれた値とが一致しているか否かが判断される。
【００６６】
若し、両者が一致していると判断されれば、上述のパリティチェックプログラム２２に対する判断の場合と同様にして、ＲＡＭ２０内のＤＳＰプログラム２３の４ブロック目は正しいが、パリティコード２１が誤っていると考えられる。この場合、処理はステップＳ２２に移行し、ホストマイコン１のメモリ１１に格納されるパリティコードのうちＤＳＰプログラム２３の４ブロック目に対するパリティ演算結果に対応するパリティコードが取り出され、ＤＳＰ２に再アップロードされる。再アップロードされたこのパリティコードは、上述のパリティコード４０としてＲＡＭ２０の対応する領域に書き込まれる。パリティコードの再アップロードが完了すると、処理はステップＳ１５に移行される。
【００６７】
一方、ステップＳ２１で、両者が一致していないと判断された場合、パリティチェック対象であるＤＳＰプログラム２３の４ブロック目が誤っていると判断される。そこで、処理はステップＳ２３に移行され、ホストマイコン１のメモリ１１内に格納されたＤＳＰプログラム１２における、ＤＳＰプログラム２３の４ブロック目に対応するブロックがＤＳＰ２に対して再アップロードされる。再アップロードされたこのブロックは、ＲＡＭ２０の対応する位置に書き込まれる。この際アップロード処理が完了されると、処理はステップＳ１５に移行される。
【００６８】
なお、図３および図４を用いて説明した、この発明の実施の一形態によるメモリチェックは、ＤＳＰ２の起動時に行うことができる。例えば、ホストマイコン１からＤＳＰ２に対して処理開始が指示されてから、実際にＤＳＰ２における処理が開始されるまでの間に、一連のメモリチェック処理が行われる。これに限らず、ＤＳＰ２の稼働中においてＤＳＰ２本来の処理が行われていないときに、メモリチェック処理を実行することもできる。また、メモリチェック処理は、ＤＳＰ２の稼働中において実行可能なタイミングで随時行ってもよいし、ＤＳＰ２の起動時などに１度だけ行ってもよい。さらに、ＤＳＰ２の処理能力に余裕があれば、ＤＳＰ２の動作中に本来の処理に対するバックグラウンドとして、常時、メモリチェック処理を行うようにしてもよい。
【００６９】
さらにまた、一連のメモリチェック動作において、ＲＡＭ２０の全てのブロックに対してチェックを行う必要は無い。例えば、ＲＡＭ２０途中のブロックまでチェックを行った時点で一時的に処理を中断し、再びチェック可能となったときに、処理が中断されたブロックから再びチェック処理を再開するようにできる。
【００７０】
上述では、この発明の実施の一形態によるメモリチェックがホストマイコン１およびＤＳＰ２で行われるように説明したが、これはこの例に限定されず、この発明に本質的な部分はＤＳＰ２側だけでも実現可能である。例えば、上述の図４において、データの再アップロード処理、すなわち、ステップＳ１８、Ｓ１９、Ｓ２２およびＳ２３の処理を除いた処理は、ＤＳＰ２のみで実行可能である。パリティコードやパリティチェックプログラム、ＤＳＰプログラムの再アップロードは、ＤＳＰからホストマイコンに対して再アップロード要求を出すことで可能である。また、ＤＳＰのＲＡＭに、同一のパリティコードを複数、格納することで、図４におけるステップＳ１６およびＳ１７、ならびに、ステップＳ２０およびＳ２１の、パリティチェックプログラムによるパリティ演算結果と、正しいパリティコードとを比較する処理を代用することが可能である。
【００７１】
【発明の効果】
以上説明したように、この発明は、ＤＳＰのＲＡＭに対するパリティチェックを、所定サイズのブロック毎に行うようにしているため、ＤＳＰとホストマイコンとの通信回数などが減少するため、チェック時間を短縮できる効果がある。
【００７２】
また、ＤＳＰのＲＡＭにアップロードしたＤＳＰプログラムおよびパリティチェックプログラムについて、アップロードされたパリティチェックプログラムにより、ＲＡＭに格納されたパリティチェックプログラムに対するパリティチェックが行われる。このときには、パリティチェックプログラム自身に誤りが無いことが前提となる。したがって、ＤＳＰプログラムのパリティチェックを行う前に、パリティチェックプログラム自身のチェックを行う必要がある。
【００７３】
この発明の実施の一形態では、パリティチェックをブロック単位で行うと共に、パリティチェックプログラムを１ブロックに収めるようにしているため、１回のパリティチェック処理でパリティチェックプログラム自身のチェックを終了できる。したがって、ＤＳＰプログラムのパリティチェックとパリティチェックプログラム自身のパリティチェックとを、ブロック単位で交互に行うことで、パリティチェックプログラム自身が正常か否かを常に確認できるという効果がある。
【００７４】
またこれにより、ＤＳＰプログラムに対するパリティチェック結果と、パリティチェックプログラム自身に対するパリティチェック結果の２つのパリティチェック結果が確認できるので、ＤＳＰプログラムに誤りがあるのか、パリティチェックプログラム自身に誤りがあるのかが瞬時に判断できるという効果がある。
【００７５】
さらに、この発明の実施の一形態では、パリティチェックの結果、パリティチェックプログラム自身に誤りがあるとされた場合に、当該パリティチェックによるパリティコードがそのまま出力されるため、ホストマイコン側で、アップロード元としてメモリに格納してあるデータを用いて再度チェックを行うことができる。このため、チェック対象のプログラムに誤りがあるのか、チェックにおいてパリティ演算結果との比較を行うパリティコードに誤りがあるのかを判断することができる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の一形態に適用可能なＤＳＰシステムの一例の構成を概略的に示す略線図である。
【図２】ＤＳＰ内のＲＡＭにおける一例のデータ配置を示す略線図である。
【図３】この発明の実施の一形態によるパリティチェックの動作について説明するための図である。
【図４】ホストマイコンによる、パリティチェック結果に基づく一例のデータ修正処理を示すフローチャートである。
【符号の説明】
１・・・ホストマイコン、２・・・ＤＳＰ、１１・・・メモリ、１２・・・ＤＳＰプログラム、１３・・・パリティチェックプログラム、１４・・・パリティコード、２０・・・ＲＡＭ、２１・・・パリティコード、２２・・・パリティチェックプログラム、２３・・・ＤＳＰプログラム、２４・・・バッファ領域、３０，４０・・・パリティコード、３１，４１・・・パリティ演算結果、３４，４４・・・正解固定値、３６，４６・・・レジスタ
【図１】
2004038541.tif 000003
【図２】
2004038541.tif 000004
【図３】
2004038541.tif 000005
【図４】
2004038541.tif 000006