(57)【要約】【課題】プログラム容量を不必要に増やすことなく、ＲＡＭのバックアップエリア内のデータのチェックデータを確実に生成させる。【解決手段】遊技機制御用チップが、遊技機を制御するプログラムを格納するＲＯＭと、当該プログラムに従って情報処理を実行する中央処理部と、当該中央処理部にアクセスされるＲＡＭと、当該ＲＯＭ、当該中央処理部、及び当該ＲＡＭを接続するバスと、当該バスに接続され、所定の開始トリガに応答して当該ＲＡＭの所定のアドレス範囲内のすべてのデータのチェックデータを生成して計算結果格納部に格納するチェックデータ生成回路と、を備えるように構成する。【選択図】図２
2016168106.tif 000002
【特許請求の範囲】
【請求項１】
遊技機を制御するプログラムを格納するＲＯＭと、
前記プログラムに従って情報処理を実行する中央処理部と、
前記中央処理部にアクセスされるＲＡＭと、
前記ＲＯＭ、前記中央処理部、及び前記ＲＡＭを接続するバスと、
前記バスに接続され、所定の開始トリガに応答して前記ＲＡＭの所定のアドレス範囲内のすべてのデータのチェックデータを生成して計算結果格納部に格納するチェックデータ生成回路と、を備えたことを特徴とする遊技機制御用チップ。
【請求項２】
前記チェックデータ生成回路は、前記チェックデータを生成して前記計算結果格納部に格納すると共に、前記中央処理部に前記チェックデータの生成が完了した旨を示す信号を伝達する、請求項１に記載の遊技機制御用チップ。
【請求項３】
前記チェックデータ生成回路は、前記チェックデータの生成時に前記ＲＡＭの前記所定のアドレス範囲の一方の端である読出し開始アドレスから他方の端である読出し終了アドレスに向かってデータの読み出しがなされる場合に、前記読出し開始アドレスを特定する読出し開始アドレス特定情報、及び前記読出し終了アドレスを特定する読出し終了アドレス特定情報をそれぞれ記憶する読出し開始アドレス特定情報記憶手段及び読出し終了アドレス特定情報記憶手段を有する、請求項１又は２に記載の遊技機制御用チップ。
【請求項４】
前記ＲＯＭに記憶された前記プログラムは、ユーザによって定義されるユーザプログラムを含み、
前記ユーザプログラムは、前記中央処理部が前記ユーザプログラムを実行することによって、前記開始トリガを前記チェックデータ生成回路に与えるとともに、前記ＲＡＭの前記所定のアドレス範囲内のデータの順次読み出し又は順次書込みを開始させるものであり、
前記チェックデータ生成回路は、前記中央処理部が前記ＲＡＭの前記所定のアドレス範囲内のデータの読み出し又は書込みを行うタイミングでデータバスから前記データを取得することによって前記チェックデータを生成する、請求項１から３のいずれか１項に記載の遊技機制御用チップ。
【請求項５】
前記チェックデータ生成回路は、前記開始トリガの受信後に、前記ＲＡＭの前記読出し開始アドレスから前記読出し終了アドレスまでのデータを前記中央処理部が前記ＲＡＭにアクセスしていないタイミングで順次読み出して前記チェックデータを生成する、請求項３に記載の遊技機制御用チップ。
【請求項６】
前記読出し開始アドレス特定情報は前記読出し開始アドレスの値であり、前記読出し終了アドレス特定情報は前記読出し終了アドレスの値である、請求項３又は５に記載の遊技機制御用チップ。
【請求項７】
前記読出し開始アドレス特定情報は前記開始アドレスの値であり、前記読出し終了アドレス特定情報は前記読出し開始アドレスから前記読出し終了アドレスまでの範囲長を示す情報である、請求項３又は５に記載の遊技機制御用チップ。
【請求項８】
前記チェックデータ生成回路の前記開始トリガは、前記中央処理部が前記ＲＡＭの前記読出し終了アドレスへデータを書き込んだことの検知である、請求項３又は５に記載の遊技機制御用チップ。
【請求項９】
前記ＲＯＭに記憶された前記プログラムは、ユーザによって定義されるユーザプログラムを含み、
前記中央処理部が前記ユーザプログラムを実行することによって、前記読出し開始アドレス特定情報及び前記読出し終了アドレス特定情報をそれぞれ前記チェックデータ生成回路の前記読出し開始アドレス特定情報記憶手段及び前記読出し終了アドレス特定情報記憶手段に記憶させる、請求項３又は５に記載の遊技機制御用チップ。
【請求項１０】
前記ＲＯＭに記憶された前記プログラムは、電源オン時に実行されるブートプログラムを含み、
前記ＲＯＭは、前記ブートプログラムによって参照される設定値を記憶するプログラム管理領域を含み、
前記プログラム管理領域は、前記読出し開始アドレス特定情報及び前記読出し終了アドレス特定情報を記憶しており、
電源オン時に前記中央処理部が前記ブートプログラムを実行することによって、前記プログラム管理領域に記憶された前記読出し開始アドレス特定情報及び前記読出し終了アドレス特定情報をそれぞれ前記チェックデータ生成回路の前記読出し開始アドレス特定情報記憶手段及び前記読出し終了アドレス特定情報記憶手段に記憶させる、請求項３又は５に記載の遊技機制御用チップ。
【請求項１１】
前記ＲＯＭに記憶された前記プログラムは、ユーザによって定義されるユーザプログラムを含み、
前記中央処理部は、前記ユーザプログラムを実行することによって、生成された前記チェックデータを前記計算結果格納部から読み出して、前記ＲＡＭ上の所定の位置にあるチェックデータ格納領域に記憶させる、請求項１又は２に記載の遊技機制御用チップ。
【請求項１２】
前記チェックデータ格納領域は、前記ＲＡＭの前記所定のアドレス範囲の直前あるいは直後である、請求項１１に記載の遊技機制御用チップ。
【請求項１３】
前記ＲＯＭに記憶された前記プログラムは、電源オン時に実行されるブートプログラムを含み、
電源オン時に前記中央処理部が前記ブートプログラムを実行することによって、前記チェックデータ生成回路に前記開始トリガを与えることで前記ＲＡＭの前記所定のアドレス範囲の新たなチェックデータを生成させて前記計算結果格納部に格納させると共に、前記チェックデータ格納領域に記憶された前回生成されたチェックデータを読出し、前記前回生成されたチェックデータと前記計算結果格納部に格納された前記新たなチェックデータとを比較し、その比較結果を前記ユーザプログラムからアクセス可能な所定の領域に記憶させる、請求項１１に記載の遊技機制御用チップ。
【請求項１４】
前記ＲＡＭの前記所定のアドレス範囲は、データ送信のためのバッファ領域として使用されている、請求項１又は２に記載の遊技機制御用チップ
【請求項１５】
前記ＲＡＭの前記所定のアドレス範囲は、データ受信のためのバッファ領域として使用されている、請求項１又は２に記載の遊技機制御用チップ。
【請求項１６】
受信データは前記ＲＡＭの前記所定のアドレス範囲のバッファリング開始アドレスから順次バッファリングさせ、それがバッファリング終了アドレスまで達すると、前記チェックデータ生成回路に対して前記所定の開始トリガを発生させられる、請求項１５に記載の遊技機制御用チップ。
【請求項１７】
受信データを前記ＲＡＭの前記所定のアドレス範囲のバッファリング開始アドレスから順次バッファリングさせ、前記受信データにバッファリングの終了を示すコードが検出されると、前記チェックデータ生成回路に対して前記所定の開始トリガを発生させられる、請求項１５に記載の遊技機制御用チップ。
【請求項１８】
請求項１から請求項１７のいずれか１項に記載の前記遊技機制御用チップを組み込んだ基板。
【請求項１９】
請求項１から請求項１７のいずれか１項に記載の遊技機制御用チップと、
電源電圧を監視し、前記電源電圧が規定値より下がった場合に、前記チェックデータ生成回路に前記開始トリガを与える電源断監視回路と、を有する基板。
【請求項２０】
請求項１８又は１９に記載の基板を含む遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は遊技機制御用チップに関し、より詳しくは、ＲＡＭのバックアップ領域のチェックデータを自動的に生成する遊技機制御用チップに関する。
【背景技術】
【０００２】
従来、パチンコ遊技機などの遊技機には遊技機制御用チップが搭載され、当該遊技機は遊技機制御用チップ内のプログラムの実行により制御されている。遊技機制御用チップは、電源断時に処理中のデータを失わないようにするため、バックアップメモリやＲＡＭのバックアップエリア等にデータをバックアップのために保存する。データをバックアップするときは、データの異常の有無を確認するためにＣＰＵがプログラムに従ってチェックデータを計算し、データとチェックデータを併せて保存する。バックアップしたデータを読み出すときも、読み出したデータのチェックデータをＣＰＵがプログラムに従って計算し、それと保存されたチェックデータとの比較を行い、比較結果が同じであった場合にバックアップされたデータに異常がないものと判断している。
【０００３】
通常、データのバックアップ時や読み出し時に行うチェックデータの計算は、ＣＰＵがプログラムに従って実行する。このような遊技の制御に関するプログラムやこれに関する初期データ等は遊技機制御用チップに内蔵されたＲＯＭに格納される。
【０００４】
種々の法律により遊技機制御用チップの内蔵ＲＯＭ内にプログラムやデータ等を格納する記憶容量は規定されている。したがって、限られた記憶容量の内蔵ＲＯＭ内では、ユーザプログラムに使用可能な容量は制約を受ける。遊技機のゲーム内容の多様化に伴い、プログラムで使用したい容量は増えているのに対して、ユーザプログラムが制約されると、ゲーム内容も制約されることとなるのでゲームの興趣が低下してしまう恐れがある。
【０００５】
また、バックアップされるデータのチェックデータの計算は、プログラムによりＣＰＵに指示することによって開始される。しかし、例えば電源断時などにおいては適切なタイミングでチェックデータの計算の開始が指示されなければ、チェックデータの計算が正常に行われない可能性もある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、データバックアップ処理におけるチェックデータの生成処理をプログラムに従ってＣＰＵが実行することにより、ユーザプログラムの容量の制限が大きくなり、ゲームの興趣も低下するという問題やチェックデータの計算が正常に行われない可能性があるという問題があった。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明に係る遊技機制御用チップは、遊技機を制御するプログラムを格納するＲＯＭと、当該プログラムに従って情報処理を実行する中央処理部と、当該中央処理部にアクセスされるＲＡＭと、当該ＲＯＭ、当該中央処理部、及び当該ＲＡＭを接続するバスと、当該バスに接続され、所定の開始トリガに応答して当該ＲＡＭの所定のアドレス範囲内のすべてのデータのチェックデータを生成して計算結果格納部に格納するチェックデータ生成回路と、を備える。
【０００８】
チェックデータ生成回路は、チェックデータを生成して計算結果格納部に格納すると共に、中央処理部にチェックデータの生成が完了した旨を示す信号を伝達するように構成できる。
【０００９】
当該チェックデータ生成回路は、当該チェックデータの生成時に当該ＲＡＭの当該所定のアドレス範囲の一方の端である読出し開始アドレスから他方の端である読出し終了アドレスに向かってデータの読み出しがなされる場合に、読出し開始アドレスを特定する読出し開始アドレス特定情報、及び読出し終了アドレスを特定する読出し終了アドレス特定情報をそれぞれ記憶する読出し開始アドレス特定情報記憶手段及び読出し終了アドレス特定情報記憶手段を有するように構成できる。
【００１０】
ＲＯＭに記憶されたプログラムは、ユーザによって定義されるユーザプログラムを含み、ユーザプログラムは、中央処理部がユーザプログラムを実行することによって、開始トリガをチェックデータ生成回路に与えるとともに、ＲＡＭの所定のアドレス範囲内のデータの順次読み出し又は順次書込みを開始させるものであり、チェックデータ生成回路は、中央処理部がＲＡＭの所定のアドレス範囲内のデータの読み出し又は書込みを行うタイミングでデータバスからデータを取得することによってチェックデータを生成するように構成できる。
【００１１】
チェックデータ生成回路は、開始トリガの受信後に、ＲＡＭの読出し開始アドレスから読出し終了アドレスまでのデータを中央処理部がＲＡＭにアクセスしていないタイミングで順次読み出してチェックデータを生成するように構成できる。読出し開始アドレス特定情報は読出し開始アドレスの値であり、読出し終了アドレス特定情報は読出し終了アドレスの値であるように構成できる。読出し開始アドレス特定情報は開始アドレスの値であり、読出し終了アドレス特定情報は読出し開始アドレスから読出し終了アドレスまでの範囲長を示す情報であるように構成できる。チェックデータ生成回路の開始トリガは、中央処理部がＲＡＭの読出し終了アドレスへデータを書き込んだことの検知であるように構成できる。
【００１２】
ＲＯＭに記憶されたプログラムは、ユーザによって定義されるユーザプログラムを含み、中央処理部がユーザプログラムを実行することによって、読出し開始アドレス特定情報及び読出し終了アドレス特定情報をそれぞれチェックデータ生成回路の読出し開始アドレス特定情報記憶手段及び読出し終了アドレス特定情報記憶手段に記憶させるように構成できる。ＲＯＭに記憶されたプログラムは、電源オン時に実行されるブートプログラムを含み、ＲＯＭは、ブートプログラムによって参照される設定値を記憶するプログラム管理領域を含み、プログラム管理領域は、読出し開始アドレス特定情報及び読出し終了アドレス特定情報を記憶しており、電源オン時に中央処理部がブートプログラムを実行することによって、プログラム管理領域に記憶された読出し開始アドレス特定情報及び読出し終了アドレス特定情報をそれぞれチェックデータ生成回路の読出し開始アドレス特定情報記憶手段及び読出し終了アドレス特定情報記憶手段に記憶させるように構成できる。
【００１３】
ＲＯＭに記憶されたプログラムは、ユーザによって定義されるユーザプログラムを含み、中央処理部は、ユーザプログラムを実行することによって、生成されたチェックデータを計算結果格納部から読み出して、ＲＡＭ上の所定の位置にあるチェックデータ格納領域に記憶させるように構成できる。チェックデータ格納領域は、ＲＡＭの所定のアドレス範囲の直前あるいは直後であるように構成できる。
【００１４】
ＲＯＭに記憶されたプログラムは、電源オン時に実行されるブートプログラムを含み、電源オン時に中央処理部がブートプログラムを実行することによって、チェックデータ生成回路に開始トリガを与えることでＲＡＭの所定のアドレス範囲の新たなチェックデータを生成させて計算結果格納部に格納させると共に、チェックデータ格納領域に記憶された前回生成されたチェックデータを読出し、前回生成されたチェックデータと計算結果格納部に格納された新たなチェックデータとを比較し、その比較結果をユーザプログラムからアクセス可能な所定の領域に記憶させるように構成できる。
【００１５】
ＲＡＭの所定のアドレス範囲は、データ送信のためのバッファ領域として使用されているように構成できる。
【００１６】
ＲＡＭの所定のアドレス範囲は、データ受信のためのバッファ領域として使用されているように構成できる。受信データはＲＡＭの所定のアドレス範囲のバッファリング開始アドレスから順次バッファリングさせ、それがバッファリング終了アドレスまで達すると、チェックデータ生成回路に対して所定の開始トリガを発生させられるように構成できる。受信データをＲＡＭの所定のアドレス範囲のバッファリング開始アドレスから順次バッファリングさせ、受信データにバッファリングの終了を示すコードが検出されると、チェックデータ生成回路に対して所定の開始トリガを発生させられるように構成できる。
【００１７】
本発明は、上記の遊技機制御用チップを組み込んだ基板とすることもできる。本発明は、上記の遊技機制御用チップと、電源電圧を監視し、電源電圧が規定値より下がった場合に、チェックデータ生成回路に開始トリガを与える電源断監視回路と、を有するように構成できる。本発明は、上記の基板を含む遊技機とすることもできる。
【発明の効果】
【００１８】
本発明に係る遊技機制御用チップは、本発明に係る遊技機制御用チップは、所定の開始トリガに応答してＲＡＭの所定のアドレス範囲内のすべてのデータのチェックデータを生成して計算結果格納部に格納するチェックデータ生成回路を備えるため、プログラム容量を不必要に増やすことなく、所定の開始トリガを与えるだけで、ＲＡＭの所定のアドレス範囲内のすべてのデータのチェックデータを確実に生成させることができる。
【００１９】
チェックデータ生成回路は、中央処理部にチェックデータの生成が完了した旨を示す信号を伝達するように構成できるため、チェックデータの生成が完了すると直ちに中央処理部に後続の処理を行わせることができる。
【００２０】
チェクデータ生成回路をＣＰＵと別ロジックで構成することによりプログラムで実行するよりも実行時間が短くなりバックアップに掛かる処理時間が短くなりシステムの安定性が向上する。また、送受信データのＢＣＣに使用することにより、送信、受信時の応答速度が向上する。
【００２１】
チェックデータ生成回路は、読出し開始アドレス特定情報記憶手段及び読出し終了アドレス特定情報記憶手段を有するように構成できるため、そこにアドレスを書き込むことにより、チェックデータ生成のために読み出す範囲をチェックデータ生成回路に伝達することができる。
【００２２】
中央処理部がユーザプログラムの実行によって開始トリガをチェックデータ生成回路に与えるとともに、チェックデータ生成領域のデータの順次読み出し又は順次書込みを開始させ、チェックデータ生成回路が読み出し又は書込みを行うタイミングでデータバスからデータを取得することによってチェックデータを生成するように構成できるため、チェックデータ生成の際にチェックデータ生成回路自体がＲＡＭのアドレス指定をする必要がなく、チェックデータ生成回路の構成を単純にできる。
【００２３】
チェックデータ生成回路は、開始トリガの受信後に、ＲＡＭの読出し開始アドレスから読出し終了アドレスまでのデータを中央処理部がＲＡＭにアクセスしていないタイミングで順次読み出してチェックデータを生成するように構成できるため、チェックデータの生成が開始されると、中央処理部の動作を妨げることなく、プログラムの実行状態にかかわらず確実にチェックデータを生成することができる。チェックデータ生成回路の開始トリガを中央処理部がＲＡＭの読出し終了アドレスへデータを書き込んだことの検知とすることができるため、バックアップエリア全体のデータの更新が完了するとチェックデータの生成を開始させ、更新されたデータに対して最新のチェックデータを即時生成することが可能となる。
【００２４】
中央処理部がユーザプログラムを実行することによって、チェックデータ生成回路の読出し開始アドレス特定情報記憶手段及び読出し終了アドレス特定情報記憶手段に適切な値を記憶させるように構成できるため、チェックデータ生成エリアの柔軟な設定が可能となる。電源オン時に中央処理部がブートプログラムを実行することによって、プログラム管理領域に記憶されたデータをチェックデータ生成回路の読出し開始アドレス特定情報記憶手段及び読出し終了アドレス特定情報記憶手段に記憶させるように構成できるため、そのデータをユーザプログラムが扱わないようにしてセキュリティを確保できる。
【００２５】
中央処理部はユーザプログラムを実行することによって、生成されたチェックデータをチェックデータ生成回路から読み出して、ＲＡＭ上に記憶させるように構成できるため、生成されたチェックデータが必要なときにユーザプログラムがそれを読み出して利用できる。チェックデータ格納領域は、ＲＡＭの所定のアドレス範囲の直前あるいは直後であるように構成できるため、チェックデータ格納領域の位置をＲＡＭ上で簡単に特定できる。
【００２６】
電源オン時に中央処理部がブートプログラムを実行することによって、チェックデータ生成回路に開始トリガを与えることでＲＡＭの所定のアドレス範囲の新たなチェックデータを生成させて計算結果格納部に格納させると共に、チェックデータ格納領域に記憶された前回生成されたチェックデータを読出し、前回生成されたチェックデータと計算結果格納部に格納された新たなチェックデータとを比較し、その比較結果をユーザプログラムからアクセス可能な所定の領域に記憶させるように構成できるため、パワーオン時に、バックアップエリアのデータに異常があったかどうかを簡単かつ確実に確認し、その確認結果をユーザプログラムに伝達できる。
【００２７】
ＲＡＭのバックアップエリアをデータ送信のためのバッファ領域として使用することにより、送信データのチェックデータを簡単かつ確実に生成できる。
【００２８】
ＲＡＭのバックアップエリアをデータ受信のためのバッファ領域として使用することにより、受信データのチェックデータを簡単かつ確実に生成でき、受信データの異常の有無を確認できる。受信データがバッファリング終了アドレスまでバッファリングされるとチェックデータ生成を開始させるように構成できるため、バッファ領域全体のデータ受信がなされると直ちにチェックデータ生成を行わせることができる。受信データにバッファリングの終了を示すコードが検出されるとチェックデータ生成を開始させるように構成できるため、データ受信が終了すると直ちにチェックデータ生成を行わせることができる。
【００２９】
上記の遊技機制御用チップを組み込んだ基板を使用することにより、遊技機能を実現する基板に、上記の各種の効果を付与することができる。電源電圧を監視し、電源電圧が規定値より下がった場合に、チェックデータ生成を開始させる電源断監視回路を基板に組み込むことにより、不意の電源断の際においても確実にチェックデータを生成させることができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の第１及び第２の実施形態に係る遊技機システムの外観を示す図である。
【図２】本発明の第１及び第２の実施形態に係る遊技機制御用チップの構成を示したブロック図である。
【図３】本発明の第１及び第２の実施形態に係る遊技機制御用チップが有するユーザＲＯＭのメモリマップ図である。
【図４】本発明の第１及び第２の実施形態に係る遊技機制御用チップが有するユーザＲＡＭのメモリマップ図である。
【図５】本発明の第１及び第２の実施形態に係る遊技機制御用チップのパワーダウン時の動作フロー図である。
【図６】本発明の第１及び第２の実施形態に係る遊技機制御用チップのパワーオン時の動作フロー図である。
【図７】本発明の第１の実施形態に係るＣＰＵコア及びチェックデータ生成回路によるチェックデータ生成時の動作フロー図である。
【図８】本発明の第２の実施形態に係るチェックデータ生成回路によるチェックデータ生成時の動作フロー図である。
【発明を実施するための形態】
【００３１】
これより図面を参照して、本発明に係る遊技機制御用チップの構成について説明する。本発明は、ＣＰＵコアとチェックデータ生成回路が協働してチェックデータを生成する第１の実施形態、及びＣＰＵコアを使用せずにチェックデータ生成回路によってチェックデータを生成する第２の実施形態がある。以下、特に言及しない限り、第１及び第２の実施形態において共通する構成や動作の説明を行う。まず当該チップに関係する遊技システムの構成、遊技システムにおける各チップの構成を説明する。
【００３２】
遊技機システムの構成
図１に、本発明の実施形態に係るパチンコシステム１００の外観を示す。本実施例では、遊技機の一例としてパチンコ機を用いて説明するが、パチスロ機などの他の遊技機に置き換えてもよい。図１において、パチンコシステム１００は、２台のパチンコ機１０５、１１０、及び抽選媒体供給装置（玉貸し装置又はサンドとも呼ばれる）１１５を備える。
【００３３】
パチンコ機１０５は、抽選の実行及び抽選結果の表示を行う遊技盤部１２０、抽選結果に応じて払出を行う払出部１２５、及び、ハンドル部１３０を備える。パチンコ機１１０は、パチンコ機１０５と同様な構成を備えている。パチンコ機１０５、１１０は、払出部１２５から実際の玉を排出する。
【００３４】
抽選媒体供給装置１１５は、遊技者が購入したパチンコ玉をパチンコ機１０５に供給する装置である。抽選媒体供給装置１１５は、コイン投入部１３５を有し、遊技者によるコインの投入に応じて、抽選媒体であるパチンコ玉をパチンコ機１０５に供給する。コイン投入部１３５は、紙幣やプリペイドカードなどの投入部とすることもでき、この場合、抽選媒体は紙幣やプリペイドカードなどの投入に応じて供給される。遊技者が抽選媒体供給装置１１５にコイン等を投入することによって、抽選媒体供給装置１１５は、投入されたコイン等の金額に対応する個数の抽選媒体をパチンコ機１０５に供給する。パチンコ機１０５は、抽選媒体を使用することによって遊技者にパチンコゲームを行わせる。ハンドル部１３０は、遊技者がパチンコ玉をパチンコ機１０５に打ち出すのに使用される。
【００３５】
遊技機システムにおいて、遊技盤部１２０、払出部１２５は、それぞれ独立した基板に搭載された遊技機制御用チップ、払出制御用チップによって制御される。遊技機制御用チップは、玉の検出、抽選、入賞時の払出の通知、画像や音などの演出制御などを行う。具体的には例えば、入賞時などの玉の払出しが必要なときに払出制御用チップに対し払出命令を送信したり、遊技機に搭載される液晶画面の制御を行うときに画像制御用チップに画像制御命令を送信したりすることで遊技の制御を行う。払出制御用チップは、遊技機制御用チップが制御する処理以外である払出などの制御を行う。具体的には例えば、遊技機制御用チップからの払出命令を受けて、パチンコ玉の払い出しを行う。本発明は、それらのいずれのチップにも適用可能であり、また、データをバックアップする必要がある他の種類のチップにも適用可能である。以下においては、遊技機制御用チップを例にして説明する。
【００３６】
遊技機制御用チップの構成
図２は、遊技機制御用チップ２００のブロック図である。本発明の第１の実施形態においては、遊技機制御用チップ２００は、ＣＰＵコア２１１と、クロック回路２１２と、リセットモード制御回路２１３と、メモリ（ブートＲＯＭ２１４、ユーザＲＯＭ２１５、ブートＲＡＭ２１６、ユーザＲＡＭ２１７から構成される）、チェックデータ生成回路２２１と、セキュリティチェック回路２５１と、指定エリア外走行禁止（ＩＡＴ）回路２５２と、ウォッチドッグタイマ（ＷＤＴ）回路２５３と、固有データ格納回路２５４と、乱数回路２５５と、照合回路２５６と、これらを接続するバス２６１と、を備える。本発明の第１の実施形態におけるチェックデータ生成回路２２１は、チェックデータを生成する対象のデータをＲＡＭからＣＰＵコア２１１が読み出す態様の場合の構成であり、機能指示レジスタ２２２、ＲＡＭチェックデータ計算回路２２３、ＲＡＭチェック開始アドレスレジスタ２２４、ＲＡＭチェック終了アドレスレジスタ２２５、ステータスレジスタ２２６、計算結果格納レジスタ２２７から構成されるものである。機能指示レジスタ２２２はＣＰＵコア２１１からの機能指示コマンドなどを受け付けるレジスタであり、ＲＡＭチェックデータ計算回路２２３はチェックサムやＣＲＣなどのチェックデータを計算して生成する回路であり、ＲＡＭチェック開始アドレスレジスタ２２４はバックアップエリア４０２のバックアップ開始アドレスを記憶するレジスタであり、ＲＡＭチェック終了アドレスレジスタ２２５はバックアップエリア４０２のバックアップ終了アドレスを記憶するレジスタであり、ステータスレジスタ２２６はチェックデータ生成回路２２１の実行状態（初期化完了、計算中、計算完了等）を示す値が格納されるレジスタであり、計算結果格納レジスタ２２７は計算したチェックデータを格納するレジスタである。
【００３７】
本発明の第２の実施形態においては、図２において、チェックデータ生成回路２２１に代えてチェックデータ生成回路２３１を構成に有する。第２の実施形態では、チェックデータを生成する対象のデータを、ＣＰＵコアを使用せずに、ＲＡＭからチェックデータ生成回路２３１が読み出す。チェックデータ生成回路２３１は、機能指示レジスタ２３２、ＲＡＭチェックデータ計算回路２３３、ＲＡＭチェック開始アドレスレジスタ２３４、ステータスレジスタ２３６、計算結果格納レジスタ２３７、データポインタ２４１、ＲＡＭチェックバイト数カウンタ２４２から構成される。機能指示レジスタ２３２はＣＰＵコア２１１からの機能指示コマンドなどを受け付けるレジスタであり、ＲＡＭチェックデータ計算回路２３３はチェックサムやＣＲＣなどのチェックデータを計算して生成する回路であり、ＲＡＭチェック開始アドレスレジスタ２３４はバックアップエリア４０２の先頭アドレスを記憶するレジスタであり、ステータスレジスタ２３６はチェックデータ生成回路２２１の実行状態（初期化完了、計算中、計算完了等）を示す値が格納されるレジスタであり、計算結果格納レジスタ２３７は計算したチェックデータを格納するレジスタであり、データポインタ２４１は、チェックデータ生成回路２２１がユーザＲＡＭ２１７にアクセスする際のアドレスを保持するポインタであり、ＲＡＭチェックバイト数カウンタ２４２は、バックアップエリア４０２の範囲長を示す値を記憶するレジスタであり、好適にはチェックデータ計算の際のユーザＲＡＭ２１７へのアクセスの回数に応じて減算され、残ったアクセスすべき領域の範囲長を示すものである。
【００３８】
以下、本発明の第１及び第２の実施形態に共通する構成の説明に戻る。ＣＰＵコア２１１は、メモリに記憶されたプログラムを実行する中央処理部として機能するものであり、メモリに記憶されたプログラムのフェッチ、デコード、実行を行うことにより、プログラムの目的に応じた情報処理を行う構成である。
【００３９】
クロック回路２１２は、遊技機制御用チップ２００内の各要素を同期させて動作させるためのシステムクロック信号を生成する回路である。クロック回路２１２は、所定の基準クロックを分周し、ＣＰＵコア２１１や内部の各回路にシステムクロックとして供給する。
【００４０】
リセットモード制御回路２１３は、システムリセット端子から入力された外部システムリセット、内部システムリセット、及び内部ユーザリセットを制御する回路である。内部システムリセット及び内部ユーザリセットは、ウォッチドッグタイマタイムアウト信号又は指定エリア外走行禁止（ＩＡＴ）発生信号に応じて発生させられる。システムリセットの要求がなされると、ＣＰＵコア２１１を含むすべての内部回路が初期化される。ユーザリセットの要求がなされるとＣＰＵコア２１１と一部の内部回路が初期化される。内部システムリセットと内部ユーザリセットの動作は、プログラム管理エリア内のデータで選択して設定される。
【００４１】
リセットモード制御回路２１３は、モードの制御も実行する。リセットモード制御回路２１３は、システムリセットの入力やＰＲＯＭモードを要求する信号の入力やセキュリティチェックの結果により、遊技機制御用チップのモードをＰＲＯＭモード、セキュリティモード、ユーザモードに切り替える回路である。ここで各モードについて説明する。
遊技機制御用チップは、電源投入後、システムリセット信号が入力され、ＰＲＯＭモード信号の入力があると、ＰＲＯＭモードに移行し、ＰＲＯＭモード信号の入力がなければ、セキュリティモードに移行する。
ＰＲＯＭモードは、ユーザＲＯＭ２１５にユーザがプログラムを書き込むためのモードで、開発時に使用される開発用の遊技機制御用チップでは再書込みが可能だが、市販される遊技機に搭載される量産用の遊技機制御用チップにおいては、書き込みは一度だけ可能になっている。
セキュリティモードは、ブートＲＯＭ２１４により実行されるモードであり、チップの初期化を行った後、遊技機制御用チップのユーザＲＯＭ２１５内のプログラムが改ざんされていないかを判定するセキュリティチェックを行うモードである。セキュリティチェックの演算は、後述のセキュリティチェック回路２５１が行う。
ユーザモードは、ユーザＲＯＭ２１５内のユーザプログラムに従い、遊技機を動作させるモードである。
【００４２】
ブートＲＯＭ２１４は、システムリセット時やパワーオン時などにおいて、セキュリティチェックやチップの初期化動作を実行させるためのブートプログラムを格納したＲＯＭである。セキュリティのため、セキュリティモード以外ではブートＲＯＭ２１４はアクセスできないように制限されている。
【００４３】
ユーザＲＯＭ２１５は、遊技機メーカが遊技機の動作を制御するための遊技制御用プログラムや遊技機制御用データなどからなるユーザプログラムを記憶させるためのＲＯＭである。
【００４４】
ブートＲＡＭ２１６は、ブートプログラムが初期化動作を実行する際に使用されるＲＡＭである。セキュリティのため、セキュリティモード以外ではブートＲＡＭ２１６はアクセスできないように制限されている。
【００４５】
ユーザＲＡＭ２１７は、ユーザプログラムの実行時に使用するためのＲＡＭである。ユーザＲＡＭ２１７の一領域に、バックアップエリア４０２とバックアップエリアのデータが正常に格納されているかをチェックするためのチェックデータ２１７ｂを格納するためのチェックデータ格納エリア２１７ａが設けられている。
【００４６】
セキュリティチェック回路２５１は、セキュリティモードにおいて、ユーザＲＯＭ２１５内のプログラム等の情報が正規のものであるか否かを検査する回路で、ユーザＲＯＭ２１５内のプログラムコード等にハッシュ演算等の所定の演算を行って得たコードと、プログラム管理エリア３０２内のセキュリティコードを比較することで、適合を受けたプログラムが改変されていないかを確認する回路である。この時、上記のプログラムに改ざんがないかを確認する行為をセキュリティチェックという。ここでセキュリティコードとは、ユーザＲＯＭ２１５内に格納されているプログラムのコードなどにセキュリティチェック時と同様な所定の演算を行って求めた結果をあらかじめ書込んだコードである。上記セキュリティチェックの結果、演算結果のコードとセキュリティコードが一致していれば、正規のプログラムであると判断し、ユーザモードに移行する。一致しなければ、正規のプログラムではないと判断し、遊技機制御用チップ２００を停止させ、遊技機を動作させない。
【００４７】
指定エリア外走行禁止（ＩＡＴ）回路２５２は、ユーザプログラムがプログラム管理エリアで設定された指定エリア内で正しく実行されているかどうかを監視する回路である。指定エリア外でユーザプログラムが実行されると、ＩＡＴ発生信号を出力しＣＰＵコア２１１をリセットする。
【００４８】
ウォッチドッグタイマ（ＷＤＴ）回路２５３は、チップの暴走を監視するタイマであり、チップからの定期的なアクセスの有無を監視しており、一定時間内にアクセスがないとチップが暴走したと判断し、タイムアウト信号によってＣＰＵコア２１１にリセットの要求を発生させる回路である。前述したプログラム管理エリア３０２は、ユーザＲＯＭ２１５内において、ユーザプログラムを実行するのに必要な情報を格納するエリアであるが、プログラム管理エリア３０２にタイムアウト時間を設定することやＩＡＴ、ＷＤＴのリセットについてシステムリセットを行うかユーザリセットを行うかの選択の設定ができる。
【００４９】
固有データ格納回路２５４は、複数の固有データ（ＩＤ）を格納するものであり、その中の特定の情報は、ユーザプログラム及び外部の照合機から読み取ることが可能である。
【００５０】
乱数回路２５５は、乱数を発生させる回路であり、例えば８ビット乱数を６チャネル、１６ビット乱数を４チャネルなどで乱数を発生させることができる。発生させた乱数は、ゲームの抽選などに使用される。
【００５１】
照合回路２５６は、外部の照合機と接続し、チップを所定の手順で照合することによってチップの真がんについてのチェックを行うための回路である。照合回路２５６は、固有データ格納回路２５４に格納された固有データを特定の条件の下で外部に出力することが可能である。
【００５２】
バス２６１はＣＰＵコア２１１と遊技機制御用チップ２００内の他の要素とを接続するものであって、データバス、アドレスバス、制御信号線等を含むものである。
【００５３】
メモリマップ
図３に、ユーザＲＯＭ２１５のメモリマップを示す。プログラムコードエリア／プログラムデータエリア３０１は、示されたアドレス範囲（００００ｈから２ＦＢＦｈ）の中で自由に設定することができる。遊技機メーカ等のユーザは、遊技機のソフトウェアの開発を実行する際に、プログラムコードエリア及びプログラムデータエリアに自社の遊技機を制御するプログラムを書き込む。ユーザＲＯＭ２１５の下位の６４バイトは遊技機制御用チップ２００がユーザプログラムを実行するために必要な情報を格納するプログラム管理エリア３０２であり、各種コード、チップ内の内部機能設定のためのデータ、不正改造を防止するための情報等を格納する。なお前述した遊技機に関する規則の制約とは、具体的にはユーザＲＯＭ２１５の記憶容量、制御領域の容量、データ領域の容量等の制限である。上記プログラム管理エリア３０２はユーザプログラムからは読み出せない構造となっている。
【００５４】
図４に、ユーザＲＡＭ２１７のメモリマップを示す。ユーザＲＡＭ２１７は、ＣＰＵコア２１１が主にユーザプログラムなどを実行する際に用いられるワークエリア４０１、電源断後も使用するためにバックアップするデータを記憶する所定のアドレス範囲の領域であるバックアップエリア４０２、バックアップエリア４０２に記憶されているデータのチェックデータを格納するチェックデータ格納エリア２１７ａを含んでいる。バックアップされるデータは、ＣＰＵコア２１１のレジスタに保存されている情報や遊技機制御に必要な情報、遊技結果を示す情報などとすることができる。電源断時にこれらのデータをバックアップしていれば、再起動時に電源断前の状態に復帰させて遊技機を起動し、電源断の前の状態から遊技の継続を行うことができる。そしてチェックデータは、そのバックアップされるデータがバックアップ中にデータ化けなどの異常を起こしていないかどうかを確認するために使用される。ユーザＲＡＭ２１７は好適には電源がバッテリ、スーパーキャパシタ等によりバックアップされており、電源切断後もＲＡＭ内のデータが保持されている。
【００５５】
チェックデータ生成の開始トリガ
次に、本発明に係る遊技機制御用チップ２００のチェックデータ生成の動作について説明する。バックアップエリア４０２内のデータのチェックデータ生成処理は所定の開始トリガによって計算が開始される。所定の開始トリガとしては、まず、電源監視回路（図示せず）が電源断を検出した場合が考えられる。遊技機制御用チップ２００等の電源は、通常、ＡＣ電源を整流したＤＣ入力をレギュレータにより５Ｖ等に変換したものが供給される。電源監視回路は、レギュレータに入るＤＣ入力電圧を監視しており、それが例えば電源断と見なされる規定値以下になった場合には電源断が発生したと判断し、チェックデータ生成回路２２１に開始トリガをかける。実際の電源断時には、レギュレータへの入力電圧は迅速に降下するが、それが電源断と見なされる規定値以下からレギュレータが５Ｖを出力できるための最低電圧に降下するまではレギュレータは５Ｖの電圧を遊技機制御用チップ２００に供給できるため、遊技機制御用チップ２００が動作不能になるまでには電源断から短時間ではあるが時間的余裕がある。この時間的余裕の間にチェックデータを生成させると好適である。開始トリガは、例えばノンマスカブルな割り込み（ＮＭＩ）信号等をＣＰＵコア２１１に伝達することなどによってユーザプログラムにより行うことができる。ＣＰＵコア２１１は、プログラム実行によりチェックデータ生成の開始を指示する機能指示コマンドをチェックデータ生成回路２２１の機能指示レジスタ２２２に送ることによって、チェックデータの生成を開始させる。また、所定の信号をＣＰＵ２１１を介さず直接チェックデータ生成回路２２１に送ることによって、チェックデータ生成を開始させることも可能である。
上述のＮＭＩ信号とは割込み禁止にできない最優先の割込み処理を起動する一般のＣＰＵコアには実装されている信号であるが、電源断の検出信号をＣＰＵコア周辺からのＩ／Ｏポート等の入力信号に割付けてタイマー割込み等の常時実行するプログラムで監視し、電源断信号を検出すると割込み禁止の最優先の処理としてパワーダウン時のバックアップ処理を行うこともできる。
【００５６】
他の開始トリガとしては、例えば、ユーザプログラムの指示によって、必要なときに、ＣＰＵコア２１１がチェックデータ生成の開始を指示する機能指示コマンドをチェックデータ生成回路２２１の機能指示レジスタ２２２に送ることによって、チェックデータの生成を開始させるように構成することも可能である。この場合、通信データの送受信のチェックデータの生成などの、電源断時のデータ保持の正確性の確認以外の目的で、チェックデータを動的にユーザプログラムで使用することが可能となる。
【００５７】
他の開始トリガとしては、例えば、チェックデータ生成回路２２１がＣＰＵコア２１１のユーザＲＡＭ２１７への書込みなどのメモリアクセスを監視しており、バックアップエリア４０２の読出し終了アドレスであるチェックデータ計算終了アドレス４０２ｂに書込みが行われた場合に、バックアップエリア４０２全体のデータの更新が完了したものと判断して、チェックデータ生成回路２２１がチェックデータの生成を開始するようにすることもできる。このようにすることによって、更新されたデータに対して最新のチェックデータを即時生成することが可能となる。
【００５８】
パワーダウン時の動作
図５は遊技機制御用チップ２００のパワーダウン時の動作フロー図である。電源監視回路が電源断（パワーダウン）を検出すると、ＮＭＩ信号等をＣＰＵコア２１１及び／又はチェックデータ生成回路２２１に伝達する。これに応じてチェックデータ生成回路２２１がバックアップエリアのデータのチェックデータの計算を実行する（ステップＳ５０１）。なお、チェックデータの計算の詳細な動作フローは後述する。チェックデータの計算が終了すると、チェックデータ生成回路２２１が計算したチェックデータをチェックデータ格納エリア２１７ａに書き込む（ステップＳ５０２）。なお、チェックデータ格納エリア２１７ａを、ユーザＲＡＭ２１７の一領域に代えて、チェックデータ生成回路２２１内のレジスタなどとすることも可能である。
【００５９】
パワーオン時の動作
図６は、遊技機制御用チップのパワーオン時の動作フロー図である。遊技機制御用チップ２００がパワーオンすると、以前に計算されて保存されていたチェックデータ２１７ｂを読み出す（ステップＳ６０１）。読み出しはＣＰＵコア２１１によって行われてもよく、チェックデータ生成回路２２１によって行われてもよい。次に、チェックデータ生成回路２２１は、ステップＳ５０１と同様の動作でバックアップエリアのデータのチェックデータを計算する（ステップＳ６０２）。なお、ステップＳ６０２の後にステップＳ６０１を実行することもできる。次にＣＰＵコア２１１は、ステップＳ６０１で読み出した以前のチェックデータ２１７ｂと、パワーオン直後にステップＳ６０２で計算されたチェックデータとを比較する（ステップＳ６０３）。それらの２つのチェックデータが同じであれば、バックアップエリアに保存されていたデータには異常がないことが確認されたことになる。その場合、ステップＳ６０４に移行し、バックアップエリアに保存されていたデータやワークに基づいて、電源断時に実行していた状態に復帰する処理を行う。一方、それらの２つのチェックデータが異なっていれば、バックアップエリアに保存されていたデータに異常があり、データ化けを起こしているということになる。従って、ＲＡＭのワークエリア４０１などを初期状態に戻す処理を行う（ステップＳ６０５）。
【００６０】
チェックデータ生成の詳細動作フロー（第１の実施形態：ＣＰＵ読み出し）
次に、ステップＳ５０１やステップＳ６０２で実行されるチェックデータ生成の詳細な動作フローを説明する。図７は、本発明の第１の実施形態に係る、ＣＰＵコア２１１とチェックデータ生成回路２２１が協働してチェックデータを生成する場合の動作フロー図である。第１の実施形態は、チェックデータ生成対象のバックアップエリア４０２のデータをＣＰＵコア２１１がプログラムに従って順番に読出し、その時にデータバスに現れるデータをチェックデータ生成回路２２１が取得してチェックデータを生成するものである。第１の実施形態では、チェックデータ生成の際にチェックデータ生成回路２２１自体がＲＡＭのバックアップエリア４０２のアドレス指定をする必要がなくアドレスバスを監視しながら順次データバスに現れるＲＡＭデータについて積算処理すれば良いため、チェックデータ生成回路２２１の回路の構成を単純にできると共にＣＰＵによる演算処理を行わないためチェックデータの生成が高速に行われる。
【００６１】
まず、チェックデータを生成できるようにするための準備を実行する。パワーオン時に、チェックデータ生成回路２２１の初期化を実行する（ステップＳ７０１）。初期化は、ＣＰＵ２１１がブートＲＯＭ２１４に記憶されたブートプログラムに従って実行すると好適であるが、ＣＰＵ２１１がユーザＲＯＭ２１５に記憶されたユーザプログラムに従って実行することも可能である。また、初期化の一部あるいは全部をチェックデータ生成回路２２１がＣＰＵ２１１に代わって実行してもよい。チェックデータ生成回路２２１の初期化では、ＲＡＭチェック開始アドレスレジスタ２２４にバックアップエリア４０２の読出し開始アドレスであるチェックデータ計算開始アドレス４０２ａを記憶させ、ＲＡＭチェック終了アドレスレジスタ２２５にバックアップエリア４０２の読出し終了アドレスであるチェックデータ計算終了アドレス４０２ｂを記憶させる。ここで、通常は、チェックデータ計算開始アドレス４０２ａの値よりチェックデータ計算終了アドレス４０２ｂの値の方が大きく、チェックデータの生成時に、チェックデータ計算開始アドレス４０２ａからチェックデータ計算終了アドレス４０２ｂへとアドレスをインクリメントしながらＣＰＵコア２１１のデータの読出しがなされることによりチェックデータの生成が行われる。しかし、チェックデータ計算開始アドレス４０２ａの値よりチェックデータ計算終了アドレス４０２ｂの値の方が小さく、チェックデータの生成時に、チェックデータ計算開始アドレス４０２ａからチェックデータ計算終了アドレス４０２ｂへとアドレスをデクリメントしながらＣＰＵコア２１１のデータの読出しを行うことによりチェックデータの生成が行われるようにすることもできる。また、ＲＡＭチェック開始アドレスレジスタ２２４及びＲＡＭチェック終了アドレスレジスタ２２５に記憶されるデータは、バックアップエリア４０２の範囲を特定することができる情報であればよく、例えば、チェックデータ計算開始アドレス４０２ａ（アドレス値としての読出し開始アドレス特定情報）と、チェックデータ計算開始アドレス４０２ａからチェックデータ計算終了アドレス４０２ｂまでの範囲長（アドレスを特定することができる情報としての読出し終了アドレス特定情報）の２つの種類のデータを使用することも可能である。初期化完了後、チェックデータ生成回路２２１がステータスレジスタ２２６に初期化完了を示す値を格納するように構成すると好適である。
【００６２】
ユーザプログラムに従ってＣＰＵ２１１がチェックデータ生成回路２２１の初期化を実行する場合、ユーザプログラム中のデータなどに従って、ＲＡＭチェック開始アドレスレジスタ２２４及びＲＡＭチェック終了アドレスレジスタ２２５に適切な値が設定される。この場合は、ユーザプログラムが柔軟にそれらのアドレスを設定することが可能である。
【００６３】
ブートプログラムに従ってＣＰＵ２１１がチェックデータ生成回路２２１の初期化を実行する場合、ユーザＲＯＭ２１５あるいはブートＲＯＭ２１４に記憶されたデータを使用して、ＲＡＭチェック開始アドレスレジスタ２２４及びＲＡＭチェック終了アドレスレジスタ２２５に適切な値が設定される。この場合、ユーザＲＯＭ２１５のプログラム管理エリア３０２に、それらのデータを記憶させておくことができる。この場合は、プログラム管理エリア３０２はユーザプログラムからアクセスできないため、セキュリティを保ちつつ、簡便にそれらのデータを管理することが可能である。
【００６４】
初期化の一部あるいは全部をチェックデータ生成回路２２１が実行する場合には、ＣＰＵコア２１１から初期化開始コマンドを機能レジスタ２２２に書き込んで初期化開始の指示を行うようにするとよい。
【００６５】
次に、パワーダウン時などにチェックデータを生成する際の動作の説明をする。パワーダウンを検出した電源監視回路がＮＭＩ信号等をＣＰＵコア２１１に入力し、それを開始トリガとしてチェックデータの生成を開始させる。開始トリガとしては、前述のように、ユーザプログラムからの指示やＣＰＵコア２１１の所定のアドレスのアクセスなどを使用することもできる。
【００６６】
ＣＰＵコア２１１は、ＮＭＩ信号等によってユーザプログラムなどのチェックデータ作成のルーチンの実行を開始し、以下に説明する処理を行う。ＣＰＵコア２１１は、バックアップすべきデータを作成あるいは更新し、それをバックアップエリア４０２に保存する（ステップＳ７５１）。バックアップすべきデータとしては、遊技の進行状況、抽選や入賞に関するデータなどの、電源断にも関わらず遊技機が引き継ぐべき遊技情報などが挙げられる。なお、ＣＰＵコア２１１は、ユーザプログラムによる通常動作時に適宜バックアップすべきデータの作成、保存、更新などを周期的に行うようにすることもできる。そのような場合には、ステップＳ７５１を省略することも可能である。次に、ＣＰＵコア２１１は、機能指示レジスタ２２２にチェックデータの生成を指示するコマンドを書き込む（ステップＳ７５２）。このコマンドを検知したチェックデータ生成回路２２１は、計算結果格納レジスタ２２７に格納された計算結果を初期化し、ＣＰＵが読み出すデータを取得するため、データバスの監視を開始する。チェックデータ生成回路２２１は、ステータスレジスタ２２６に計算中を示す値を格納する。ＣＰＵコア２１１は、バックアップエリア４０２のデータ計算開始アドレス４０２ａ及びチェックデータ計算終了アドレス４０２ｂの値を取得して、それらをループの開始アドレス及び終了アドレスとして機能するように設定する（ステップＳ７５３）。それらの値は、ＲＡＭチェック開始アドレスレジスタ２２４及びＲＡＭチェック終了アドレスレジスタ２２５から取得しても良い。
【００６７】
次に、ＣＰＵコア２１１がチェックデータ計算開始アドレス４０２ａからチェックデータ計算終了アドレス４０２ｂまでのバックアップエリア４０２内のデータを順次読み出すと（ステップＳ７５４）同時に、チェックデータ生成回路２２１が読み出し時にデータバスに現れたデータを取得し、それに基づいてＲＡＭチェックデータ計算回路２２３がチェックデータ生成のための演算回路を使用してチェックデータを積算していく。好適には、チェックデータ生成回路２２１はアドレスバスを監視しており、ＣＰＵコア２１１がバックアップエリア４０２内のアドレスにアクセスしているタイミングでデータバスに現れたデータを取得する。チェックデータはチェックサムや生成多項式を使用したＣＲＣなどとすることができ、また、機能指示レジスタ２２２にコマンドを入力することにより、いずれかに切り替えることも可能である。
【００６８】
ＣＰＵコア２１１によってチェックデータ計算終了アドレス４０２ｂまでのデータ読み出しが完了し、チェックデータ生成回路２２１によるチェックデータの生成が完了すると、チェックデータ生成回路２２１は生成したチェックデータを計算結果格納レジスタ２２７に格納すると共に、ステータスレジスタ２２６に計算完了を示す値を格納する。ＣＰＵコア２１１は、ステータスレジスタ２２６の値を参照して、チェックデータの計算が完了したことを確認すると、計算結果格納レジスタ２２７より計算結果であるチェックデータを読出してチェックデータ格納エリア２１７ａに記憶させる（ステップＳ７５５）。
【００６９】
チェックデータ格納エリア２１７ａは、バックアップエリア４０２とともにバッテリバックアップされており、電源断後も記憶した値を保持し続ける。なお、小さい方のアドレスであるチェックデータ計算開始アドレス４０２ａから大きい方のアドレスであるチェックデータ計算終了アドレス４０２ｂに向かって読み出しを実行することに代えて、その逆順に読み出しを実行するようにしてもよい。
上述の例でチェックデータの書込みはチェックデータ生成回路２２１で計算された結果を計算結果格納レジスタ２２７からＣＰＵコア２１１が読出してチェックデータ格納エリア２１７ａに書込んでいるが、チェックデータ格納エリア２１７ａがチェックデータ計算終了アドレス４０２ｂに隣接したアドレス（または、任意のアドレス関係にあるアドレス）に置かれる場合は、チェックデータ生成回路２２１がサイクルスチールで計算結果をチェックデータ格納エリア２１７ａに書込む構成としてもよい。
【００７０】
上述の例ではＣＰＵコア２１１の読み出したデータバス上のデータをチェックデータ生成回路２２１が取得してチェックデータを生成したが、チェックデータ生成回路２２１が計算対象のデータを取得するためには、データバス上にバックアップエリア４０２内のデータが順次現れればいいため、ＣＰＵコア２１１が一旦別エリアに編集したバックアップデータをバックアップエリア４０２内に順次連続して書き込むときに、チェックデータ生成回路２２１がその値を取得するようにしてもよい。
チェックデータ生成回路２２１の実行状態（初期化済み、計算中、計算完了等）はＣＰＵコア２１１よりステータスレジスタ２２６から読出し可能であり、プログラムはこのステータスレジスタ２２６をモニタすることによりチェックデータ生成回路２２１の状態を読取ることができる。なお、チェックデータ生成回路２２１がＣＰＵ２１１にチェックデータ生成の完了を伝える方法としては、ＣＰＵ２１１に割込みをかけ、割込みプログラムを起動する方法もある。これにより、チェックデータ生成が完了すると、ＣＰＵ２１１は後続の処理を割込みプログラムによって直ちに実行することができる。
【００７１】
チェックデータ生成の詳細動作フロー（第２の実施形態：回路読み出し）
次に、本発明の第２の実施形態に係る、ＣＰＵコア２１１を使用せずに、チェックデータ生成回路２３１がチェックデータを生成する場合の説明をする。図８の動作フロー図を参照する。第２の実施形態は、チェックデータ生成対象のバックアップエリア４０２のデータをチェックデータ生成回路２３１が取得してチェックデータを生成するものである。チェックデータ生成回路２３１もメモリにアクセスするため、ＣＰＵコア２１１がメモリにアクセスをしていないときにチェックデータ生成回路２２１がメモリにアクセスする、サイクルスチールを用いると好適である。第２の実施形態では、チェックデータ生成の際にチェックデータ生成回路２３１自体がＲＡＭのバックアップエリア４０２のアドレス指定をする必要があるため、チェックデータ生成回路２３１の回路の構成はやや複雑になるが、一旦、チェックデータの生成が開始されると、ＣＰＵコア２１１の動作を妨げることなく、ＣＰＵコア２１１のプログラムの実行状態にかかわらず高速で確実にチェックデータを生成することができる。サイクルスチールの動作ではＣＰＵのプログラムリード等の内部処理を介さないためチェックデータの生成がより高速に処理される。
【００７２】
まず、チェックデータを生成できるようにするための準備を実行する。パワーオン時に、チェックデータ生成回路２３１の初期化を実行する（ステップＳ８０１）。初期化は、ＣＰＵ２１１がブートＲＯＭ２１４に記憶されたブートプログラムに従って実行すると好適であるが、ＣＰＵ２１１がユーザＲＯＭ２１５に記憶されたユーザプログラムに従って実行することも可能である。また、初期化の一部あるいは全部をチェックデータ生成回路２３１がＣＰＵ２１１に代わって実行してもよい。チェックデータ生成回路２３１の初期化では、ＲＡＭチェック開始アドレスレジスタ２３４にバックアップエリア４０２の読出し開始アドレスであるチェックデータ計算開始アドレス４０２ａを記憶させ、ＲＡＭチェックバイト数カウンタ２４２に、バックアップエリア４０２の読出し開始アドレスから読出し終了アドレスまでの範囲長を示す値を記憶させる。ここで、通常は、チェックデータ計算開始アドレス４０２ａの値よりアドレスをインクリメントしながらデータの読出しがなされる。しかし、チェックデータ計算開始アドレス４０２ａの値よりアドレスをデクリメントしながらデータの読出しを行うようにすることもできる。初期化完了後、ステータスレジスタ２３６に初期化完了を示す値を格納するように構成すると好適である。
【００７３】
ユーザプログラムに従ってＣＰＵ２１１がチェックデータ生成回路２３１の初期化を実行する場合、ユーザプログラム中のデータなどに従って、ＲＡＭチェック開始アドレスレジスタ２３４及びＲＡＭチェックバイト数カウンタ２４２に適切な値が設定される。この場合は、ユーザプログラムが柔軟にそれらの値を設定することが可能である。
【００７４】
ブートプログラムに従ってＣＰＵ２１１がチェックデータ生成回路２３１の初期化を実行する場合、ユーザＲＯＭ２１５あるいはブートＲＯＭ２１４に記憶されたデータを使用して、ＲＡＭチェック開始アドレスレジスタ２３４及びＲＡＭチェックバイト数カウンタ２４２に適切な値が設定される。この場合、ユーザＲＯＭ２１５のプログラム管理エリア３０２に、それらのデータを記憶させておくことができる。この場合は、プログラム管理エリア３０２はユーザプログラムからアクセスできないため、セキュリティを保ちつつ、簡便にそれらのデータを管理することが可能である。
【００７５】
次に、パワーダウン時などにチェックデータを生成する際の動作の説明をする。開始トリガとしては、パワーダウンに加え、前述のように、ユーザプログラムからの指示やＣＰＵコア２１１の所定のアドレスのアクセスなどを使用することもできる。好適には、電源監視回路がＮＭＩ信号等をＣＰＵコア２１１に入力し、バックアップデータの準備をさせる。
【００７６】
ＣＰＵコア２１１は、ＮＭＩ信号等によってユーザプログラムなどのバックアップデータ作成のルーチンの実行を開始し、以下に説明する処理を行う。ＣＰＵコア２１１は、バックアップすべきデータを作成あるいは更新し、それをバックアップエリア４０２に保存する（ステップＳ８５１）。バックアップすべきデータとしては、遊技の進行状況、抽選や入賞に関するデータなどの、電源断にも関わらず遊技機が引き継ぐべき遊技情報などが挙げられる。なお、ＣＰＵコア２１１は、ユーザプログラムによる通常動作時に適宜バックアップすべきデータの作成、保存、更新などを周期的に行うようにすることもできる。そのような場合には、ステップＳ８５１を省略することも可能である。次に、ＣＰＵコア２１１は、機能指示レジスタ２３２にチェックデータの生成を指示するコマンドを書き込む（ステップＳ８５２）。このコマンドを検知したチェックデータ生成回路２３１は、計算結果格納レジスタ２２７に格納された計算結果を初期化した後、ＣＰＵコア２１１がメモリリード信号あるいはメモリライト信号を出していないタイミングで、バックアップエリア４０２内のデータを順次読み出し、それに基づいてＲＡＭチェックデータ計算回路２３４がチェックデータを生成する。チェックデータ生成回路２３１は、ステータスレジスタ２３６に計算中を示す値を格納する。
【００７７】
具体的な動作としては、まず、チェックデータ生成回路２３１はＲＡＭチェック開始アドレスレジスタ２３４に記憶されたデータ計算開始アドレス４０２ａの値を、チェックデータ生成回路２３１がメモリにアクセスする際のアドレスを保持するデータポインタ２４１に設定する。チェックデータ生成回路２３１は、データポインタ２４１に設定されたバックアップエリア４０２内のアドレスにあるデータを読み出し、ＲＡＭチェックデータ計算回路２３４がチェックデータ生成のための演算回路で、その時までに読み出したデータに対するチェックデータを生成する。次にＲＡＭチェックバイト数カウンタ２４２の値が１つ減じられ、それがゼロでなければ、データポインタ２４１の値をインクリメントする。そして新しいデータポインタ２４１の値に基づいて、前述のデータ読み出し及びチェックデータの生成に戻って処理を継続する。一方、ＲＡＭチェックバイト数カウンタ２４２の値が１つ減じたときにその値がゼロになれば、バックアップエリア４０２内のすべてのデータに対するチェックデータの生成が完了したと判断し、このステップを終了する。
【００７８】
この例は、小さいアドレスから大きいアドレスに向かって読み出す場合の処理であるが、大きいアドレスから小さいアドレスに向かって読み出す方場合は、データポインタ２４１（読み出しアドレス）をインクリメントしてチェックデータを計算することに代えて、データポインタ２４１（読み出しアドレス）をデクリメントしてチェックデータを計算する。なお、チェックデータはチェックサムや生成多項式を使用したＣＲＣなどとすることができ、また、機能指示レジスタ２３２にコマンドを入力することにより、いずれかに切り替えることも可能である。チェックデータ生成回路２３１によるチェックデータの生成が完了すると、チェックデータ生成回路２３１は生成したチェックデータを計算結果格納レジスタ２３７に格納すると共に、ステータスレジスタ２３６に計算完了を示す値を格納する。ＣＰＵコア２１１は、ステータスレジスタ２３６の値を参照して、チェックデータの計算が完了したことを確認すると、計算結果格納レジスタ２２７より計算結果であるチェックデータを読み出してチェックデータ格納エリア２１７ａに記憶させる（ステップＳ８５４）。チェックデータ格納エリア２１７ａは、バックアップエリア４０２とともにバッテリバックアップされており、電源断後も記憶した値を保持し続ける。またチェックデータはチェックデータ生成回路２３１によりＣＰＵコア２１１を介さず直接チェックデータ格納エリア２１７ａに格納するように構成しても良い。
【００７９】
上述の実施例ではデータポインタ２４１にＲＡＭチェック開始アドレスレジスタ２３４に記憶された開始アドレスからＲＡＭチェックバイト数カウンタ２４２に記憶されたカウンタ数に至るまでデータポインタをインクリメント又はデクリメントしその都度カウンタを減算しそれがゼロになるまで処理を行ったが、ＲＡＭチェックバイト数カウンタ２４２の代わりにＲＡＭチェック開始アドレスとデータポインタをインクリメント又はデクリメントの都度比較し一致したら終了するという構成にしても良い。
【００８０】
上記実施例ではチェックデータ生成回路２３１の起動はバックアップデータ生成後にＣＰＵコア２２１のプログラム実行によるトリガで起動しているが、バックアップエリアの生成を常時行っている場合（遊技機制御プログラムでバックアップが必要なデータが発生した時に随時必要なデータをバックアップエリアに書込む場合、またはタイマー割込み処理等で常時バックアップの必要なデータをバックアップエリアに書込む場合等）の場合は、電源断の発生をトリガにチェックデータ生成回路２３１を起動し、ＮＭＩ割込処理等で制御処理を中断し、チェックデータの生成完了を待つ構成としても良い。
また、パワーオンの処理ではセキュリティモードでチェックデータ生成回路２３１の初期化を行い、ユーザーモードでの遊技機制御プラグラム（ユーザプログラム）を実行するが、ユーザーモード起動をトリガにチェックデータ生成回路２３１の起動を行えば、ユーザプログラムではチェックデータ生成完了を待って、計算されたチェックデータとバックアップ時に保存されたチェックデータを比較することでバックアップデータに異常があるかの判断を行う構成としても良い。
【００８１】
送受信データのチェックデータ生成
上記では、バックアップエリア４０２にはバックアップ対象のデータが記憶され、それのチェックデータを生成するものとして説明してきた。しかし、バックアップエリア４０２にはバックアップ対象のデータを記憶させ、それのチェックデータ生成に本発明を使用することができる。例えば、バックアップエリア４０２を、通信におけるデータ送受信時のバッファ領域として、バッファリングされる送信データあるいは受信データのチェックデータを生成させることができる。送信時には、そのチェックデータをＢＣＣ（block check code）として送信データに付加することができ、受信時には、そのチェックデータを送られてきたＢＣＣと比較してデータ異常の有無を確認することができる。
【００８２】
バックアップエリア４０２を送信バッファとして使用する場合の説明をする。チェックデータ生成回路２２１，２３１は、バックアップエリア４０２に送信データがバッファリングされると、バッファリング開始アドレスからそのチェックデータの生成を開始し、バッファリング終了アドレスまでチェックデータの生成が完了すると、データ送信を開始させるためにＣＰＵコア２１１にステータスレジスタ２２６又は２３６を介しその旨を示す信号を伝達する。チェックデータの生成開始は、送信データがバッファリング終了アドレスまでバッファリングされてから行う。生成されたチェックデータはチェックデータ生成回路２２１，２３１からＣＰＵコア２１１に渡されてＢＣＣとして送信データの終了エリアの次に付加され送信される。
【００８３】
バックアップエリア４０２を受信バッファとして使用する場合の説明をする。チェックデータ生成回路２２１，２３１は、バックアップエリア４０２に受信データのバッファリングが開始され、バッファリング終了アドレスまでバッファリングされると、そのチェックデータの生成を開始する。また、バッファリングの終了を示すコード（ＥＴＸ）がバッファリングされる瞬間を検出して、それに応じてチェックデータ生成回路２２１，２３１がチェックデータの生成を開始するように構成することも可能である。チェックデータの生成が完了すると、受信したデータを取得させるためにＣＰＵコア２１１にその旨を示す信号を伝達する。生成されたチェックデータはチェックデータ生成回路２２１，２３１からＣＰＵコア２１１に渡されて受信したデータのＢＣＣと比較し異常の有無を検証するために使用される。
【００８４】
本発明は、上述の遊技機制御用チップ２００と同じ構成のチェックデータ生成機構を有する払出制御用チップ、画像制御用チップなどの他の種類の、バックアップデータや通信データを使用するチップとしても成立する。また本発明は、それらのチップを組み込んだ基板としても成立し、当該基板を含む遊技機としても成立する。
【００８５】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また、後続の処理に影響を与えないようなステップは省略することも可能である。また、動作上の矛盾が生じない限りにおいて、各実施形態からの任意のステップを組み合わせることも可能である。
【００８６】
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。例えばこれらの各実施例は組み合わせることが可能であり、これにより、２以上の実施例を組み合わせて１つの実施例にすることができる。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【００８７】
１００  パチンコシステム
１０５、１１０  パチンコ機
１１５  抽選媒体供給装置
１２０  遊技盤部
１２５  払出部
１３０  ハンドル部
２００  遊技機制御用チップ
２１１  ＣＰＵコア
２１２  クロック回路
２１３  リセットモード制御回路
２１４  ブートＲＯＭ
２１５  ユーザＲＯＭ
２１６  ブートＲＡＭ
２１７  ユーザＲＡＭ２１７
２１７ａ  チェックデータ格納エリア
２１７ｂ  チェックデータ
２２１  チェックデータ生成回路（第１の実施形態）
２２２  機能指示レジスタ（第１の実施形態）
２２３  ＲＡＭチェックデータ計算回路（第１の実施形態）
２２４  ＲＡＭチェック開始アドレスレジスタ（第１の実施形態）
２２５  ＲＡＭチェック終了アドレスレジスタ（第１の実施形態）
２２６  ステータスレジスタ（第１の実施形態）
２２７  計算結果格納レジスタ（第１の実施形態）
２３１  チェックデータ生成回路（第２の実施形態）
２３２  機能指示レジスタ（第２の実施形態）
２３３  ＲＡＭチェックデータ計算回路（第２の実施形態）
２３４  ＲＡＭチェック開始アドレスレジスタ（第２の実施形態）
２３６  ステータスレジスタ（第２の実施形態）
２３７  計算結果格納レジスタ（第２の実施形態）
２４１  データポインタ（第２の実施形態）
２４２  ＲＡＭチェックバイト数カウンタ（第２の実施形態）
２５１  セキュリティチェック回路
２５２  指定エリア外走行禁止（ＩＡＴ）回路
２５３  ウォッチドッグタイマ（ＷＤＴ）回路
２５４  固有データ格納回路
２５５  乱数回路
２５６  照合回路
２６１  バス
３０１  プログラムコードエリア／プログラムデータエリア
３０２  プログラム管理エリア
４０１  ワークエリア
４０２  バックアップエリア
【図１】
2016168106.tif 000003
【図２】
2016168106.tif 000004
【図３】
2016168106.tif 000005
【図４】
2016168106.tif 000006
【図５】
2016168106.tif 000007
【図６】
2016168106.tif 000008
【図７】
2016168106.tif 000009
【図８】
2016168106.tif 000010