(57)【要約】【課題】ＲＯＭデータの外部読出禁止を保持しつつ、ＲＯＭデータの適否を検査できるプログラマブルＲＯＭの記憶内容検査システムを提供する。【解決手段】外部読出禁止のプログラムが書き込まれたＲＯＭ１１を内蔵するワンチップＣＰＵ１へ、ＲＯＭライタ２からデータ記憶部２２に予め記憶している検査用データを供給し、この検査用データとＲＯＭ１１より読み出したＲＯＭデータとを比較回路１５でベリファイし、ベリファイ結果をベリファイ結果保持用フリップフロップ１９のＱ出力として保持し、ＲＯＭデータの読出アドレスを生成してＲＯＭ１１へ供給するアドレスカウンタ回路１８が最終アドレスまでカウントして、ＲＯＭ１１の全データに対するベリファイが完了した後に、ベリファイ信号がＲＯＭライタ２に入力され、ＲＯＭデータが検査用データと一致していたか否かの結果を知ることができる。【選択図】図１
2009032322.tif 000002
【特許請求の範囲】
【請求項１】
記憶内容の外部読み出しを禁止する読出禁止領域を含むプログラマブルＲＯＭを備えたワンチップ・マイクロコンピュータに対し、プログラマブルＲＯＭの読出禁止領域に記憶された記憶内容が適正か否かを検査するプログラマブルＲＯＭの記憶内容検査方法であって、
検査対象であるワンチップ・マイクロコンピュータのプログラマブルＲＯＭにおける読出禁止領域に記憶されている記憶内容と一致する検査用データを、外部からワンチップ・マイクロコンピュータ内へ供給し、
ワンチップ・マイクロコンピュータの内部において、前記検査用データと、プログラマブルＲＯＭにおける読出禁止領域から読み出した記憶内容とが一致するか比較し、
読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件が達成されると、比較結果を外部へ出力し、
ワンチップ・マイクロコンピュータより出力された比較結果を、検査結果として取得するようにしたことを特徴とするプログラマブルＲＯＭの記憶内容検査方法。
【請求項２】
ブランク状態のプログラマＲＯＭの読出禁止領域の記憶内容と一致するブランク検査用データをワンチップ・マイクロコンピュータへ供給し、ワンチップ・マイクロコンピュータからの比較結果を、ブランク状態か否かの検査結果として取得するようにしたことを特徴とする請求項１に記載のプログラマブルＲＯＭの記憶内容検査方法。
【請求項３】
記憶内容の外部読み出しを禁止する読出禁止領域を含むプログラマブルＲＯＭを備えたワンチップ・マイクロコンピュータと、該ワンチップ・マイクロコンピュータのプログラマブルＲＯＭの読出禁止領域に記憶された記憶内容が適正か否かを検査する記憶内容検査装置と、からなるプログラマブルＲＯＭの記憶内容検査システムであって、
前記ワンチップ・マイクロコンピュータには、
プログラマブルＲＯＭへデータの書き込みを行う書込手段と、
プログラマブルＲＯＭにおける読出禁止領域の記憶内容を内部で読み出す読出手段と、
前記読出手段により読み出された読出禁止領域の記憶内容と、外部から供給される検査用データが一致するか比較し、比較結果を出力する比較手段と、
読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件が達成されることに基づいて、比較手段の比較結果を出力させる比較結果出力手段と、
を設け、
前記記憶内容検査装置には、
検査対象であるワンチップ・マイクロコンピュータのプログラマブルＲＯＭにおける読出禁止領域に記憶されている記憶内容と一致する検査用データを記憶する検査用データ記憶手段と、
前記ワンチップ・マイクロコンピュータの読出手段へ、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を読み出させる読出指示を行う読出指示手段と、
前記読出指示手段による指示に伴って、前記ワンチップ・マイクロコンピュータの比較手段へ検査用データを供給する検査用データ供給手段と、
前記ワンチップ・マイクロコンピュータからの比較結果に応じた検査結果を知らせる検査結果報知手段と、
を設けたことを特徴とするプログラマブルＲＯＭの記憶内容検査システム。
【請求項４】
前記記憶内容検査装置の検査用データ記憶手段には、ブランク状態のプログラマＲＯＭの読出禁止領域の記憶内容と一致するブランク検査用データを記憶させておき、検査用データ供給手段によってブランク検査用データをワンチップ・マイクロコンピュータへ供給し、ワンチップ・マイクロコンピュータからの比較結果を、ブランク状態か否かの検査結果として取得するようにしたことを特徴とする請求項３に記載のプログラマブルＲＯＭの記憶内容検査システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶内容の外部読み出しを禁止する読出禁止領域を含むプログラマブルＲＯＭを備えたワンチップ・マイクロコンピュータに対し、プログラマブルＲＯＭの読出禁止領域に記憶された記憶内容が適正か否かを検査するプログラマブルＲＯＭの記憶内容検査方法、および記憶内容の外部読み出しを禁止する読出禁止領域を含むプログラマブルＲＯＭを備えたワンチップ・マイクロコンピュータと、該ワンチップ・マイクロコンピュータのプログラマブルＲＯＭの読出禁止領域に記憶された記憶内容が適正か否かを検査する記憶内容検査装置と、からなるプログラマブルＲＯＭの記憶内容検査システムに関する。
【背景技術】
【０００２】
ＯＴＰＲＯＭ等のプログラマブルＲＯＭを内蔵したワンチップ・マイクロコンピュータ（以下、ワンチップＣＰＵという）において、プログラマブルＲＯＭ（以下、単にＲＯＭという）に書き込まれたデータを出力する必要があるのは、このワンチップＣＰＵを使用した機器を製造するメーカにおいて、プログラムデータをＲＯＭに書き込む際、書き込む前にＲＯＭが何も書き込まれていないブランク状態か否か、あるいは、書き込んだ後に書込内容が正常か否かを確認するために読み出す場合と、当該機器が市場に出た後に機器の不具合が発生したとき、その不具合の原因を調査するため、ＲＯＭのデータが消失していないか、又は、正常なプログラムデータが書き込まれているかということを確認する場合である。
【０００３】
しかし、ＲＯＭに書込まれている制御プログラムは技術開発の成果であり、それを第三者が自由に読み出せるのは、技術情報の盗用を招くばかりでなく、パチンコ機やスロットマシン等の遊技機で使用する制御プログラムのように、射幸心を煽るような不正ＣＰＵを作成のための基礎データにされるなど、犯罪につながる場合もあり、好ましくない。
【０００４】
すなわち、ワンチップＣＰＵにおけるプログラマブルＲＯＭの記憶内容（以下、単にＲＯＭデータという）は、機器の製造上、読み出せる必要がある反面、技術情報の秘密保持の観点から、ＲＯＭデータの読み出しに何らかの制限を設ける必要がある。
【０００５】
このような要請に対して、ＲＯＭ書き込み時には書き込んだデータを読み出し可能とし、正常に書き込まれたことを確認し（以下、ベリファイという）、その後に読出禁止の設定をする技術が提案されている（例えば、特許文献１を参照）。また、ＲＯＭデータを読出禁止状態に設定した後でも、予め設定しておいた数ビットの解除データを書き込んでやれば読出禁止状態が解除されて、再びＲＯＭデータを読み出せるようにした技術が提案されている（例えば、特許文献２を参照）。
【０００６】
【特許文献１】特開平５−９４２９９号公報
【特許文献２】特開平５−２０２０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に記載の発明においては、ＲＯＭ書き込み時にブランクチェックおよびベリファイができるものの、読出禁止状態に設定した後は、機器の製造メーカであってもＲＯＭデータを読み出すことができず、機器の不具合調査などが十分に行えないという不都合があった。
【０００８】
また、上記特許文献２に記載の発明においては、書き込み禁止状態を設定した後も、それを解除するデータが用意されているので、特許文献１に記載の発明において問題となる機器の不具合調査の際の読出しができないという不都合が解消されているものの、その解除データの扱いが問題となる。
【０００９】
例えば、読出禁止状態を解除できる解除データが同一タイプのワンチップＣＰＵ全てに共通とした場合、ワンチップＣＰＵを使用する機器の製造メーカは当然そのタイプのワンチップＣＰＵにおける解除データを知ることとなり、同種の機器を製造する競合メーカも同一タイプのワンチップＣＰＵを使用していれば、競合メーカ同士が相互に解除データを知ることとなるため、技術情報の秘密保持を担保できない。
【００１０】
そこで、ワンチップＣＰＵの製造メーカが、納入先の機器メーカ毎に異なる解除データを設定したワンチップＣＰＵを製造・出荷すれば、競合メーカ間での技術情報漏洩を防止できるものの、納品先毎に異なるワンチップＣＰＵを生産し、その在庫管理も行わなければならないので、ワンチップＣＰＵメーカの負担が大きく、現実的ではない。よって、ＲＯＭ書き込み時に機器メーカが解除データを独自に書き込む方式が、このような問題点を回避するために適当であると考えられる。
【００１１】
しかし、その場合でも、解除データを入手しさえすればＲＯＭデータを読み出すことができるので、機器メーカにおいて、解除データを秘密に管理する必要が生じる。このことは、プログラムデータ以外にも秘密管理をする必要がある情報が増えることになり、機器を製造するのに複数の協力会社にＲＯＭ書き込みを含めた業務を委託することが多い実情を考慮すると、秘密にしなければならない情報が増加することは製造コストの上昇につながり、好ましくない。
【００１２】
このような状況は、ＲＯＭデータを暗号化して外部に出力し、外部の装置でそれを復号化してベリファイ等を行ったり、パスワードを設定して、ワンチップＣＰＵがテストモードに移行するようにしたものであっても同様であり、同じ問題を抱えている。
【００１３】
そこで、本発明は、ワンチップＣＰＵの製造メーカやこのワンチップＣＰＵを使用した機器メーカの負担を増加させることなく、ＲＯＭデータの外部読出禁止を保持しつつ、ＲＯＭデータの適否を検査できるプログラマブルＲＯＭの記憶内容検査方法と、これを具現化したプログラマブルＲＯＭの記憶内容検査システムの提供を目的とする。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、請求項１に係る発明は、記憶内容の外部読み出しを禁止する読出禁止領域を含むプログラマブルＲＯＭを備えたワンチップ・マイクロコンピュータに対し、プログラマブルＲＯＭの読出禁止領域に記憶された記憶内容が適正か否かを検査するプログラマブルＲＯＭの記憶内容検査方法であって、検査対象であるワンチップ・マイクロコンピュータのプログラマブルＲＯＭにおける読出禁止領域に記憶されている記憶内容と一致する検査用データを、外部からワンチップ・マイクロコンピュータ内へ供給し、ワンチップ・マイクロコンピュータの内部において、前記検査用データと、プログラマブルＲＯＭにおける読出禁止領域から読み出した記憶内容とが一致するか比較し、読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件が達成されると、比較結果を外部へ出力し、ワンチップ・マイクロコンピュータより出力された比較結果を、検査結果として取得するようにしたことを特徴とする。
【００１５】
また、請求項２に係る発明は、前記請求項１に記載のプログラマブルＲＯＭの記憶内容検査方法において、ブランク状態のプログラマＲＯＭの読出禁止領域の記憶内容と一致するブランク検査用データをワンチップ・マイクロコンピュータへ供給し、ワンチップ・マイクロコンピュータからの比較結果を、ブランク状態か否かの検査結果として取得するようにしたことを特徴とする。
【００１６】
上記の課題を解決するために、請求項３に係る発明は、記憶内容の外部読み出しを禁止する読出禁止領域を含むプログラマブルＲＯＭを備えたワンチップ・マイクロコンピュータと、該ワンチップ・マイクロコンピュータのプログラマブルＲＯＭの読出禁止領域に記憶された記憶内容が適正か否かを検査する記憶内容検査装置と、からなるプログラマブルＲＯＭの記憶内容検査システムであって、前記ワンチップ・マイクロコンピュータには、プログラマブルＲＯＭへデータの書き込みを行う書込手段と、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を内部で読み出す読出手段と、前記読出手段により読み出された読出禁止領域の記憶内容と、外部から供給される検査用データが一致するか比較し、比較結果を出力する比較手段と、読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件が達成されることに基づいて、比較手段の比較結果を出力させる比較結果出力手段と、を設け、前記記憶内容検査装置には、検査対象であるワンチップ・マイクロコンピュータのプログラマブルＲＯＭにおける読出禁止領域に記憶されている記憶内容と一致する検査用データを記憶する検査用データ記憶手段と、前記ワンチップ・マイクロコンピュータの読出手段へ、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を読み出させる読出指示を行う読出指示手段と、前記読出指示手段による指示に伴って、前記ワンチップ・マイクロコンピュータの比較手段へ検査用データを供給する検査用データ供給手段と、前記ワンチップ・マイクロコンピュータからの比較結果に応じた検査結果を知らせる検査結果報知手段と、を設けたことを特徴とする。
【００１７】
また、請求項４に係る発明は、前記請求項３に記載のプログラマブルＲＯＭの記憶内容検査システムにおいて、前記記憶内容検査装置の検査用データ記憶手段には、ブランク状態のプログラマＲＯＭの読出禁止領域の記憶内容と一致するブランク検査用データを記憶させておき、検査用データ供給手段によってブランク検査用データをワンチップ・マイクロコンピュータへ供給し、ワンチップ・マイクロコンピュータからの比較結果を、ブランク状態か否かの検査結果として取得するようにしたことを特徴とする。
【発明の効果】
【００１８】
請求項１に係るによれば、検査対象であるワンチップ・マイクロコンピュータのプログラマブルＲＯＭにおける読出禁止領域に記憶されている記憶内容と一致する検査用データを、外部からワンチップ・マイクロコンピュータ内へ供給し、ワンチップ・マイクロコンピュータの内部において、前記検査用データと、プログラマブルＲＯＭにおける読出禁止領域から読み出した記憶内容とが一致するか比較し、読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件が達成されると、比較結果を外部へ出力し、ワンチップ・マイクロコンピュータより出力された比較結果を、検査結果として取得するようにしたので、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を外部に読み出すことなく、適正なデータが書込まれているか否かの検査を確実に行うことができる。
【００１９】
請求項２に係るによれば、ブランク状態のプログラマＲＯＭの読出禁止領域の記憶内容と一致するブランク検査用データをワンチップ・マイクロコンピュータへ供給し、ワンチップ・マイクロコンピュータからの比較結果を、ブランク状態か否かの検査結果として取得するようにしたので、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を外部に読み出すことなく、プログラマブルＲＯＭのブランクチェックも行うことができる。
【００２０】
請求項３に係るプログラマブルＲＯＭの記憶内容検査システムによれば、ワンチップ・マイクロコンピュータには、プログラマブルＲＯＭへデータの書き込みを行う書込手段と、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を内部で読み出す読出手段と、前記読出手段により読み出された読出禁止領域の記憶内容と、外部から供給される検査用データが一致するか比較し、比較結果を出力する比較手段と、読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件が達成されることに基づいて、比較手段の比較結果を出力させる比較結果出力手段と、を設け、記憶内容検査装置には、検査対象であるワンチップ・マイクロコンピュータのプログラマブルＲＯＭにおける読出禁止領域に記憶されている記憶内容と一致する検査用データを記憶する検査用データ記憶手段と、前記ワンチップ・マイクロコンピュータの読出手段へ、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を読み出させる読出指示を行う読出指示手段と、前記読出指示手段による指示に伴って、前記ワンチップ・マイクロコンピュータの比較手段へ検査用データを供給する検査用データ供給手段と、前記ワンチップ・マイクロコンピュータからの比較結果に応じた検査結果を知らせる検査結果報知手段と、を設けたので、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を外部に読み出すことなく、適正なデータが書込まれているか否かの検査を確実に行うことができる。
【００２１】
請求項４に係るによれば、前記記憶内容検査装置の検査用データ記憶手段には、ブランク状態のプログラマＲＯＭの読出禁止領域の記憶内容と一致するブランク検査用データを記憶させておき、検査用データ供給手段によってブランク検査用データをワンチップ・マイクロコンピュータへ供給し、ワンチップ・マイクロコンピュータからの比較結果を、ブランク状態か否かの検査結果として取得するようにしたので、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を外部に読み出すことなく、プログラマブルＲＯＭのブランクチェックも行うことができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の望ましい実施形態を添付図面に基づいて詳細に説明する。
【００２３】
図１は、本発明に係るプログラマブルＲＯＭの記憶内容検査方法を、記憶内容の外部読み出しを禁止する読出禁止領域を含むプログラマブルＲＯＭを備えたワンチップ・マイクロコンピュータ１と、ワンチップ・マイクロコンピュータ１のプログラマブルＲＯＭの読出禁止領域に記憶された記憶内容が適正か否かを検査する記憶内容検査装置たるＲＯＭライタ２によって具現化したプログラマブルＲＯＭの記憶内容検査システムの概略構成図である。
【００２４】
ワンチップ・マイクロコンピュータ１（以下、単にワンチップＣＰＵという）は、少なくともＣＰＵコア，ＲＯＭ，ＲＡＭ，Ｉ／Ｏをワンチップ内に集約した構造である。これらの必須構成に加えて、「プログラマブルＲＯＭへデータの書き込みを行う書込手段（書込回路１４）」、「プログラマブルＲＯＭにおける読出禁止領域の記憶内容を内部で読み出す読出手段（読出回路１７）」、「読出手段により読み出された読出禁止領域の記憶内容と、外部から供給される検査用データが一致するか比較し、比較結果を出力する比較手段（比較回路１５）」、「読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件が達成されることに基づいて、比較手段の比較結果を出力させる比較結果出力手段（アドレスカウンタ回路１８，ベリファイ結果保持用フリップフロップ１９，第３ＡＮＤ回路１６ｃ）」を備える。これらの機能実現手段は、ワンチップＣＰＵ１の必須構成でソフト的に実現しても良いし、ハードウェアロジック回路を別途搭載しても良い。
【００２５】
ＲＯＭライタ２は、本来的にワンチップＣＰＵ１のプログラマブルＲＯＭへプログラムを書き込む機能を有するものであるが、これにＲＯＭデータの検査機能を付加することで、プログラマブルＲＯＭの読出禁止領域に記憶された記憶内容の適否を検査する記憶内容検査装置として機能するものである。なお、記憶内容検査装置は、ＲＯＭライタ２の付加機能として実現する必要はなく、書込機能を搭載しない読出検査専用の単独装置として構成しても良い。
【００２６】
ワンチップＣＰＵ１のＲＯＭ１１に対するプログラム書込機能を標準的に備えるＲＯＭライタ２は、ワンチップＣＰＵ１への指令やデータ送信等を統括的に行うコントローラ２１、書込用プログラムや検査用プログラム等のデータを記憶させるデータ記憶部２２、種々の表示を行う表示部２３、種々の操作を行う操作部２４等を備える。これらが協働することによって、「検査対象であるワンチップ・マイクロコンピュータのプログラマブルＲＯＭにおける読出禁止領域に記憶されている記憶内容と一致する検査用データを記憶する検査用データ記憶手段」、「ワンチップ・マイクロコンピュータの読出手段へ、プログラマブルＲＯＭにおける読出禁止領域の記憶内容を読み出させる読出指示を行う読出指示手段」、「読出指示手段による指示に伴って、前記ワンチップ・マイクロコンピュータの比較手段へ検査用データを供給する検査用データ供給手段」、「ワンチップ・マイクロコンピュータからの比較結果に応じた検査結果を知らせる検査結果報知手段」等の機能実現手段が構成される。
【００２７】
ＲＯＭライタ２からワンチップＣＰＵ１に入力する信号は、データバス、ＰＲＧ信号、ＷＲ信号、ＲＥＳＥＴ信号である。データバスは、ワンチップＣＰＵ１のプログラマブルＲＯＭ１１（以下、単にＲＯＭという）に書き込む書込用データ或いはＲＯＭ１１の記憶内容を検査するための検査用データを入力するものである。ＰＲＧ信号は、ＲＯＭ１１に書き込む状態なのかベリファイする状態（ＲＯＭデータを検査する状態）なのかを示す信号である。ＷＲ信号は、例えば、一定周期のパルス信号で、データバスから供給されるデータをＲＯＭ１１に書き込むタイミングを示すクロック信号として用いる。ＲＥＳＥＴ信号は、ワンチップＣＰＵ１の内部状態を初期化するタイミングを示す信号である。
【００２８】
なお、本構成例のワンチップＣＰＵ１におけるＲＯＭ１１は、全書込領域を読出禁止領域としたので、ＲＯＭデータの読出し機能を一切無くし、ＲＤ信号を受け付けないものとしたが、ＲＯＭ１１の一部分だけを読出禁止領域に設定した場合は、読出可能領域からＲＯＭデータを読み出せるように、ＲＤ信号を受け付けるように構成しても良い。また、ワンチップＣＰＵ１におけるＲＯＭ１１は、ＯＴＰＲＯＭに限らず、上書き可能なプログラマブルＲＯＭであっても良い。
【００２９】
一方、ワンチップＣＰＵ１からＲＯＭライタ２へ出力される信号は、ＶＥＲＩＦＹ信号で、ＲＯＭライタ２から送信した検査用データとＲＯＭ１１の記憶内容とをベリファイした結果（一致したか否か）を示す信号である。
【００３０】
以下、ワンチップＣＰＵ１におけるＲＯＭデータの検査機能に関する詳細構成を説明する。
【００３１】
ＲＯＭライタ２からのＰＲＧ信号はＨレベルのときに書込状態を、Ｌレベルのときにベリファイ状態（検査状態）を示すものとし、このＰＲＧ信号をＮＯＴ回路１２を介して反転させた信号をデータバス切替回路１３のＡ／Ｂ信号として入力する。このデータバス切替回路１３は、Ａ／Ｂ信号がＨの場合（ベリファイ状態の場合）にデータバスのルートをＡへ、Ａ／Ｂ信号がＬの場合（書込状態の場合）にデータバスのルートをＢへ切り替える。すなわち、ＰＲＧ信号がＨのときは、Ａ／Ｂ信号はＬになるので、データバスから入力されたデータはＢから書込回路１４へ出力されることとなり、ＰＲＧ信号がＬのときは、Ａ／Ｂ信号はＨになるので、データバスから入力されたデータはＡから比較回路１５へ出力されることとなる。
【００３２】
ＲＯＭライタ２からのＷＲ信号は、上記ＰＲＧ信号とともに第１ＡＮＤ回路１６ａに入力され、同時にＰＲＧ信号をＮＯＴ回路１２で反転した信号とともに第２ＡＮＤ回路１６ｂに入力される。すなわち、ＰＲＧ信号がＨレベルである書込状態のときには、第１ＡＮＤ回路１６ａが開いて、書込指示信号（ＷＲ）が書込回路１４へ入力され、ＰＲＧ信号がＬレベルであるベリファイ状態のときには、第２ＡＮＤ回路１６ｂが開いて読出指示信号（ＲＤ）が読出回路１７へ入力される。
【００３３】
また、ＲＯＭライタ２からのＷＲ信号は、同時にアドレスカウンタ回路１８にも入力され、アドレスカウンタ回路１８では、このＷＲ信号をアドレスカウントを＋１させるクロックとして利用する。このアドレスカウンタ回路１８によりカウントされるアドレスは、ＲＯＭ１１にデータを書き込むアドレス、またはＲＯＭ１１からデータを読み出すアドレスとして用いる。すなわち、本構成例のワンチップＣＰＵ１においては、ＲＯＭ１１にデータを書き込む場合は下位のアドレスから順に書き込み、ＲＯＭ１１のデータを読み出す場合は下位のアドレスから順に読み出すように、参照アドレスの順番が固定されているので、ＲＯＭライタ２より供給する書込用データおよび検査用データも下位のアドレスから順に送信する必要がある。
【００３４】
ＲＯＭ１１にプログラムを書き込む場合、ＲＯＭライタ２の操作部２４で書込モードに設定すると、ＲＯＭライタ２より初めにＲＥＳＥＴ信号が送られ、アドレスカウンタ回路１８が初期化される。その後、書き込みが終了するまでＰＲＧ信号はＨに保持される。この状態で、データバスに書込用データをセットし、ＷＲ信号としてパルスを繰り返し入力する。これにより、ワンチップＣＰＵ１内の書込回路１４は、ＷＲ信号のパルスに同期して、データバス切替回路１３より供給されたデータを、そのときアドレスカウンタ回路１８により示されたＲＯＭ１１のアドレスに書き込む。そして、ＷＲ信号によりアドレスカウンタ回路１８が最終アドレスをカウントするまでデータの書き込みを行うことで、ＲＯＭ１１への書込動作が完了する。
【００３５】
一方、ＲＯＭ１１に書込んだプログラム（記憶内容）を検査する場合、ＲＯＭライタ２の操作部２４で検査モードに設定すると、ＲＯＭライタ２より初めにＲＥＳＥＴ信号が送され、アドレスカウンタ回路１８と、ベリファイ結果保持用フリップフロップ回路１９が初期化される。その後、ベリファイによる検査が終了するまでＰＲＧ信号はＬに保持される。この状態で、データバスに検査用データをセットし、ＷＲ信号としてパルスを繰り返し入力する。これにより、ワンチップＣＰＵ１内の読出回路１７は、ＲＤ信号のパルスに同期して、アドレスカウンタ回路１８により示されたＲＯＭ１１のアドレスからデータを読み出し、比較回路１５へ供給する。
【００３６】
比較回路１５は、データバス切替回路１３より供給された検査用データと、読み出し回路１７から読み出されたＲＯＭデータとを比較し、両データが不一致であった場合に限って、ベリファイ結果保持用フリップフロップ１９をセットする。すなわち、比較回路１５によって比較した全てのデータが一致していれば、ベリファイ結果保持用フリップフロップ１９のＱ出力は初期状態の信号レベル（例えば、Ｌレベル）が保持されるが、一つでも不一致のデータがあれば、ベリファイ結果保持用フリップフロップ１９のＱ出力は反転（例えば、Ｈレベルに反転）するので、ベリファイ結果保持用フリップフロップ１９は、比較回路１５によるベリファイ結果をＱ出力レベルによって保持できる。
【００３７】
上記のようにして、ベリファイ結果保持用フリップフロップ１９により保持されたベリファイ結果であるＱ出力は、２入力の第３ＡＮＤ回路１６ｃに入力されるものとし、この第３ＡＮＤ回路１６ｃの他方には、アドレスカウンタ回路１８からのチェック完了信号が入力される。すなわち、アドレスカウンタ回路１８により最終アドレスまでのカウントが終了することでＲＯＭ１１の全内容のチェックが完了したときに、アドレスカウンタ回路１８よりチェック完了信号が出力（例えば、信号レベルがＬからＨに反転）するので、このチェック完了信号が出力されない限り、第３ＡＮＤ回路１６ｃが開くことはないので、ベリファイ結果保持用フリップフロップ１９により保持されたベリファイ結果（ＶＥＲＩＦＹ信号）が外部に出力されることはない。
【００３８】
したがって、ＲＯＭライタからベリファイ用に送るデータの値を変えながらＶＥＲＩＦＹ信号を観察し、逐次ＲＯＭデータを類推するような手法によって、ＲＯＭ１１に書き込まれたプログラムデータを不正に取得することは不可能であることから、セキュリティの高いものとなる。また、比較結果を示すＶＥＲＩＦＹ信号としては、一致でＨレベル、不一致でＬレベルにするものに限定されず、例えば、ベリファイ結果保持用フリップフロップ１９の反転Ｑ出力を第３ＡＮＤ回路１６ｃへの出力に用いると共に、アドレスカウンタ回路１８から第３ＡＮＤ回路１６ｃへのチェック完了信号をＬレベルとすれば、比較結果出力前のＶＥＲＩＦＹ信号はＨレベルを保持し、不一致結果の出力でＬレベルに反転するので、不一致の比較結果が明確なＶＥＲＩＦＹ信号とすることができる。或いは、ＨレベルかＬレベルの２状態で一致・不一致を示すＶＥＲＩＦＹ信号を用いないで、数ビットのパルス信号として出力することにより、ＲＯＭライタ２側でＶＥＲＩＦＹ信号を受けたか否かを明確に識別できるようにしても良い。
【００３９】
なお、本構成例のワンチップＣＰＵ１においては、アドレスカウンタ回路１８がＲＯＭ１１における最終アドレスをカウントすることを「読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件」に設定したので、例えば、ＲＯＭライタ２から送信される検査用データがＲＯＭ１１の全容量よりも少なかった場合（ＲＯＭライタ２からのＰＲＧ信号とＷＲ信号により指示された読出回数がＲＯＭ１１の全アドレス分に満たなかった場合）には、アドレスカウンタ回路１８が最終アドレスまでカウントしていないために比較結果出力条件が達成されておらず、チェック完了信号が第３ＡＮＤ回路１６ｃへ出力されないので、ＶＥＲＩＦＹ信号はＬレベルのままである。このように、ＲＯＭライタ２において検査用データをワンチップＣＰＵ１へ送信完了した時点でＶＥＲＩＦＹ信号がＨレベルに変わらなければ、ベリファイ結果が不一致であったと判定することができる。
【００４０】
一方、ＲＯＭライタ２から送信される検査用データがＲＯＭ１１の全容量よりも多かった場合（アドレスカウンタ回路１８が最終アドレスまでカウントし、チェック完了信号を第３ＡＮＤ回路１６ｃへ出力した後にも、ＰＲＧ信号とＷＲ信号によるＲＯＭ１１の読出指示を受けている場合）には、ＲＯＭデータと検査用データの不一致でベリファイ結果保持用フリップフロップ１９がセットされているはずであるから、不一致の比較結果が継続して出力されるようにアドレスカウンタ回路１８から第３ＡＮＤ回路１６ｃへのチェック完了信号を継続して出力するようにしても良い。しかしながら、偶然にもＲＯＭ１１の最終アドレスまで検査用データとの比較結果が全て一致していた場合には、ベリファイ結果が一致であるＶＥＲＩＦＹ信号が出力され続けることになってしまうので、アドレスカウンタ回路１８が最終アドレスをカウントした後にもアドレス更新のクロックを受けた場合には、一旦出力したチェック完了信号を停止するように構成しておき、ＶＥＲＩＦＹ信号のベリファイ結果を不一致へ反転させるようにすることが望ましい。
【００４１】
適正にＲＯＭ１１に記憶された全データのチェックが終了し、ワンチップＣＰＵ１からベリファイ結果（ＶＥＲＩＦＹ信号）を受けたＲＯＭライタ２では、この結果に応じた検査結果を報知する。例えば、ベリファイ結果が一致であった場合には、表示部２３に「正常ＣＰＵ」である旨を表示し、ベリファイ結果が不一致であった場合には、表示部２３に「改竄ＣＰＵ」である旨を表示することで、検査結果を可視表示する。無論、検査結果を音声により報知するようにしても構わない。
【００４２】
このように、ワンチップＣＰＵ１とＲＯＭライタ２より構成したプログラマブルＲＯＭの記憶内容検査システムにおいては、ワンチップＣＰＵ１におけるＲＯＭ１１の記憶内容を外部に読み出すことなく、適正な検査用データを記憶させたＲＯＭライタ２によって、適正なデータがＲＯＭ１１に書き込まれているか否かの検査を確実に行うことができる。例えば、ワンチップＣＰＵ１を搭載する機器の製造メーカは、ＲＯＭ１１に書き込まれている筈のプログラムデータを知っているので、機器の製造時あるいは不具合が生じた機器を調査する際に、ＲＯＭデータを直接読み出せなくても、「ＲＯＭ１１に書き込まれているべきプログラムデータ」と「ＲＯＭ１１に実際に書込まれているプログラムデータ」との比較ができれば用が足りるので、このような検査システムは非常に有用である。
【００４３】
また、ワンチップＣＰＵ１へのプログラム書き込み前に、ＲＯＭ１１がブランク状態か否かを確認する場合には、ブランク状態のＲＯＭデータ（００ｈまたはＦＦｈのデータ）をブランク検査用データとしてデータ記憶部２２に記憶しておき、このブランク検査用データとＲＯＭ１１の記憶内容を比較回路１５でリファイし、このベリファイ結果（一致か否か）でブランク状態か否かを検査できる。このようなブランクチェックを書込前に行えば、ＲＯＭ１１の不良チェックを事前に行うことが可能となり、プログラム書込後の検査における不良率を低減できる。
【００４４】
上述した第１実施形態に係る検査システムにおいては、ワンチップＣＰＵ１の内部に設けたアドレスカウンタ回路１８によってＲＯＭ１１の読出アドレスを指定することで、ＲＯＭ１１の全データに対するチェック完了後にベリファイ信号（比較結果）を出力させる構成としたが、これに限定されるものではなく、ＲＯＭ１１の全データに対するチェックが完了する前にベリファイ信号が出力されることを規制できれば、如何様に構成しても構わない。
【００４５】
図２に示すのは、ワンチップＣＰＵ１′に対して、ＲＯＭライタ２′から書込用のアドレスおよびチェック用のアドレスを入力する構成を採用した第２実施形態に係るプログラマブルＲＯＭの記憶内容検査システムを示す。なお、第１実施形態と同一の構成については、同一符号を付して説明を省略する。
【００４６】
第２実施形態のように、ワンチップＣＰＵ１′の外部（ＲＯＭライタ２′のコントローラ２１′）から検査用データとアドレスを入力する場合、指定アドレスに対するＲＯＭデータのベリファイが終了する毎にベリファイ信号を出力させる構成では、指定アドレス毎の比較結果からＲＯＭ１１のデータを類推されてしまう危険性がある。そのため、ワンチップＣＰＵ１′にはチェック済みデータ確認回路１８′を設け、このチェック済みデータ確認回路１８′によってＲＯＭライタ２′からＲＯＭデータの読出指示を受けたアドレスを逐次確認し、該当アドレスのＲＯＭデータを読出回路１７′が読み出して比較回路１５へ送信されると、該当アドレスのデータをチェック済みとして記憶し、ＲＯＭ１１の全データに対するチェックの完了後（全てのアドレスが指定されて全ＲＯＭデータのチェックが完了したことを確認した後）に、チェック完了信号を出力（例えば、第３ＡＮＤ回路１６ｃへの入力信号の信号レベルをＬからＨに変更）することで、ベリファイ結果保持用フリップフロップ１９のＱ出力が第３ＡＮＤ回路１６ｃより出力され、ＲＯＭライタ２′にベリファイ信号が入力されるのである。
【００４７】
なお、本構成例のワンチップＣＰＵ１′においては、チェック済みデータ確認回路１８′がＲＯＭライタ２′から指定された全てのアドレスでＲＯＭ１１の全記憶内容がチェックされたことを「読出禁止領域の全記憶内容と比較する検査用データを全て受信したと看做し得る比較結果出力条件」に設定したので、例えば、ＲＯＭライタ２′から読出指定されたアドレスが足りないためにＲＯＭ１１の全記憶内容のチェックが済んでいない場合には、チェック完了信号が第３ＡＮＤ回路１６ｃへ出力されないので、ＶＥＲＩＦＹ信号はＬレベルのままであり、ＲＯＭライタ２′において検査用データをワンチップＣＰＵ１′へ送信完了した時点でＶＥＲＩＦＹ信号がＨレベルに変わらなければ、ベリファイ結果が不一致であったと判定することができる。
【００４８】
一方、ＲＯＭ１１の全記憶内容のチェックが完了してチェック済みデータ確認回路１８′からチェック完了信号が送信された後にも、ＲＯＭライタ２′より読出指示のアドレスを受けた場合には、ＲＯＭデータと検査用データの不一致でベリファイ結果保持用フリップフロップ１９がセットされているはずであるから、不一致の比較結果が継続して出力されるようにチェック済みデータ確認回路１８′から第３ＡＮＤ回路１６ｃへのチェック完了信号を継続して出力するようにしても良い。しかしながら、偶然にもＲＯＭ１１の最終アドレスまで検査用データとの比較結果が全て一致していた場合には、ベリファイ結果が一致であるＶＥＲＩＦＹ信号が出力され続けることになってしまうので、チェック済みデータ確認回路１８′がＲＯＭ１１における全記憶内容のチェック完了を確認した後にも読出指示のアドレスを受けた場合には、一旦出力したチェック完了信号を停止するように構成しておき、ＶＥＲＩＦＹ信号のベリファイ結果を不一致へ反転させるようにすることが望ましい。
【００４９】
以上、本発明に係るプログラマブルＲＯＭの記憶内容検査方法を具現化したプログラマブルＲＯＭの記憶内容検査システムの実施形態を添付図面に基づいて詳述したが、本発明は、これらに限定されるものではなく、特許請求の範囲に記載の構成を変更しない限り、種々の等価技術を採用して実現することが可能である。
【図面の簡単な説明】
【００５０】
【図１】本発明の第１実施形態に係るプログラマブルＲＯＭの記憶内容検査システムの概略構成図である。
【図２】本発明の第２実施形態に係るプログラマブルＲＯＭの記憶内容検査システムの概略構成図である。
【符号の説明】
【００５１】
１      ワンチップＣＰＵ
１１    ＲＯＭ
１２    ＮＯＴ回路
１３    比較回路
１４    書込回路
１５    比較回路
１６ａ〜１６ｃ  第１〜第３ＡＮＤ回路
１７    読出回路
１８    アドレスカウンタ回路
１９    ベリファイ結果保持用フリップフロップ
２      ＲＯＭライタ
２１    コントローラ
２２    データ記憶部
２３    表示部
２４    操作部
【図１】
2009032322.tif 000003
【図２】
2009032322.tif 000004