(57)【要約】【課題】ROMへのアクセスに関するエラーの原因をより簡単かつ迅速に特定するための情報を提供する。【解決手段】本発明の実施例は、ROMへのアクセスに関する情報を保持する構成を有する。例えば、ROMへの情報の書込、消去、読出などの開始時及び終了時に、ROMへのアクセスに関する情報を保持する機構を有することによって、本発明の実施例は、保持された情報を用いて、ROMへのアクセスに関するエラーの原因の特定に役立たせることができる。【選択図】図１
2017162363.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
プロセッサ・コアと、
ROMと、
前記ROMにアクセスするためのROMライタと通信を行うROMライタ通信回路と、
アクセス情報メモリと、を備え、
前記ROMライタ通信回路が前記ROMライタからコマンド及び／又はデータを受信したことに応じて、前記プロセッサ・コアは、前記コマンド及び／又はデータに基づいて、前記ROMにアクセスし、当該アクセスに関する情報を前記アクセス情報メモリに記憶させる、装置。
【請求項２】
前記アクセス情報は、前記ROMへデータの書込を開始したことを示す書込開始情報及び前記ROMへのデータの書込を終了したことを示す書込終了情報を含む書込情報の組、前記ROMからデータの読出を開始したことを示す読出開始情報及び前記ROMからのデータの読出を終了したことを示す読出終了情報を含む読出情報の組及び、前記ROMのデータの消去を開始したことを示す消去開始情報及び前記ROMのデータの消去を終了したことを示す消去終了情報を含む消去情報の組、前記ROMライタからの前記データと前記ROMのデータとの正当性を確認するベリファイを開始したことを示すベリファイ開始情報及び前記ベリファイを終了したことを示すベリファイ終了情報を含むベリファイ情報の組、及び、前記ROMのデータのブランク確認を開始したことを示すブランク確認開始情報及び前記ROMのデータのブランク確認を終了したことを示すブランク確認終了情報を含むブランク確認情報の組の少なくともいずれか一つの組を含み、及び／又は、前記アクセス情報は、前記ROMライタ通信回路が前記ROMライタから情報を受信したことを示すROMライタ通信（受信）終了情報及び前記ROMライタ通信回路が前記ROMライタに情報を送信したことを示すROMライタ通信（送信）終了情報の少なくとも一方を含む、請求項１に記載の装置。
【請求項３】
前記ROMライタが前記ROMにアクセスを行おうとした後、前記プロセッサ・コアがアクセスを行う前に、前記プロセッサ・コアは、アクセスを開始すること示す情報を前記アクセス情報メモリに記憶させる、請求項２に記載の装置。
【請求項４】
前記アクセスを開始すること示す情報は、読込開始情報、書出開始情報、消去開始情報、ベリファイ開始情報、及び、ブランク確認開始情報の少なくとも一つを含む、請求項３に記載の装置。
【請求項５】
前記プロセッサ・コアが前記ROMにアクセスを行った後、前記プロセッサ・コアは、アクセスを終了すること示す情報を前記アクセス情報メモリに記憶させる、請求項２ないし４のいずれか一つに記載の装置。
【請求項６】
前記アクセスを終了すること示す情報は、読込終了情報、書出終了情報、消去終了情報、ベリファイ終了情報、ブランク確認終了情報の少なくとも一つを含む請求項５に記載の装置。
【請求項７】
前記プロセッサ・コアは、前記ROMライタ通信回路が前記ROMライタから情報を受信した後、前記ROMライタ通信回路が前記ROMライタから情報を受信したことを示すROMライタ通信（受信）終了情報を前記アクセス情報メモリに記憶させる、請求項２ないし６のいずれか一つに記載の装置。
【請求項８】
前記プロセッサ・コアは、前記ROMライタ通信回路が前記ROMライタに情報を送信した後、前記ROMライタ通信回路が前記ROMライタに情報を送信したことを示すROMライタ通信（送信）終了情報を前記アクセス情報メモリに記憶させる、請求項２ないし７のいずれか一つに記載の装置。
【請求項９】
請求項１ないし８に記載の装置は、遊技機用装置である。
【請求項１０】
請求項１ないし８に記載の装置を備えた遊技機用チップ。
【請求項１１】
請求項１ないし９に記載の装置又は請求項１０に記載のチップを備えた遊技機用基板。
【請求項１２】
請求項１１に記載の遊技機用基板を備えた遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ROMへのアクセスに関する情報を管理する装置に関する。
【背景技術】
【０００２】
従来、パチンコ機や、回胴式遊技機とも称されるパチスロ機などで用いられる遊技機用プロセッサ及びそれに関する装置は、内蔵のROMへの情報の書込、消去、読出などのメモリアクセスに関し、アクセスしたことを表す情報（例えば、アクセス回数やアクセスしたことを表すフラグなど）や、正常にアクセスが完了したことを表す情報などを保持する構成を有していなかった。
【０００３】
したがって、従来技術では、ROMライタによるROMへの情報の書込、消去、読出などのときにエラーが発生した場合、エラーの原因を判断することができなかった。エラーの原因の例としては、ROMへのアクセスに起因するエラーとROM以外の機器や装置に起因するエラーとがある。すなわち、従来技術では、エラーの原因が判断することができないため、エラーの原因を特定するために、ROM及びROM以外の機器や装置の全てを調査する必要があった。
【０００４】
従来技術において、ROMにアクセスしたことを表す情報が記憶されていないことから、エラーの原因を特定するためにROM及びROM以外の機器や装置の全てを調査する必要が有った。したがって、製造者は、購入者から全ての機器などを引きとった後、調査を行うことから、エラーの解析に多くの工数を必要としていた。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ROMへのアクセスに関するエラーの原因をより簡単かつ迅速に特定するための情報を提供する。
【課題を解決するための手段】
【０００６】
従来、ROMへのアクセスに関する情報を保持していなかった。本発明の実施例は、ROMへのアクセスに関する情報を保持する構成を有する。例えば、ROMへの情報の書込、消去、読出などの開始時及び終了時に、ROMへのアクセスに関する情報を保持する機構を有することによって、本発明の実施例は、保持された情報を用いて、ROMへのアクセスに関するエラーの原因の特定に役立たせることができる。
【０００７】
本発明の実施例による装置は、プロセッサ・コアと、ROMと、ROMにアクセスするためのROMライタと通信を行うROMライタ通信回路と、アクセス情報メモリとを備え、ROMライタ通信回路がROMライタからコマンド及び／又はデータを受信したことに応じて、プロセッサ・コアは、コマンド及び／又はデータに基づいて、ROMにアクセスし、当該アクセスに関する情報をアクセス情報メモリに記憶させることができる。
【０００８】
本発明の実施例において、アクセス情報は、ROMへデータの書込を開始したことを示す書込開始情報及びROMへのデータの書込を終了したことを示す書込終了情報を含む書込情報の組、ROMからデータの読出を開始したことを示す読出開始情報及びROMからのデータの読出を終了したことを示す読出終了情報を含む読出情報の組及び、ROMのデータの消去を開始したことを示す消去開始情報及びROMのデータの消去を終了したことを示す消去終了情報を含む消去情報の組、ROMライタからのデータとROMのデータとの正当性を確認するベリファイを開始したことを示すベリファイ開始情報及びベリファイを終了したことを示すベリファイ終了情報を含むベリファイ情報の組、及び、ROMのデータのブランク確認を開始したことを示すブランク確認開始情報及びROMのデータのブランク確認を終了したことを示すブランク確認終了情報を含むブランク確認情報の組の少なくともいずれか一つの組を含み、及び／又は、アクセス情報は、ROMライタ通信回路がROMライタから情報を受信したことを示すROMライタ通信（受信）終了情報及びROMライタ通信回路がROMライタに情報を送信したことを示すROMライタ通信（送信）終了情報の少なくとも一方を含むことができる。
【０００９】
本発明の実施例において、ROMライタがROMにアクセスを行おうとした後、プロセッサ・コアがアクセスを行う前に、プロセッサ・コアは、アクセスを開始すること示す情報をアクセス情報メモリに記憶させることができる。
【００１０】
本発明の実施例において、アクセスを開始すること示す情報は、少なくとも、読込開始情報、書出開始情報、消去開始情報、ベリファイ開始情報、及び、ブランク確認開始情報を含むことができる。
【００１１】
本発明の実施例において、プロセッサ・コアがROMにアクセスを行った後、プロセッサ・コアは、アクセスを終了すること示す情報をアクセス情報メモリに記憶させることができる。
【００１２】
本発明の実施例において、アクセスを終了すること示す情報は、少なくとも、読込終了情報、書出終了情報、消去終了情報、ベリファイ終了情報、ブランク確認終了情報を含むことができる。
【００１３】
本発明の実施例において、プロセッサ・コアは、ROMライタ通信回路がROMライタから情報を受信した後、ROMライタ通信回路がROMライタから情報を受信したことを示すROMライタ通信（受信）終了情報をアクセス情報メモリに記憶させることができる。
【００１４】
本発明の実施例において、プロセッサ・コアは、ROMライタ通信回路がROMライタに情報を送信した後、ROMライタ通信回路がROMライタに情報を送信したことを示すROMライタ通信（送信）終了情報をアクセス情報メモリに記憶させることができる。
【００１５】
本発明の実施例において、装置は、遊技機用装置である。
【００１６】
本発明の実施例において、遊技機用チップは、装置を備えることができる。
【００１７】
本発明の実施例において、遊技機用基板は、装置又はチップを備えることができる。
【００１８】
本発明の実施例において、遊技機は、遊技機用基板を備えることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例による装置を示す。
【図２】アクセス情報メモリ１２８が有するメモリ空間を示す。
【図３】本発明の実施例による処理フローを示す。
【図４】装置１００のモードの切り替えを示す。
【発明を実施するための形態】
【００２０】
本発明の実施例
図１は、本発明の実施例による装置を示す。装置１００は、ROMライタ１０に接続されており、プロセッサ・コア１０５、バスコントローラ１１０、ROMライタ通信回路１１２、プログラム記憶装置１１５、ユーザROM１２５及びワークRAM１３５を有する。プロセッサ・コア１０５は、バスコントローラ１１０を介してROMライタ通信回路１１２、プログラム記憶装置１１５、ユーザROM１２５及びワークRAM１３５に接続されている。装置１００は、一つのチップ上で実装されてもよい。また、装置１００は、ワンチッププロセッサや、マイコンなどと称される、一つのチップ上で実装されるプロセッサでもよい。
【００２１】
ROMライタ１０は、装置１００のROMライタ通信回路１１２に接続されている。装置１００は、ROMライタ１０に着脱可能とすることができる。ROMライタ通信回路１１２は、ROMに書込などを行うコマンド及び/又は書込などを行うためのデータをROMライタ１０から受信し、プロセッサ・コア１０５は、プログラム記憶装置１１５に保存されている制御プログラムに基づいて、受信したコマンド及び/又はデータにより、ユーザROM１２５のブランクチェック及びベリファイの実行、さらに、ユーザROM１２５へのデータの書込、読出及び消去を実行する。さらに、プロセッサ・コア１０５は、ブランクチェック及びベリファイの実行に関する情報、さらに、ユーザROM１２５へのデータの書込、読出及び消去を実行したことに関する情報をユーザROM１２５のアクセス情報メモリ１２８に保存する。
【００２２】
プロセッサ・コア１０５は、ROMライタ通信回路１１２が受信したコマンドに基づいて、ユーザROM１２５のブランクチェック及びベリファイの実行を行うことができる。ブランクチェックは、ユーザROM１２５の一部又は全部がブランクになっているか確認可能であり、例えば、ユーザROM１２５へのデータの消去を実行した後、データが消去されたことを確認するために用いられる。ベリファイは、例えば、ROMライタ１０のデータとユーザROM１２５のデータとを比較し、データが正しく書込されたかを確認することができる。
【００２３】
プロセッサ・コア１０５は、ROMライタ通信回路１１２が受信したコマンドに基づいて、ROMライタ通信回路１１２が受信したデータをユーザROM１２５におけるユーザ・プログラム１２７のエリアへデータの書込を行う。ROMライタ１０から受信したデータは、遊技機を動作させるためのユーザ・プログラムや、ユーザ・プログラムが用いるデータなどとすることができる。また、プロセッサ・コア１０５は、ROMライタ通信回路１１２が受信したコマンドに基づいて、ユーザROM１２５におけるユーザ・プログラム１２７のエリアのデータの読出及び消去を行うことができる。
【００２４】
遊技機用の装置１００において、開発用装置と量産用装置が用いられる場合が有り、この場合、開発用装置のユーザROM１２５には、複数回の書込みが可能であり、量産用装置のユーザROM１２５には、１回のみ書込みが可能であるように装置１００が制御されていてもよい。一実施例において、開発用装置では、ROMの内容の消去が実行でき、量産用装置では、ROMの内容の消去が実行できないように制御される。量産用装置において、ROMの消去が行えないことから、書込みは１回しか行うことができない。この場合、プロセッサ・コア１０５が、ROMの内容の消去を行えるかを制御してもよい。例えば、プロセッサ・コア１０５は、プログラム記憶装置１１５及び／又はユーザROM１２５の予め設定された所定のフラグを確認し、フラグがオンになっている場合、装置が開発用であると判定することができる。他の実施例において、開発用装置及び量産用装置は、例えば、それぞれで専用のハードウエアで実装されてもよい。
【００２５】
ROMライタ１０は、装置１００がPROMモードなどと称される所定のモードのときに、ユーザROM１２５へアクセスすることができる。PROMモードへの切り替えは、装置１００にある端子で行うことができる。PROMモードではない通常のモードでは、装置１００は、プログラム記憶装置１１５に保存されている制御プログラム１１７及び／又はユーザROM１２５に保存されているユーザ・プログラム１２７に基づいて動作する。
【００２６】
図４は、装置１００のモードの切り替えを示す。パワーオンリセットやシステムリセットなどが装置１００で行われる（状態４０５）。装置１００は、端子入力の状態がPROMモードの状態であるか否かを判定する。この時、端子入力状態は“LOW-レベル”、“HIGH-レベル”や、“０”、“１”の状態などとすることができる。PROMモードでない、例えば、セキュリティモードである場合（状態４１０）、ROMライタ１０は、装置１００のROMへアクセスすることができない。装置１００は、セキュリティモードにおいて、装置１００のセキュリティが確立できているかをユーザROM１２５のユーザ・プログラムの合理性をチェックし確認する。セキュリティが確立できている場合、装置１００は、ユーザモードとなり、遊技機の制御を開始することができる（状態４１５）。PROMモードである場合（状態４２０）、ROMライタ１０は、装置１００のROMへアクセスすることができる。ここでユーザ・プログラムの合理性は、予めユーザ・プログラムを計算して格納してあるセキュリティコード（チェックサム、ハッシュ値等）の再計算を行い、再計算とセキュリティコードとの比較等でチェックされる。
【００２７】
プロセッサ１０５は、さらに、上記ユーザモードにおいて、ユーザROM１２５に記憶されているユーザ・プログラムやデータなどに基づいて動作し、ワークRAM１３５や、その他のコンポーネントの制御を行うことによって、遊技機を動作させる。
【００２８】
記憶装置及びメモリに関し、典型的には、プログラム記憶装置１１５はROMであり、プログラム記憶装置１１５及びユーザROM１２５は、一つのROMで実現されてもよい。他の実施例において、プログラム記憶装置１１５は不揮発性のRAMであってもよい。
【００２９】
図２は、アクセス情報メモリ１２８が有するメモリ空間を示す。アクセス情報メモリ１２８は、書込開始情報エリア２０５、書込終了情報エリア２１０、読出開始情報エリア２１５、読出終了情報エリア２２０、消去開始情報エリア２２５、消去終了情報エリア２３０、ベリファイ開始情報エリア２３５、ベリファイ終了情報エリア２４０、ブランク確認開始情報エリア２４５、ブランク確認終了情報エリア２５０、ROMライタ通信（送信）終了情報エリア２５５及びROMライタ通信（受信）終了情報エリア２６０を有していてもよい。
【００３０】
書込開始情報エリア２０５、書込終了情報エリア２１０、読出開始情報エリア２１５、読出終了情報エリア２２０、消去開始情報エリア２２５、消去終了情報エリア２３０、ベリファイ開始情報エリア２３５、ベリファイ終了情報エリア２４０ブランク確認開始情報エリア２４５、ブランク確認終了情報エリア２５０ROMライタ通信（送信）終了情報エリア２５５及びROMライタ通信（受信）終了情報エリア２６０は、ユーザROM１２５へのアクセス情報を記憶する。
【００３１】
アクセス情報に関し、書込開始情報エリア２０５は、ROMライタ１０がユーザROM１２５へデータの書込を開始すること（すなわち、データを書込もうとしていること）を表す情報である書込開始情報を記憶する。書込開始情報の例としては、ROMライタ１０がデータをユーザROM１２５に書込もうとした後、ユーザROM１２５にデータを書込む前に、書込開始情報エリア２０５に書込開始情報が保存される。
【００３２】
書込終了情報エリア２１０は、ROMライタ１０がユーザROM１２５にデータの書込を終了すること（すなわち、データを書込んだこと）を表す情報である書込終了情報を記憶する。書込終了情報の例としては、ROMライタ１０がデータをユーザROM１２５に書込んだ後に、書込終了情報エリア２１０に書込終了情報が保存される。
【００３３】
具体的には、ROMライタ１０が装置１００へ書込を行いユーザROM１２５へデータの書込を開始すると、ROMライタ通信回路１１２がROMライタ１０から書込コマンド及びデータを受信する。プロセッサ・コア１０５は、ROMライタ通信回路１１２が受信したコマンドが書込であることを判定し、ユーザROM１２５の書込開始情報エリア２０５に書込開始情報を保存する。そして、プロセッサ・コア１０５は、ROMライタ通信回路１１２が受信したデータを一旦、ワークRAM１３５へ書込み、そのデータをユーザROM１２５のユーザ・プログラム１２７のエリアに書込を行う。その後、プロセッサ・コア１０５は、ユーザROM１２５の書込終了情報エリア２１０に書込終了情報を保存する。この時、ROMライタ１０からの受信データの受信結果を書込開始情報エリア２０５、書込終了情報エリア２１０、及び／又は、他のエリア、又は、他の記憶装置に記録してもよい。受信データの受信結果は、受信データのチェックコード等のチェック結果や書込みデータが複数ブロックに分かれて送られてくる場合では受信されたブロック情報等を含んでもよい。さらに、プロセッサ・コア１０５は、書込コマンドの終了とその結果情報をROMライタ通信回路１１２によりROMライタ１０に送信する。
【００３４】
ROMライタ１０が装置１００の読出を行い、ユーザROM１２５のデータ読出を開始すると、ROMライタ通信回路１１２がROMライタ１０から読出コマンドを受信し、プロセッサ・コア１０５は、ROMライタ通信回路１１２が受信したコマンドが読出しであることを判定し、ユーザROM１２５の読出開始情報エリア２１５に読出開始情報を保存する。そして、プロセッサ・コア１０５は、ユーザROM１２５のユーザ・プログラム１２７を一旦、ワークRAM１３５へ読出し、プロセッサ・コア１０５は、ユーザROM１２５の読出終了情報エリア２２０に読出終了情報を保存し、ROMライタ通信回路１１２よりROMライタ１０へ読出データと読出コマンドの終了とその結果情報を送信する。
【００３５】
その他のコマンドとして、ROMライタ１０が装置１００にベリファイ、消去、ブランク確認を行った場合は上記、書込、読出しと同様にコマンドの実行結果をROMライタ通信回路１１２によりROMライタ１０に送信する。
【００３６】
消去開始情報エリア２２５と消去終了情報エリア２３０との組、ベリファイ開始情報エリア２３５とベリファイ終了情報エリア２４０との組、及び、ブランク確認開始情報エリア２４５とブランク確認終了情報エリア２５０との組も、書込開始情報エリア２０５と書込終了情報エリア２１０との組、及び、読出開始情報エリア２１５と読出終了情報エリア２２０との組と同様に、それぞれ、読出開始情報及び読出終了情報、消去開始情報及び消去終了情報、ベリファイ開始情報及びベリファイ終了情報、及び、ブランク確認開始情報及びブランク確認終了情報が保存される。したがって、ROMライタ１０がユーザROM１２５にアクセスを行おうとした後、プロセッサ・コア１０５がアクセスを行う前に、プロセッサ・コア１０５は、アクセスを開始すること示す情報をアクセス情報メモリ１２８に記憶させる。プロセッサ・コア１０５がユーザROM１２５にアクセスを行った後、プロセッサ・コア１０５は、アクセスを終了すること示す情報をアクセス情報メモリ１２８に記憶させる。ここで、アクセスを開始すること示す情報は、読込開始情報、書出開始情報、消去開始情報、ベリファイ開始情報、ブランク確認開始情報の少なくとも一つを含み、アクセスを終了すること示す情報は、読込終了情報、書出終了情報、消去終了情報、ベリファイ終了情報、ブランク確認終了情報の少なくとも一つを含む。
【００３７】
ROMライタ通信（送信）終了情報エリア２５５には、ROMライタ通信回路１１２がROMライタ１０に情報を送信する時に、プロセッサ・コア１０５は、ROMライタ通信（送信）終了情報をROMライタ通信（送信）終了情報エリア２５５に保存する。ROMライタ通信（送信）終了情報としては、送信コマンド、到達確認情報（リトライ回数等）、及び／又は、エラーコードが記録されてもよい。また、この時、送信時間等が記録されてもよい。ROMライタ通信（受信）終了情報エリア２６０には、ROMライタ通信回路１１２がROMライタ１０から情報を受信する時に、プロセッサ・コア１０５は、ROMライタ通信（受信）終了情報をROMライタ通信（受信）終了情報エリア２６０に保存する。ROMライタ通信（受信）終了情報としては、受信コマンド、受信エラーの回数、及び／又は、コマンドエラーの回数等通信路の通信品質が判断される情報などの受信に関する情報が記録されてもよい。また、この時、受信に関する情報には、受信時間等が含まれていてもよい。これにより、ROMライタ１０とROMライタ通信回路１１２との間で情報の送受信が行われたか否かの情報がROMライタ通信（送信）終了情報エリア２５５及びROMライタ通信（受信）終了情報エリア２６０に保存され、後のエラー解析時などに用いることができる。
【００３８】
本発明の実施例において、このようなユーザROM１２５への書込などに関する情報が記憶されることから、書込開始情報エリア２０５の書込開始情報と書込終了情報エリア２１０の書込終了情報とを参照することによって、ユーザROM１２５へのデータの書込中にエラーが発生したか否かを特定することができる。例えば、正常にROMへの書込みが行われたときに保存されるべき書込開始情報と書込終了情報とが同じ値であると仮定すると、書込開始情報が書込終了情報と異なる場合、書込開始情報又は書込終了情報が正しく保存されていないことから、ユーザROM１２５へのデータの書込中にエラーが発生したことが特定される。他の実施例において、エラーが発生した場合、書込開始情報及び／又は書込終了情報には、エラーを表す情報が保存されてもよい。同様に、読出開始情報及び読出終了情報、消去開始情報及び消去終了情報、ベリファイ開始情報及びベリファイ終了情報、及び、ブランク確認開始情報及びブランク確認終了情報を用いることによって、ユーザROM１２５への読出、消去、ベリファイ及びブランク確認が正しく行われたかを確認することができる。
【００３９】
アクセス情報の内容に関し、書込開始情報、書込終了情報、読出開始情報、読出終了情報、消去開始情報、消去終了情報、ベリファイ開始情報、ベリファイ終了情報、ブランク確認開始情報、ブランク確認終了情報、ROMライタ通信（送信）終了情報及びROMライタ通信（受信）終了情報は、フラグ又は回数、及び/又は、時刻とすることができる。当業者であれば理解されるように、それらの情報は、参照することによってエラーが発生したか否かやエラーの内容などが特定できる情報であれば、他の形態であってもよい。
【００４０】
本実施例において、上記格納されたアクセス情報１２８はROMライタ１０または専用の解析装置により、装置１００にアクセス情報読出コマンドを実行することによって読出すことができる。又、装置１００に内蔵されたテスト回路を介して（不図示）、テスターなどの外部装置が直接アクセス情報メモリ１２８にアクセスすることにより読出すことができる。
【００４１】
アクセス情報の更新に関し、書込開始情報、書込終了情報、読出開始情報、読出終了情報、消去開始情報、消去終了情報、ベリファイ開始情報、ベリファイ終了情報、ブランク確認開始情報、ブランク確認終了情報、ROMライタ通信（送信）終了情報及びROMライタ通信（受信）終了情報がフラグである場合、それぞれの書込、読出、消去、ベリファイ、ブランク確認、ROMライタ通信（送信）、ROMライタ通信（受信）の処理が行われる前に又は処理が行われた後にクリアされる（例えば、フラグがオフに設定される）。例えば、書込開始情報及び書込終了情報は、書込が行われる前に又は書込が行われた後にクリアされ、読出開始情報及び読出終了情報は、読出が行われる前に又は読出が行われた後にクリアされ、消去開始情報及び消去終了情報は、消去が行われる前に又は消去が行われた後にクリアされ、ベリファイ開始情報及びベリファイ終了情報は、ベリファイが行われる前に又はベリファイが行われた後にクリアされ、ブランク確認開始情報及びブランク確認終了情報は、ブランク確認が行われる前に又はブランク確認が行われた後にクリアされ、ROMライタ通信（送信）終了情報は、ROMライタ１０にデータが送信される前に又はROMライタ１０にデータが送信された後にクリアされ、及び、ROMライタ通信（受信）終了情報は、ROMライタ１０からデータを受信する前に又はROMライタ１０からデータを受信した後にクリアされる。
【００４２】
アクセス情報の更新に関し、書込開始情報、書込終了情報、読出開始情報、読出終了情報、消去開始情報、消去終了情報、ベリファイ開始情報、ベリファイ終了情報、ブランク確認開始情報、ブランク確認終了情報、ROMライタ通信（送信）終了情報及びROMライタ通信（受信）終了情報が回数である場合、書込開始情報及び書込終了情報は、それぞれ、書込開始及び書込終了が行われるときにインクリメントされ、読出開始情報及び読出終了情報は、それぞれ、読出開始及び読出終了が行われるときにインクリメントされ、消去開始情報及び消去終了情報は、それぞれ、消去開始及び消去終了が行われるときにインクリメントされ、ベリファイ開始情報及びベリファイ終了情報は、それぞれ、ベリファイ開始及びベリファイ終了が行われるときにインクリメントされ、ブランク確認開始情報及びブランク確認終了情報は、それぞれ、ブランク確認開始及びブランク確認終了が行われるときにインクリメントされ、ROMライタ通信（送信）終了情報及びROMライタ通信（受信）終了情報は、それぞれ、ROMライタ通信の送信及び受信が行われるときにインクリメントされる。
【００４３】
アクセス情報の更新に関し、書込開始情報、書込終了情報、読出開始情報、読出終了情報、消去開始情報、消去終了情報、ベリファイ開始情報、ベリファイ終了情報、ブランク確認開始情報、ブランク確認終了情報、ROMライタ通信（送信）終了情報及びROMライタ通信（受信）終了情報が時刻である場合、書込開始情報及び書込終了情報は、それぞれ、書込開始及び書込終了が行われるときの時間であり、読出開始情報及び読出終了情報は、それぞれ、読出開始及び読出終了が行われるときの時間であり、消去開始情報及び消去終了情報は、それぞれ、消去開始及び消去終了が行われるときの時間であり、ベリファイ開始情報及びベリファイ終了情報は、それぞれ、ベリファイ開始及びベリファイ終了が行われるときの時間であり、ブランク確認開始情報及びブランク確認終了情報は、それぞれ、ブランク確認開始及びブランク確認終了が行われるときの時間とすることができる。これにより、それぞれの開始情報及び終了情報の時刻を比較することによって、エラーが発生したことが特定される。例えば、書込開始情報の更新時間と書込終了情報の更新時間とを比較し、書込開始情報の更新時間が書込終了情報の更新時間より前でない場合、ROMへの書込時にエラーが発生したことが特定され、書込開始情報の更新時間が書込終了情報の更新時間より前である場合、ROMへの書込時にエラーが発生していないことが特定される。
【００４４】
ROMライタ通信（送信）終了情報及びROMライタ通信（受信）終了情報は、それぞれ、ROMライタ通信（送信）及びROMライタ通信（受信）が行われるときの時間とすることができる。これにより、エラーが発生したときのROMライタとの通信時間を特定することができる。
【００４５】
本実施例において、時刻は、時間情報のみではなく、日時の情報であってもよい。装置１００がタイマなどの時刻情報を有する回路（例えば、タイマ回路）を備えている場合、そのような回路が時刻をプロセッサ・コア１０５に提供することができる。他の実施例において、装置１００がタイマなどの時刻情報を有する回路を備えていない場合、ROMライタ１０が時刻情報をROMライタ通信回路１１２に送信してもよい。この場合、プロセッサ・コア１０５は、ROMライタ１０が送信した時刻情報をROMデータ読込などのアクセス開始時刻として用い、ROMデータ読込などの処理の終了時刻を表すアクセス終了時刻をアクセス開始時刻及びプロセッサ・コア１００のクロック数に基づいて計算するようにしてもよい。
【００４６】
他の実施例において、書込開始情報、書込終了情報、読出開始情報、読出終了情報、消去開始情報、消去終了情報、ベリファイ開始情報、ベリファイ終了情報、ブランク確認開始情報、ブランク確認終了情報、ROMライタ通信（送信）終了情報及びROMライタ通信（受信）終了情報を、時刻とフラグ又は回数との組み合わせとすることができる。これにより、エラー発生の判定が更新時間とフラグ又は回数との２つの要素によって行われ、エラーが発生したであろう時刻が得られることから、エラー判定及びエラー原因の解析の精度を向上させることができる。
【００４７】
不揮発性メモリには書込み寿命がある場合があるが、他の実施例において、書込終了情報を回数で記憶している場合、書込回数の管理ができ、ROMライタ１０が書込みを行う度に書込回数をチェックすれば残り書込回数の表示が可能となったり、書込回数の制限をおこなうこともできる。
【００４８】
他の実施例において、ユーザ・プログラムへの書込、読込、消去のアクセスはブロック単位（たとえば１０２４byte）単位で行われることもあり、その場合の書込開始情報、書込終了情報、読出開始情報、読出終了情報、消去開始情報、消去終了情報、ベリファイ開始情報、ベリファイ終了情報、ブランク確認開始情報、ブランク確認終了情報は、各ブロック単位の情報としてもよい。
【００４９】
他の実施例において、ROMライタ通信（受信）終了情報には、上記情報と併せて又は単独で、ROMライタ通信回路１１２が受信した情報の一部又は全部（例えば、コマンド及び／又はデータ）が保存されてもよい。ROMライタ通信（送信）終了情報には、上記情報と併せて又は単独で、ROMライタ通信回路１１２が送信する情報の一部又は全部が保存されてもよい。これより、エラーが発生したであろう時の通信内容が得られることから、エラー判定及びエラー原因の解析の精度をさらに向上させることができる。
【００５０】
他の実施例において、アクセス情報はリングバッファ構造とし、各コマンドの受信情報、コマンドの開始終了情報、結果の送信情報などを実行履歴としてリングバッファに記憶し、ROMライタや他の解析装置よりアクセスの履歴として読出しその内容を解析することができる。
【００５１】
アクセス情報の更新に関し、当業者であれば理解されるように、アクセス情報は、上記で説明した以外の他の方法及び他の内容によって更新されてもよい。
【００５２】
図３は、本発明の実施例による処理フローを示す。処理が開示され（ステップ３１０）、ROMライタ通信回路１１２がコマンド及び／又はデータをROMライタ１０から受信する（ステップ３１２）。プロセッサ・コア１０５又はROMライタ通信回路１１２は、ROMライタ１０との通信にエラーが存在するか否かを判定する（ステップ３１４）。エラーが存在した場合（ステップ３１４）、プロセッサ・コア１０５は、通信エラー情報をユーザROM125のアクセス情報メモリ１２８に保存する（ステップ３１８）。通信エラー情報の例としては、エラー内容、エラー内容を表すエラーコード及びエラー発生時の通信内容の一つ又は組み合わせとすることができる。通信エラーが存在していなかった場合（ステップ３１４）、プロセッサ・コア１０５は、ROMライタ通信（受信）が終了したことを表すROMライタ通信（受信）終了情報をROMライタ通信（受信）終了情報エリア２６０に保存する（ステップ３１６）。
【００５３】
プロセッサ・コア１０５は、ユーザROM１２５へのコマンドが書込であるかを判定する（ステップ３２０）。コマンドが書込である場合（ステップ３２０）、プロセッサ・コア１０５は、書込開始情報をアクセス情報メモリ１２８に保存する（ステップ３２２）。その後、プロセッサ・コア１０５は、ROMライタ通信回路１１２が受信したデータをユーザROM１２５に書込を行う（ステップ３２４）。プロセッサ・コア１０５は、書込終了情報をアクセス情報メモリ１２８に保存する（ステップ３２６）。
【００５４】
プロセッサ・コア１０５は、コマンドの処理が終了すると、そのコマンドの実行結果をROMライタ10に送信する（ステップ３２８）。プロセッサ・コア１０５は、ROMライタ通信（送信）が終了したことを表すROMライタ通信（送信）終了情報をROMライタ通信（送信）終了情報エリア２６０に保存する（ステップ３３０）。
【００５５】
ステップ３２２からステップ３２６において、ユーザROM１２５への書込時にエラーが発生すると、発生したエラーを表す情報が書込終了情報として保存され、エラーが発生した後、アクセス情報メモリ１２８を解析することができる。一実施例において、書込開始情報及び書込終了情報の両方を用いて、比較や計算などを行うことによって、エラーが発生したことが特定されてもよい。
【００５６】
一実施例において、書込開始情報及び書込終了情報は、フラグとすることができ、フラグは、ステップ３２２の前にクリアされてもよい。他の実施例において、書込が正常に終了した場合、書込開始情報及び書込終了情報のフラグは、ステップ３２６の後に、クリアされてもよい。
【００５７】
一実施例において、書込開始情報及び書込終了情報が回数である場合、書込開始情報及び書込終了情報は、それらのメモリ空間に十分大きな値をとるこができる空間を与えることによって、クリアされないようにすることができる。他の実施例において、書込開始情報及び書込終了情報が回数である場合、書込開始情報及び書込終了情報は、クリアされないようにしてもよく、又は、同じ範囲で循環する数値（例えば、０から７や、０から１２７などの範囲を循環する数値）とすることができる。
【００５８】
ROMライタ１０のユーザROM１２５へのアクセスが書込でなく（ステップ３２０）、かつ、ROMライタ１０のユーザROM１２５へのアクセスが読出である（ステップ３３２）場合、プロセッサ・コア１０５は、読出開始情報をアクセス情報メモリ１２８に保存する（ステップ３３４）。その後、プロセッサ・コア１０５は、ユーザROM１２５からワークRAMへデータの読出を行う（ステップ３３６）。プロセッサ１０５は、読出終了情報をアクセス情報メモリ１２８に保存する（ステップ３３８）。その後、ステップ３２８及び３３０が実行される。
【００５９】
ステップ３３４からステップ３３８において、ユーザROM１２５のデータの読出時にエラーが発生すると、発生したエラーを表す情報が読出終了情報として保存され、エラーが発生した後、アクセス情報メモリ１２８を解析することができる。一実施例において、読出開始情報及び読出終了情報の両方を用いて、比較や計算などを行うことによって、エラーが発生したことが特定されてもよい。
【００６０】
ROMライタ１０のユーザROM１２５へのアクセスが書込でなく（ステップ３２０）、ROMライタ１０のユーザROM１２５へのアクセスが読出でなく（ステップ３３２）、かつ、ROMライタ１０のユーザROM１２５へのアクセスがブランク確認である（ステップ３４０）場合、プロセッサ・コア１０５は、ブランク確認開始情報をアクセス情報メモリ１２８に保存する（ステップ３４２）。その後、プロセッサ・コア１０５は、ブランク確認（ブランクチェックとも呼ばれる）を行う（ステップ３４４）。プロセッサ・コア１０５は、ブランク確認終了情報をアクセス情報メモリ１２８に保存する（ステップ３４６）。その後、ステップ３２８及び３３０が実行される。
【００６１】
ステップ３４２からステップ３４６において、ユーザROM１２５のブランク確認時にエラーが発生すると、発生したエラーを表す情報がブランク確認終了情報として保存され、エラーが発生した後、アクセス情報メモリ１２８を解析することができる。一実施例において、ブランク確認開始情報及びブランク確認終了情報の両方を用いて、比較や計算などを行うことによって、エラーが発生したことが特定されてもよい。
【００６２】
ROMライタ１０のユーザROM１２５へのアクセスが書込でなく（ステップ３２０）、ROMライタ１０のユーザROM１２５へのアクセスが読出でなく（ステップ３３２）、かつ、ROMライタ１０のユーザROM１２５へのアクセスがブランク確認でなく（ステップ３４０）、ROMライタ１０のユーザROM１２５へのアクセスがベリファイである（ステップ３４８）場合、プロセッサ・コア１０５は、ベリファイ開始情報をアクセス情報メモリ１２８に保存する（ステップ３５０）。その後、プロセッサ・コア１０５は、ユーザROM１２５のデータのベリファイを行う（ステップ３５２）。プロセッサ・コア１０５は、ベリファイ終了情報をアクセス情報メモリ１２８に保存する（ステップ３５４）。ここで、ベリファイの例としては、ユーザROM１２５のデータがROMライタ１０が有するデータと同じであるかを比較する。一実施例において、ベリファイに関し、プロセッサ・コア１０５は、ROMライタ１０からベリファイのコマンドとデータを受信し、ユーザROM１２５のデータの一部又は全部とROMライタ１０から受信したデータ一部又は全部を比較する。ユーザROM１２５のデータがROMライタ１０から受信したデータと同じ場合、プロセッサ・コア１０５は、ユーザROM１２５のデータは正当であると判断し、同じでない場合、ユーザROM１２５のデータは正当でないと判断する。プロセッサ・コア１０５は、正当であるか否かを判断した結果をROMライタ１０に返す（ステップ３２８）。その後、ステップ３３０が実行される。
【００６３】
ステップ３５０からステップ３５４において、ユーザROM１２５のベリファイ時にエラーが発生すると、発生したエラーを表す情報がベリファイ終了情報として保存され、エラーが発生した後、アクセス情報メモリ１２８を解析することができる。一実施例において、ベリファイ開始情報及びベリファイ終了情報の両方を用いて、比較や計算などを行うことによって、エラーが発生したことが特定されてもよい。
【００６４】
ROMライタ１０のユーザROM１２５へのアクセスが書込でなく（ステップ３２０）、ROMライタ１０のユーザROM１２５へのアクセスが読出でなく（ステップ３３２）、かつ、ROMライタ１０のユーザROM１２５へのアクセスがブランク確認でなく（ステップ３４０）、ROMライタ１０のユーザROM１２５へのアクセスがベリファイでなく（ステップ３４８）、ROMライタ１０のユーザROM１２５へのアクセスが消去である（ステップ３５６）場合、プロセッサ・コア１０５は、装置１００が量産用であるか否かを判定する（ステップ３５８）。
【００６５】
上述した通り、一実施例において、プロセッサ・コア１０５は、プログラム記憶装置１１５及び／又はユーザROM１２５の所定の量産用（０）／開発用（１）判定フラグを確認し、フラグがオン（１）になっている場合、装置が開発用であると判定することができる。また、プロセッサ・コア１０５は、他の手段によって。装置１００が開発用であるか又は量産用であるかを判定してもよい。
【００６６】
装置１００が量産用である（ステップ３５８）場合、プロセッサ・コア１０５は、ユーザROM１２５への消去は許可しないことを示す結果をROMライタ１０に返す（ステップ３２８）。装置１００が量産用でない（ステップ３５８）場合（例えば、開発用装置である場合）、プロセッサ・コア１０５は、消去開始情報をアクセス情報メモリ１２８に保存する（ステップ３６０）。その後、プロセッサ・コア１０５は、ユーザROM１２５へのデータの消去を行う（ステップ３６２）。プロセッサ・コア１０５は、消去終了情報をアクセス情報メモリ１２８に保存する（ステップ３６４）。その後、ステップ３２８及び３３０が実行される。
【００６７】
ステップ３６０からステップ３６４において、ユーザROM１２５の消去時にエラーが発生すると、発生したエラーを表す情報が消去終了情報として保存され、エラーが発生した後、アクセス情報メモリ１２８を解析することができる。一実施例において、消去開始情報及び消去終了情報の両方を用いて、比較や計算などを行うことによって、エラーが発生したことが特定されてもよい。
【００６８】
読出開始情報及び読出終了情報、ブランク確認開始情報及びブランク確認終了情報、ベリファイ開始情報及びベリファイ終了情報、及び、消去開始情報及び消去終了情報も、書込開始情報及び書込終了情報と同様に、クリアされる値であるフラグ、クリアされない値である回数、又は、循環する数値とすることができる。
【００６９】
ユーザROM１２５の読出に関する処理の後（ステップ３３８の後）、ユーザROM１２５のブランク確認に関する処理の後（ステップ３４６の後）、ユーザROM１２５のベリファイに関する処理の後（ステップ３５４の後）、又は、ユーザROM１２５の消去に関する処理の後（ステップ３６４の後）、処理は、プロセッサ・コア１０５が実行結果をROMライタ１０に返すステップ３２８に進み、その後、ステップ３３０が実行される。ただし、読出に関する処理については、読出に関する処理の後（ステップ３３８の後）のROMライタ１０に返すステップ３２８は、一旦ワークRAM１３５に格納されたユーザROM内のユーザ・プログラム１２７の読出データをROMライタ１０へ送信する処理を含む。
【００７０】
一実施例において、装置１００は遊技機を制御する遊技機用装置であってもよい。一実施例において、図１に示した装置１００は、一つのチップ上で実装されていてもよい。そのような一つのチップは、マイクロコンピュータ、マイコン、ワンチップマイコン、プロセッサチップなどと称される。この場合、プロセッサ１０５は、プロセッサコアとすることもできる。他の実施例において、一つのチップ上で実装される装置１００は、基板に実装されていてもよい。この場合、遊技機において、当該基板を主基板及びサブ基板として用いた遊技機が構成されていてもよい。遊技機において、主基板は、主に遊技機の抽選を制御し、サブ基板は、遊技機の払出し及び／又は演出を制御する。
【００７１】
上記の実施例において、ハードウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ソフトウエアで実現することができ、そして、ソフトウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ハードウエアで実現することができることは理解されるであろう。
【００７２】
以上に説明した処理又は処理順序において、ある処理において、その処理ではまだ利用することができないはずのデータを利用しているなどの処理又は処理順序上の矛盾が生じない限りにおいて、処理又は処理順序を自由に変更することができる。
【００７３】
以上に説明してきた各実施例に関し、各実施例の一部又は全部を組み合わせて一つの実施例として実現されてもよい。
【００７４】
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【００７５】
１００  装置
１０５  プロセッサ
１１０  バスコントローラ
１１２  ROMライタ通信回路
１１５  プログラム記憶装置
１１７  制御プログラム
１２５  ユーザROM
１２７  ユーザ・プログラム
１２８  アクセス情報メモリ
１３５  ワークRAM
２０５  書込開始情報エリア
２１０  書込終了情報エリア
２１５  読出開始情報エリア
２２０  読出終了情報エリア
２２５  消去開始情報エリア
２３０  消去終了情報エリア
２３５  ベリファイ開始情報エリア
２４０  ベリファイ終了情報エリア
２４５  ブランク確認開始情報エリア
２５０  ブランク確認終了情報エリア
２５５  ROMライタ通信（送信）終了情報エリア
２６０  ROMライタ通信（受信）終了情報エリア
【図１】
2017162363.tif 000003
【図２】
2017162363.tif 000004
【図３】
2017162363.tif 000005
【図４】
2017162363.tif 000006