JP4242600B2 - 遊技機制御用チップ及び遊技機制御方法 - Google Patents

遊技機制御用チップ及び遊技機制御方法 Download PDF

Info

Publication number
JP4242600B2
JP4242600B2 JP2002109658A JP2002109658A JP4242600B2 JP 4242600 B2 JP4242600 B2 JP 4242600B2 JP 2002109658 A JP2002109658 A JP 2002109658A JP 2002109658 A JP2002109658 A JP 2002109658A JP 4242600 B2 JP4242600 B2 JP 4242600B2
Authority
JP
Japan
Prior art keywords
random number
circuit
gaming machine
machine control
value
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.)
Expired - Fee Related
Application number
JP2002109658A
Other languages
English (en)
Other versions
JP2003299862A (ja
Inventor
隆司 伊藤
順一 霜山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
L E Tech CO Ltd
Original Assignee
L E Tech CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by L E Tech CO Ltd filed Critical L E Tech CO Ltd
Priority to JP2002109658A priority Critical patent/JP4242600B2/ja
Publication of JP2003299862A publication Critical patent/JP2003299862A/ja
Application granted granted Critical
Publication of JP4242600B2 publication Critical patent/JP4242600B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Pinball Game Machines (AREA)

Description

【0001】
【発明が属する技術分野】
本発明は、パチンコ遊技機や回胴式遊技機等に使用される遊技機制御用チップ及び遊技機制御方法に関する。
【0002】
【従来の技術】
<一般的内容> 遊技機メーカーは遊技機の暴走対策として遊技機を制御する中央処理装置(以下、本明細書において「CPU」と略す。)に対し、例えば2ms毎の一定周期でリセットを入力し、遊技プログラムの先頭番地から実行するインターバルリセット割り込みの処理を行っている。すなわち、仮にノイズ等の原因によるCPU暴走が発生したとしても、上記周期でCPUに対しリセットが入力され、遊技プログラムの先頭番地に戻る為暴走による被害を最小限に抑えることができる。
<プラス1方式> 遊技機に使用される乱数発生方式として、リセット割込処理毎に乱数値に「1」を加算し、所定の乱数範囲の最大値に達した場合「0」に戻す、いわゆる「プラス1方式」による方式がある。
<初期値更新型によるプラス1方式> また、乱数周期が一巡毎に初期値を毎回変更し同様に乱数値に「1」を加算する「初期値更新型によるプラス1方式」による方式がある。
<ソフトウェアによる乱数発生> 更に、上記いずれの方式においてもソフトウェアによって乱数を発生していた。
【0003】
【発明が解決しようとする課題】
<プラス1方式の課題> 「プラス1方式」による乱数発生は乱数値の出現周期に規則性が生じる為不正者(ゴト行為等)が大当たり乱数値の発生周期に合わせて狙い打ちして大当り判定値を取得する「体感器」や、大当たり発生周期に合わせて入賞センサーに対し疑入賞信号を発生する等、いわゆる「ぶら下がり基板」によって大当たりを誘発させ、不当に過剰な利益を獲得するという問題点があった。
<初期値更新型によるプラス1方式の課題> また、「初期値更新型によるプラス1方式」は初期値が変更されることによって特定乱数値の出現する周期は「プラス1方式」より不規則となり「体感器」による狙い打ち等は困難となるが、ソフトウェアによる乱数発生では、乱数の更新毎にシステムバス上にそのデータが出力される為外部でその出現のデータ解析を行えば乱数系列の特定や初期値更新のタイミングの特定が可能であり、いずれにせよその周期に合わせて大当たりを狙い打ちすることが可能となってしまう。
<ソフトウェアによる乱数発生の課題> また、ソフトウェアを作成する者や、漏洩によってその内容を知る不正者は乱数初期値更新のタイミングさえ判別できれば特定乱数値の出現周期の確定は容易である。
本発明は、かかる従来技術の課題に鑑みなされたものである。すなわち、本発明の目的は、不正アクセスをしづらい遊技機制御用チップ及び遊技機制御方法を提供することにある。また、乱数発生装置を遊技機制御用チップに内蔵することで、乱数をデータバス上に乗せるか否かの設定を可能にし、不正者が容易に乱数系列や周期を予測できないようにすることにある。
【0004】
【課題を解決するための手段】
かかる課題を解決すべく、本発明に係る遊技機制御用チップは、遊技機に用いる遊技機制御用チップであって、該遊技機制御用チップは、CPUと、記憶手段と、M系列方式又はカウンタ方式の乱数を発生する乱数発生回路と、該乱数発生回路から出力された乱数に対してビットスクランブルをかけるビットスクランブル回路と、該ビットスクランブル回路の出力を予め格納された乱数最大値と比較する乱数最大値比較回路と、該乱数最大値比較回路比較処理の結果、最大値を超えた場合に再度乱数発生回路に要求を行い、最大値を超えない乱数値を得るまで乱数要求を繰り返し、最大値を超えない乱数である場合にそれを取得し保持する乱数値保持回路と、該乱数値保持回路に保持された乱数を外部トリガ入力による要求やユーザが乱数の読み出し要求を行った際に取り込んだ乱数が格納される乱数読出回路と、前記記憶手段に記憶された所定のいくつかの値の中から乱数初期値を選択する乱数初期値選択回路と、前記乱数発生回路から独立した補助乱数発生手段とを有し、前記乱数発生回路の乱数初期値は、前記乱数初期値選択回路により書き換えられ、該乱数初期値は、乱数発生回路の発生する乱数が一巡する毎に前記補助乱数発生手段の発生する補助乱数値を初期値とし、前記乱数読出回路に格納された乱数に基づき遊技プログラムを実行することを特徴とするものである。
【0005】
請求項2の発明は、請求項に記載した遊技機制御用チップであって、前記乱数初期値選択回路が乱数初期値として選択する選択肢として、前記記憶手段に格納された乱数初期値選択定数、前記乱数発生装置固有の固定値、前記乱数発生装置がもつ所定値、前記遊技機制御用チップのID番号、前記記憶手段のRAM値又はRAM演算値を含むものである。
【0006】
請求項3の発明は、請求項に記載した遊技機制御用チップであって、
所定のいくつかのトリガ条件の中から前記乱数発生回路の更新制御のトリガ条件を選択する乱数更新トリガ選択回路と更にこれらトリガ条件の更新の開始や継続や終了を制御する更新制御回路を更に有するものである。
【0007】
請求項4の発明は、請求項に記載した遊技機制御用チップであって、前記ビットスクランブル回路は、あらかじめ用意されたビットスクランブルテーブルにしたがってビットを入れ換える処理をするものである。
【0008】
請求項5の発明は、請求項に記載した遊技機制御用チップであって、前記ビットスクランブル回路におけるスクランブル処理は、ビットスクランブル回路を複数用意し、複数段階のビット入れ換えを実行するものである。
【0009】
請求項6の発明は、請求項に記載した遊技機制御用チップであって、前記複数のビットスクランブルテーブルは、乱数発生回路からの乱数一巡終了信号及びビットスクランブル要求回路からのビットスクランブル要求及び補助乱数発生手段からの乱数を基に不規則に任意のビット入れ換えを実行するものである。
【0010】
請求項7の発明は、請求項1に記載した遊技機制御用チップであって、前記乱数値読出回路に格納された乱数を読み出す為の乱数値要求回路更に有し、該乱数値要求回路の要求するタイミングは、複数のトリガ条件から選択可能としたものである。
【0011】
請求項8の発明は、CPUと、記憶手段と、M系列方式又はカウンタ方式の乱数を発生する乱数発生回路と、該乱数発生回路から出力された乱数に対してビットスクランブルをかけるビットスクランブル回路と、該ビットスクランブル回路の出力を予め格納された乱数最大値と比較する乱数最大値比較回路と、該乱数最大値比較回路の比較処理の結果、最大値を超えた場合に再度乱数発生回路に要求を行い、最大値を超えない乱数値を得るまで乱数要求を繰り返し、最大値を超えない乱数である場合にそれを取得し保持する乱数値保持回路と、該乱数値保持回路に保持された乱数を外部トリガ入力による要求やユーザが乱数の読み出し要求を行った際に取り込んだ乱数が格納される乱数読出回路と、前記記憶手段に記憶された所定のいくつかの値の中から乱数初期値を選択する乱数初期値選択回路と、前記乱数発生回路から独立した補助乱数発生手段とを有し、前記乱数発生回路の乱数初期値は、前記乱数初期値選択回路により書き換えられ、該乱数初期値は、乱数発生回路の発生する乱数が一巡する毎に前記補助乱数発生手段の発生する補助乱数値を初期値とし、前記乱数読出回路に格納された乱数に基づき遊技プログラムを実行する遊技機制御用チップを用いた遊技機制御方法であって、前記乱数初期値選択回路により、前記記憶手段に記憶された所定のいくつかの値の中から乱数初期値を選択する乱数初期値選択ステップと、該乱数初期値選択ステップにて選択された乱数初期値を初期値とし、前記乱数発生回路の発生する乱数が一巡する毎に、前記補助乱数発生手段の発生する補助乱数値を初期値としてM系列方式又はカウンタ方式の乱数を発生する乱数発生ステップと、該乱数発生ステップにて発生された乱数に対してビットスクランブルをかけるビットスクランブルステップと、該ビットスクランブルステップの出力を予め格納された乱数最大値と比較する乱数最大値比較ステップと、該乱数最大値比較ステップによる比較処理の結果、最大値を超えた場合に再度乱数発生回路に要求を行い、最大値を超えない乱数値を得るまで乱数要求を繰り返し、最大値を超えない乱数である場合にそれを取得し保持する乱数値保持ステップと、該乱数値保持ステップにて保持された乱数を外部トリガ入力による要求やユーザが乱数の読み出し要求を行った際に取り込ん格納する乱数読出ステップと、該乱数読出ステップにて格納された乱数に基づき遊技プログラムを実行する遊技実行ステップとを有するものである。
【0012】
請求項9の発明は、請求項8に記載した遊技機制御方法であって、前記乱数初期値選択ステップが乱数初期値として選択する選択肢として、ROM内に格納された乱数初期値選択定数、前記乱数発生装置固有の固定値、前記乱数発生装置のもつ所定値、前記遊技機制御用チップのID番号、RAM値又はRAM演算値を含むものである。
【0013】
請求項10の発明は、請求項に記載した遊技機制御方法であって、所定のいくつかのトリガ条件の中から前記乱数発生ステップの更新制御のトリガ条件を選択する乱数更新トリガ選択ステップと、更にこれらトリガ条件の更新の開始や継続や終了を制御する更新制御ステップを更に有するものである。
【0014】
請求項11の発明は、請求項に記載した遊技機制御方法であって、前記ビットスクランブルステップは、あらかじめ用意されたビットスクランブルテーブルにしたがってビットを入れ換える処理をするものである。
【0015】
請求項12の発明は、請求項11に記載した遊技機制御方法であって、前記ビットスクランブルステップにおけるスクランブル処理は、ビットスクランブルテーブルを複数用意し、複数段階のビット入れ換えを実行するものである。
【0016】
請求項13の発明は、請求項11に記載した遊技機制御方法であって、前記複数のビットスクランブルテーブルは、前記乱数発生ステップからの乱数一巡終了信号及びビットスクランブル要求及び前記補助乱数発生手段からの乱数を基に不規則に任意のビット入れ換えを実行するものである。
【0017】
請求項14の発明は、請求項に記載した遊技機制御方法であって、前記乱数値読出ステップにて格納された乱数を読み出す為の乱数値要求ステップ更に有し、該乱数値要求ステップの要求するタイミングは、複数のトリガ条件から選択可能としたものである。
【0018】
請求項15の発明は、請求項1に記載した遊技機制御用チップであって、クロック生成手段と暴走監視手段とをさらに有し、該暴走監視手段は、前記クロック生成手段からの信号に基づき、タイムアウト時間をカウントし、タイムアウト時間が経過すると、タイムアウト信号を発生させて、このタイムアウト信号を前記CPUが受け付けることによりリセットを発生し、プログラムのリセットアドレスからプログラムを再実行するものである。
【0019】
請求項16の発明は、請求項15に記載した遊技機制御用チップであって、前記タイムアウト時間を変更可能としたものである。
【0020】
請求項17に記載した発明は、請求項1に記載した遊技機制御用チップであって、不正実行禁止手段をさらに設けて、不正アドレスからのオペコードフェッチの禁止をするものである。
【0021】
請求項18に記載した発明は、請求項1に記載した遊技機制御用チップであって、個々のチップ固有のID番号を有するものである。
【0022】
請求項19に記載した発明は、請求項1に記載した遊技機制御用チップであって、パラレル入出力ポートと外部チップセレクト信号とを兼用させたものである。
【0023】
請求項20に記載した発明は、請求項1に記載した遊技機制御用チップであって、セキュリティチェックを実行して、認証結果によりCPUを停止させるセキュリティ手段をさらに設けたものである。
【0024】
請求項21に記載した発明は、請求項1に記載した遊技機制御用チップであって、前記乱数をデータバス上に乗せるか否かの設定を可能とするものである。
【0038】
【発明の実施の形態】
以下に本発明を図示された実施形態に従って詳細に説明する。
【0039】
<チップの形態の概要説明> 本発明に係る遊技機制御用チップは、遊技機内部の基板上に搭載される集積回路として構成される。チップ種別の分類として、開発用チップと量産用チップとがある。図8を参照しつつ、量産用チップと開発用チップとについて説明する。開発用チップは、セキュリティ判定機能を有しないチップであり、それ以外を除いては量産用チップと同等の機能を有する。量産用チップは、内蔵された記憶手段に記憶されているプログラムが、第三者機関による試験に合格した適正なものであるか否かを判定するセキュリティ判定機能を有する。
【0040】
<量産用チップの概要説明> 量産用チップは、ユーザが消去、再書き込みが不可能なユーザ用ROMを具備しており、図8(a)に示すように、セキュリティチェックの結果が不整合の場合はCPUを停止する。また、指定エリア外走行禁止機能により、設定されたアドレス範囲以外(指定エリア外を示すアドレス範囲である。)でのプログラム実行はできない。
【0041】
<開発用チップの概要説明> 開発用チップは、ユーザが消去、再書き込みが可能なユーザ用ROMを具備しており、図8(b)に示すように、セキュリティチェックの結果に関係無くユーザモードに移行する。また、指定エリア外走行禁止機能においても、設定可能なアドレス範囲(指定エリアを示すアドレス範囲である。)は制限が無いので、ユーザが自由に開発・デバッグが行えることを可能とする。ここで、ユーザとは、本発明に係る遊技機制御用チップを遊技機に組み込んで製造・販売を行う遊技機メーカーを指す。
【0042】
<動作モード> 動作モードとはCPU動作の制御やメモリマッピング、チップに内蔵された各種レジスタへのアクセス権など基本動作を制御するモードであり、セキュリティモードとユーザモードとプログラムモードがある。
【0043】
<セキュリティモード> ブート用記憶手段が実行され、各機能の環境設定やセキュリティチェックが行われるモードである。セキュリティモード中は、CPU動作時の内部バスが外部端子に出力されない。
【0044】
<セキュリティチェック> ユーザプログラムの認証を行う機能である。システムリセット入力時に、ユーザプログラムを基に計算された認証コードが正しいかどうか再計算を行い,結果がNGの場合はCPUを停止する。認証コードは、ユーザ用記憶手段への書き込み時にユーザプログラムと共に書き込む。
【0045】
<ユーザモード> セキュリティチェックを通過した正規のユーザプログラムが実行されるモードである。セキュリティモード中のセキュリティチェックで"OK"にならないとこのモードには移行しない。ユーザモード中はCPU動作時の内部バスが外部端子に外部バスとして出力される。なお、ユーザモード中はブート用記憶手段にアクセスすることはできない。
【0046】
<プログラムモード> CPUは動作せず、直接ユーザ用ROMにリード/ライトを行うモードである。システムリセット後、PRG端子の所定レベル(例えばハイレベル)により、このモードに移行する。なお、量産用チップへの書き込みは一度だけ可能であり、開発用チップは消去や再書き込みが可能なものである。
【0047】
図9を参照しつつ、本発明の遊技機制御用チップに内蔵された各機能ブロックについて説明する。図9のc1は、CPUである。たとえば、ザイログ社のZ80、またはモトローラ社の68HC11、またはこれらの互換性のあるソフトウェアコンパチブルなCPUなどを用いることができる。
【0048】
<タイマシステム> 図9のc2は、タイマシステムである。タイマシステムは、n個(例えば4個等)のnビット(例えば8、16ビット等)カウンタや各種制御レジスタを内蔵し、それぞれ独立したモードで動作が可能である。例えばモードとして大別してタイマモード、カウンタモード等があり、またこれらのモードを具体的に実現する機能として、(1)インターバルタイマ機能、(2)イベントカウント機能、(3)ワンショット出力機能、(4)PWM機能(パルス幅変調機能)、(5)パルス幅測定機能、(6)時間差測定機能、等があり、リアルタイム割込みの発生や時間計測を行うことを可能とする。上記これらの機能は、タイマシステム内の各種制御レジスタの設定により制御することができる。また、上記機能を実現する為のゲート信号またはトリガ信号の入力用であるタイマ入力バス、タイマシステムで生成された各種タイマ出力信号を外部へ出力する為のタイマ出力バスを具備する。
【0049】
図9のc3は、不正実行禁止手段である。不正実行禁止手段は、所定の指定エリア内で遊技機メーカーが作成したユーザプログラムが正しく実行されているかどうか監視し、指定エリア以外でユーザプログラムが実行されるとリセットが発生するものである。例えばメモリ空間全体を64kバイトとした場合、指定エリア(ユーザプログラム実行可能なアドレス範囲)の設定において、その範囲の先頭アドレスをプログラムコードスタートアドレス(以下PCS)として0番地、終了アドレスをプログラムコードエンドアドレス(以下PCE)として1FFF(16進)番地とした場合、2000(16進)〜FFFF(16進)番地の範囲に不正プログラムを格納して実行しようとしても実行することはできない。すなわち、不正実行禁止手段とは指定エリア外での命令実行を禁止する機能であり、あらかじめ指定したアドレス範囲(指定エリア)外で命令が実行(オペコードフェッチ)されると,IAT(Illegal Address Trap)信号を発生する機能である。このIAT信号によりリセットが発生する。この指定エリアの情報は、ユーザプログラムと共にユーザ用ROMに書き込む。
【0050】
図9のc4は、暴走監視手段である。図12を参照しつつ、暴走監視手段c4の構成をさらに詳しく説明する。暴走監視手段c4は、クロック選択手段c4a、nビットカウンタc4b、暴走監視制御手段c4c、動作モード制御手段c4d、制御ワード設定手段c4e、出力制御手段c4fにより構成される。暴走監視手段c4は、タイムアウト信号を発生させる。このタイムアウト信号によりリセットが発生する。また、動作モード制御手段c4d、制御ワード設定手段c4eの各種設定により、(1)タイムアウト時間の設定・変更、(2)カウントクリア&リスタート、(3)動作許可/禁止、等の設定を可能とする。
【0051】
暴走監視手段c4は、ユーザモードに移行する際に自動的に起動され、タイムアウト時間が経過すると、タイムアウト信号を発生させる。このタイムアウト信号を受け付けることによりユーザリセットを発生しユーザプログラムのリセットアドレス(例えば0番地等)からユーザプログラムを再実行させる。
【0052】
<クロック選択手段>クロック選択手段c4aは、クロック生成手段c9より送られてきたシステムクロックを含む各分周クロックCLKO/m・・・CLKO/mの内1本を選択してnビットカウンタへ送出するものである。
【0053】
<nビットカウンタ> nビットカウンタc4bは、クロック選択手段c4aより送出された分周クロックを基にタイムアウト時間のカウントを行う。
【0054】
<暴走監視制御手段> 暴走監視制御手段c4cは、タイムアウト時間の設定の為の制御、nビットカウンタへの動作禁止、クリア、リスタート等の制御を行う。
【0055】
<動作モード制御手段> 動作モード制御手段c4dは、タイムアウト時間設定用のカウントクロックの選択、動作許可/禁止の制御を行い、またタイムアウト時間を変更することができる。なお、一度タイムアウト時間を変更すると、システムリセットするまで変更できないようにしても良い。
【0056】
<制御ワード設定手段> 制御ワード設定手段c4eは、タイムアウト時間のクリア及びリスタート、動作禁止を設定する。例えば制御ワード設定手段c4eに制御ワード(例えばCC(16進))を書き込むことにより暴走監視手段が動作禁止になる。この設定は、例えばシステムリセット後1回のみ可能にしても良い。55(16進)→AA(16進)→33(16進)によりクリア&リスタート(再度カウント開始)することで、タイムアウト時間を延長することができる。なお、制御ワードは3バイト連続して書き込む必要は無い。
【0057】
<暴走監視手段の動作説明> 暴走監視手段c4は、ユーザモードに移行することで自動起動される。タイムアウト時間は動作モード制御手段c4dによって設定され、デフォルト値は最長タイムアウト時間に設定されている。設定はシステムリセット後1回のみ可能とし、再設定はシステムリセットを無くして行うことができない。タイムアウトに達すると、出力制御手段c4fからタイムアウト信号を出力し、暴走監視手段c4の動作はそのまま継続される。
【0058】
次に、図9に示すリセット/割込制御手段c5について、図13〜図16をあわせて参照しつつ説明する。図13はリセット/割込制御手段の内部ブロック図を示し、図14はシステムリセットのタイミングチャート例を示し、図15はユーザリセットのタイミングチャート例を示し、(a)はXURST端子によるタイミングチャート例、(b)はタイムアウト信号またはIAT信号発生によるタイミングチャート例であり、図16は割込みのタイミングチャート例を示す。
【0059】
<リセット/割込制御手段> リセット/割込制御手段c5は、各種リセットと、外部からの割込み要求や内蔵の周辺回路(タイマシステム)からの割込み要求を制御する。
【0060】
<システムリセット> XSRST端子に一定期間のローレベルを入力することにより発生するリセットである。CPUを含む内部のすべての回路が初期化され、PRG端子の入力レベルに応じて、セキュリティモードまたはプログラムモードに移行する。セキュリティモードで異常がなければ、ユーザモードに移行してユーザプログラムのリセットアドレス(例えば0番地)からユーザプログラムを実行する。また、CPUと内部の各回路へ供給されるシステムリセット信号は、チップ外部の外部デバイスへのリセット信号としてXSRSTO端子より外部へ出力される。
【0061】
<ユーザリセット> 次に、ユーザリセットについて説明する。ユーザリセットの要因としては、XURST端子によるユーザリセット要求、外部入出力手段c14のSC端子異常によるユーザリセット要求、または端子チェック要求、不正実行禁止手段c3のIAT発生によるリセット要求、暴走監視手段c4のタイムアウトによるユーザリセット要求、セキュリティ手段c10のモード制御手段からのモードトリガによるユーザリセット要求がありえる。
【0062】
<ユーザリセットの動作> ユーザリセットが発生し、ユーザリセットを受け付けると、CPU、タイマシステムc2、入出力手段c7が初期化され、リセットアドレス(例えば0番地)よりユーザプログラムの実行を開始する。(ユーザリセットでは、セキュリティモードまたはプログラムモードに移行しない。)
【0063】
<ノンマスカブル割込み(NMI)> 次に、ノンマスカブル割込みについて説明する。ノンマスカブル割込み(NMI)は、CPUの割込み禁止状態でも無条件に受け付けられる割込みであり、すべての割込み要求に対して最優先で処理される。XNMI端子によるノンマスカブル割込みは、ノイズフィルタc5aを介してCPUに入力される。図16は、ノイズフィルタc5aを通過する前と通過後との関係を示すタイミングチャート例としたものである。XNMI信号が一定期間(ここでは4クロックの立ち上がりエッジを検出する間)ローレベルであるとき、ノイズフィルタc5aを通過した信号がNMI信号となりCPUに入力される。
【0064】
<マスカブル割込み(INT)> マスカブル割込み(INT)は、ユーザプログラムにより割込み要求の受け付けを許可/禁止できる割込みであり、INT優先順位制御回路c5dによる多重割込みの実行が可能である。
【0065】
<外部マスカブル割込み> 外部マスカブル割込みは、XINT端子に一定期間のロ−レベルを入力することにより発生し、XINT端子によるマスカブル割込みは、ノイズフィルタc5aを介してCPUに入力される。図16は、ノイズフィルタc5aを通過する前と通過後との関係を示すタイミングチャート例としたものである。XINT信号が一定期間(ここでは4クロックの立ち上がりエッジを検出する間)ローレベルであるとき、ノイズフィルタc5aを通過した信号がINT信号となりCPUに入力される。
【0066】
<内部マスカブル割込み> 内部マスカブル割込みは、タイマシステムからの割込み要求信号により発生する。
【0067】
<デコード手段> デコード手段c6は、メモリマップドI/O方式、I/OマップドI/O方式によるデコードが可能であり、チップ内部の各機能ブロックのデコードや外部デバイス用のデコード用信号であるチップセレクト信号のデコードを行う。また、チップセレクト信号のアドレス範囲を設定することが可能である。チップセレクト信号を例にすると、図10にメモリマップドI/O方式によるチップセレクト信号がFF00(16進)〜FF19(16進)にマッピングされ、図11(b)にI/OマップドI/O方式によるチップセレクト信号が00(16進)〜19(16進)にマッピングされていることを示している。なお、チップセレクト信号は複数本あるので、便宜上本明細書ではこれらを総称して外部出力バスとしている。
【0068】
<入出力手段> 入出力手段c7は、入出力ポートと外部デバイス用のデコード用信号であるチップセレクト信号の兼用機能を制御するもので、(1)機能選択手段c7aと、(2)入出力制御手段c7bとからなる。入出力制御手段c7aは、(a)パラレル入出力ポート(異なる任意のビット幅の入出力ポートを複数個内蔵しており、それぞれポートの入出力の設定が可能)と、(b)外部デバイスデコードとの二つの機能を持つ。機能選択手段c7aによりいずれか1つの機能を選択して外部との入出力を行う。これにより外部端子が入出力ポートバス、または外部出力バスのいずれかの状態として機能する。
【0069】
<クロック生成手段> クロック生成手段c9は、クロック入力端子(図2のEX端子に該当)から入力されたクロックを任意の分周比(例えば2分周等)で分周し、CPUや内部の各回路に供給する回路である。また、生成されたクロックは、クロック出力端子(図2のCLKO端子に該当)から外部へ出力する。また、補助乱数発生手段19へのクロックソース源(s3)として乱数発生装置c8へ供給する。
【0070】
<セキュリティ手段> セキュリティ手段c10は、(1)認証チェック制御手段、(2)不正実行禁止制御手段、(3)モード制御手段、(4)機能制御手段、(5)記憶手段制御手段の5つの手段からなる。
【0071】
<認証チェック制御手段> 認証チェック制御手段は、ユーザプログラム(UP)の認証を行う機能である。システムリセット入力時に、ユーザプログラムを基に計算された認証コードが正しいか否かの再計算を行い,結果がNGの場合はCPUを停止する。認証コードは,記憶手段へ書き込み時にユーザプログラムと共に書き込む。
【0072】
<不正実行禁止制御手段> 不正実行禁止制御手段は、指定エリア外での命令実行を禁止する機能であり、(a)指定エリア外での命令実行禁止、(b)RAM(外部/内部両方)上でのプログラム実行禁止、(c)リセット制御、(d)指定エリアでのプログラム実行監視の制御を行う。
【0073】
<モード制御手段> モード制御手段は、(a)プログラムモード、(b)セキュリティモード、(c)ユーザモードの三つのモードの制御を行う。
【0074】
<機能制御手段> 機能制御手段は、(a)バス・信号線制御、(b)CPU停止制御、(c)乱数故障診断機能制御、(d)ユーザ用ROMの読み出し/書き込みの機能を制御する。
【0075】
<記憶手段制御手段> 記憶手段制御手段は、(a)デバイス切り離しおよび(b)メモリバンク切り換えを行う。
【0076】
次に、図10および図11を参照しつつ、記憶手段c11について説明する。図10は、チップ全体のメモリマップの具体例図を示し、図11はユーザ用ROM内のエリアの具体例図を示し、(a)はプログラム管理エリアの具体例図、(b)はI/OマップドI/O方式による内蔵レジスタや外部出力バスのデコードエリアの具体例図を示したものである。
【0077】
<記憶手段> 記憶手段c11は、ID格納手段c11a、ブート用記憶手段c11b、ユーザ用記憶手段c11cで構成される。
【0078】
<ID格納手段> ID格納手段c11aには、(a)試験年月日時刻、(b)製造年月日時刻、(c)製造場所、(d)製造工場、(e)製造ライン、(f)製造ロット、(g)製造番号、(h)ユーザ管理番号、(i)シリアル番号、等の情報データのうちのいくつかをn種類の異なるID番号として格納することができ、このID番号が付与されることで量産(例えば1000万個等)や流通等の管理が可能になる。また、ID番号とは別に第三者やユーザが知りえないチップ製造者・販売者のみがチップを特定できる情報である秘密情報を格納している。秘密情報の具体例としては、資材管理上の詳細な情報(ウェハー管理番号等)や協力工場に関するコード番号などがあり得る。
【0079】
<ブート用記憶手段> ブート用記憶手段c11bは、(a)ブート用ROMと(b)ブート用RAMとにより構成され、(a)ブート用ROMには、(イ)セキュリティチェックプログラム、(ロ)故障診断プログラム、(ハ)環境設定プログラム、(ニ)照合プログラム、などが格納される。また、(b)ブート用RAMは、ブートプログラムのワークエリア(データエリア,スタックエリア等)として使用する。
【0080】
<ユーザ用記憶手段> ユーザ用記憶手段c11cは、(a)ユーザ用ROMおよび(b)ユーザ用RAMにより構成される。
【0081】
<ユーザ用ROM> ユーザ用ROMは、ユーザが作成したプログラム(ユーザプログラム)を格納する。ユーザ用ROMには予め定めた指定エリアがあり、(イ)プログラムコード/データエリアおよび(ロ)プログラム管理エリアの2つのエリアが割り付けられている。(イ)プログラムコード/データエリアは、ユーザプログラムを格納するエリアである。(ロ)プログラム管理エリアは、CPUがユーザプログラムを実行するのに必要な情報を格納するエリアであり、ユーザ側で値の設定を行う。ユーザ用RAMのサイズの選択(例えば256/512バイト)もこのエリアで行う。
【0082】
<プログラム管理エリアに設定するデータ> プログラム管理エリアに設定するデータには、図11に示すように(1)プログラム管理エリアのスタートを示すコード列を設定する「ヘッダ(HDR)」(例として1F80(16進)〜1F87(16進)にマッピング)、(2)メーカーコードを設定する「メーカーコード(MCD)」(例として1F88(16進)〜1F8A(16進)にマッピング)、(3)製品コードを設定する「製品コード(PCD)」(例として1F8B(16進)〜1F92(16進)にマッピング)、(4)ユーザプログラムのプログラムコードエリアの最終アドレスを設定する「プログラムコードエンドアドレス(PCE)」(例として1F93(16進)〜1F94(16進)にマッピング)、(5)ユーザ用RAMのサイズを設定する「RAMサイズ選択(RSS)」(例として1F95(16進)にマッピング)、(6)端子をパラレル入出力ポートまたは外部デバイスへのチップセレクトとして使用するかを設定する「端子機能選択」(例として1F96(16進)にマッピング)、(7)乱数初期値を設定する「乱数初期値選択」(例として1F97(16進)にマッピング)、(8)乱数初期値選択において指定のユーザ用RAMの値を選択した場合にそのアドレスを設定する「乱数初期値データアドレス」(例として1F98(16進)〜1F99(16進)にマッピング)、(9)外部装置(照合装置等)が読み出すユーザ用RAMアドレスを設定する「読み出しRAMアドレス」(例として1FA0(16進)〜1FBF(16進)にマッピング)などがある。
【0083】
<ユーザ用RAM> ユーザ用RAMは、ユーザプログラムのワークエリア(データエリア,スタックエリア等)として使用する。ユーザの設定により、RAMサイズの変更(例えば512/256バイトの切り換え等)が可能である。ユーザ用RAMにはバックアップ機能があり、バックアップ機能を使用する場合は、VBB端子とGND端子間に別電源を供給することにより、チップの電源(V)切断後も、RAM内のデータが保持(バックアップ)できる。
【0084】
<記憶監視手段> 図9の記憶監視手段c12は、RAM書込を監視する回路である。記憶監視手段c12は、記憶手段の内容や書き込みを監視する。セキュリティモード時に所定の記憶手段のアドレス範囲が監視範囲として設定される。
【0085】
<バス/信号線制御手段> バス/信号線制御手段c13は、チップの外部バスと内部バスとのインターフェース機能及びアドレスバス、データバス,および各制御信号の方向制御や駆動能力を強化するバスインタフェースである。また、それぞれの各端子は内部でプルアップ/プルダウン処理されている。
【0086】
<各端子の説明> アドレスバスは、メモリやI/Oデバイスとのデータ送受信のためのアドレスを指定する。データバスは、データ送受信を行う。XM1は、マシンサイクルを示す。XMREQは、メモリ空間へのリクエスト信号でありメモリのアクセス期間であることを示す。XIORQは、I/O空間へのリクエスト信号でありI/O空間のアクセス期間であることを示す。XRDは、リードサイクルであることを示す。XWRは、ライトサイクルであることを示す。XRFSHは、チップ外部のダイナミックメモリ等へのリフレッシュ信号である。XHALTは、CPUがHALT命令を実行している状態を示す信号で、ホールト状態中は命令を実行しない状態を保持し、このホールト状態の解除はリセット信号または割込みにより行われ、CPUの動作を再開する。
【0087】
<外部入出力手段> 図9に示す外部入出力手段c14は、外部装置(照合装置等)と本チップとを接続し、本チップの真贋を検査する為のものである。本チップは、SC端子及びBRC端子を監視しており、BRC端子へクロック等の信号が供給されている場合外部装置との認証待ち状態となり、SC端子から所定の信号を受け取ると、その受け取った信号に対する認証制御を行う。また、乱数発生装置c8から出力される乱数の検査処理も行う。
【0088】
<乱数生成装置> 図9の乱数発生装置c8について図1から図7までを参照しつつ説明する。
【0089】
図1を参照しつつ、乱数発生装置c8について説明する。図1は、乱数発生の回路構成を示すブロック図である。更新周期設定データ保持回路1は、ユーザが任意のインターバル周期で乱数更新を行う為のインターバル周期を指定する為の設定データを保持する回路であり、基準となるインターバル周期を指定する為の基準インターバル周期指定回路1aと、その基準となるインターバル周期を基に実際の乱数更新を行う為のインターバル周期を指定する為の設定を行う定周期設定値格納回路1bで構成されている。当該回路1で指定されたデータは、更新周期設定回路2へロードされる。
【0090】
更新周期設定回路2は、定周期で乱数更新を行う為のインターバル周期を設定する回路であり、基準インターバル周期指定回路1aで指定されたデータに対応した基準となるインターバル周期を生成する為の基準インターバル周期生成回路2aと、当該回路2aから供給された基準インターバル周期クロックを基に定周期設定値格納回路1bで指定されたカウントデータ数を基に基準インターバル周期をカウントする為の基準インターバル周期カウント回路2bと、定周期設定値格納回路1bで指定されたカウントデータ数に達した場合にインターバル周期の更新・継続を指定する為のリロードタイミングを生成するリロードタイミング生成回路2cで構成される。したがって、更新周期設定回路2で設定されたインターバル周期が乱数更新トリガ選択回路6へ供給される。
【0091】
例えばシステムクロックの分周波が基準となるインターバル周期(仮にIとする)だとすると、基準インターバル周期指定回路1aで指定したデータ(例えば128分周を指定するデータ)に基づき分周したクロックが基準インターバル周期となる。また、定周期設定値格納回路1bの指定できる設定範囲が仮に8ビットだとすると、実際の定周期で乱数更新を行う為の設定できるインターバル周期は、「128×システムクロック×1から128×システムクロック×256迄」のインターバル周期を設定することができる。また、定周期設定値格納回路1bで指定した設定値が仮に「5」だとすると、この設定値が同様にリロードタイミング生成回路2cにロードされ、当該回路にて「128×システムクロック×5」に達した場合再度インターバル周期の更新・継続を行う為のリロードタイミングを基準インターバル周期カウント回路2bへ供給することになる。
【0092】
ソフトウェア更新トリガ発生回路3は、CPUからの命令により所定の条件を組み合わせたデータ(アドレス、所定のデータをデコードして発生したデータ等)を当該回路へライトアクセスを行うことによってソフトウェアトリガ信号を発生する。
【0093】
動作開始指示回路4は、乱数更新の動作の停止、再始動、継続動作等の指定を行うものである。
【0094】
乱数更新トリガ選択情報保持回路5は、乱数値の更新において、更新周期設定回路2で発生された定周期で乱数更新を行う為のインターバル周期を使用する自動更新方式か、あるいはソフトウェア更新トリガ発生回路3で発生されたソフトウェアによるトリガ信号を使用する手動更新方式を使用するかのいずれかの方式の選択を行うものである。
【0095】
乱数更新トリガ選択回路6は、更新周期設定回路2で発生されたインターバル周期クロック、またはソフトウェア更新トリガ発生回路3で生成されたソフトウェアによるトリガ信号のいずれかの内一つを選択して更新制御回路7へ供給する。
【0096】
更新制御回路7は、乱数更新の動作の停止、再始動、継続動作等の制御を行う。
【0097】
乱数発生回路8は、所定の設定によりそれぞれ異なる乱数系列の発生を行う為のn次の生成多項式、又はnビットカウンタが複数内蔵されている。
【0098】
ビットスクランブル設定回路9は、乱数発生回路8から出力される乱数データのビットの入れ換えや転置を行うものであり、ビットスクランブル要求回路9a、ビットスクランブルキー生成回路9b、ビットスクランブル回路9cで構成される。ビットスクランブル要求回路9aは、乱数更新トリガ選択回路6により選択された更新手段により更新されたタイミングにより乱数発生回路8から出力される乱数データに対しスクランブルをかける要求を指定する回路である。ビットスクランブルキー生成回路9bは、補助乱数発生手段19から発生されるビットスクランブル用キー生成の為の補助乱数やビットスクランブル要求回路9aからのデータ値を基に乱数データの配置・転置を行う為のビットスクランブルテーブルの選択を行う回路である。ビットスクランブル回路9cは、ビットスクランブルキー生成回路9bから指定されたキーデータにより選択されたビットスクランブルテーブルを基に乱数データのビットの配置・転置を行う回路である。なお、スクランブルをかけるか否かの選択はビットスクランブル要求回路9aによりユーザが自由に設定できるが、ビットスクランブル用キーの変更は、乱数発生回路8より出力される乱数一巡終了信号S1により行われる。ビットスクランブル要求回路9aより出力されるビットスクランブル要求信号S2があっても乱数一巡終了信号S1が無いと、ビットスクランブル用キーの変更は行われない。このことにより乱数一巡毎の確率が一定となる。
【0099】
乱数最大値格納回路10は、ユーザが任意に設定した乱数周期の最大値を格納する為の回路である。例えば乱数発生範囲が1から4095まであるとした場合、ユーザにとって1から36までの乱数のみ必要な場合、当該回路10に最大値として36を設定すれば1から36までの乱数を得ることが可能である。
【0100】
乱数最大値比較回路11は、ユーザが任意に設定した乱数周期の最大値と乱数発生回路8が発生した乱数値をビットスクランブル回路9cがビットスクランブルを行った出力値を比較し、出力値が最大値より大きい場合には乱数発生回路8に対し次の乱数発生を指示する。最大値以下の場合には乱数値保持回路12へ格納する。
【0101】
乱数値保持回路12は、ユーザが任意に設定した乱数周期の最大値以下の場合の時のスクランブルされた乱数データを保持するものである。すなわち最大周期に達するまでの乱数データを保持する回路である。
【0102】
乱数値要求回路13は、ユーザが乱数データを読み出す為の要求を行うものであり、外部トリガ入力による要求やその要求があった場合の情報を割込信号として外部へ出力することも可能である。
【0103】
乱数値読出回路14は、ユーザが乱数データを読み出す為の回路である。
【0104】
ROM内プログラム管理エリア15は、本発明の乱数発生装置の動作指定、制御等を行う為にユーザが設定する動作環境設定の指定を行うエリアであり、乱数系列を発生する為の最初のスタート値である乱数初期値選択定数15aと、ある所定のRAMアドレスに格納されたデータを発生する乱数系列の初期値として使用したい場合、そのデータを乱数初期値選択回路17へ送出することを目的とするRAMアドレス指定15bとで構成される。なお、初期化プログラムで乱数初期値をRAM値と選択した場合RAMアドレス指定で示されたアドレスのRAM値を乱数初期値選択回路17へ格納する。
【0105】
ソフトウェア操作16は、乱数の更新処理や所定の初期値をロードする為の制御を行う為の操作を指しており、本発明の乱数発生装置自身が持つ値である固定値16a、本発明の乱数発生装置に割り付けられた自身を認識する為の固有の番号であるID番号16b、RAMアドレス指定15bで指定された値であるRAM値16c、RAM内の全アドレスのデータを基に加算・減算・乗算・除算等の演算処理した値であるRAM演算値16d、プログラムの制御用のデータエリアであるRAM16e、で構成される。
【0106】
なお、ID番号16bは、前述したID格納手段c11aに格納されたチップのID番号と同様のものである。前述したチップのIDがチップ自身を個別に識別するものであって、乱数発生装置のID番号は、乱数の初期値をチップ個別に設定するものである。したがって、両者の違いは仕様的な相違のみであり、実際の両者のID番号は、異なっても良いしまた同一であっても何等問題では無い。したがって、段落番号0078で示した(a)〜(i)の情報データのいくつかを乱数初期値用のID番号とすることが可能である。乱数初期値選択回路17は、乱数初期値として固定値16a、ID番号16b、RAM値16c、RAM演算値16dのいずれかの内1つを選択して乱数発生回路8へ初期値をロードする。
【0107】
乱数初期値格納回路18は、乱数初期値選択回路17により選択された初期値又は補助乱数発生手段19にて発生された乱数を初期値として格納する為の回路である。 乱数初期値は乱数発生回路8の発生する乱数値が一巡する毎に補助乱数発生手段19より乱数初期値格納回路18により更新できる。
【0108】
補助乱数発生手段19は、本乱数発生装置とは別の手段にて乱数を発生させたものである。
【0109】
次に図2を参照しつつ乱数発生について説明する。図2は補助乱数発生手段19の概要を示すブロック図であり、(1)は外部トリガ入力バスが無い場合(図9参照)、(2)は外部トリガ入力バスがある場合(図17参照)について示している。発生手段として(a)CPUの命令制御による乱数発生、(b)熱雑音による乱数発生、(c)別クロックによる乱数発生、(d)チップ外部からのトリガ入力による乱数発生の4つの場合を含む。
【0110】
(a)のCPUの命令制御による乱数発生は、CPUが行った命令(命令実行数カウント回路21にて保持される)の情報等をカウントしたデータを乱数とするものである。
【0111】
(b)の熱雑音による乱数発生は、抵抗体やダイオード等から発生する熱雑音等のノイズ成分を乱数とするもので、これら熱雑音発生体を内蔵した熱雑音発生回路22から発生するアナログのノイズ成分をA/D変換回路23にてデジタルデータに変換したものを乱数とするものである。
【0112】
(c)別クロックによる乱数発生は、本乱数発生装置で使用するクロックとは別のクロックで乱数を生成するものである。
【0113】
(d)チップ外部からのトリガ入力による乱数発生は、ユーザが任意に設定したトリガ入力で乱数を生成するものである。
【0114】
これら上記(a)、(b)、(c)、(d)の方法にて生成された乱数は乱数初期値としてビットスクランブルキー生成回路9b、または乱数初期値格納回路18へ供給されることとなる。供給の方法としては上記(a)、(b)、(c)、(d)を適宜組み合わせたものとなる。
【0115】
上記(c)において、カウンタ回路に25に供給するクロックとして、(1)の外部トリガ入力バスが無い場合、各機能ブロックに供給するクロックとは異なる分周比率のクロックソース源(s3)がクロック生成手段c9より供給され、(2)の外部トリガ入力バスがある場合、EX端子とは別のクロックがOSC端子より供給される。供給するクロックとして所定のインターバル周期との同期を避ける為に、例えばEX端子に供給される周波数(例えば12MHzとする。)とは別の異なる周波数(例えば11MHzとする。)を供給するようにしても良いことはいうまでもない。
【0116】
次に図3を参照しつつ乱数発生について説明する。図3は乱数発生装置のビットスクランブル設定回路9の具体的な説明図であり、ビットスクランブルテーブルとはビットの入れ換えのパターンを示すビットスクランブルテーブル(以下便宜上、「変換テーブル」、または「変換パターン」と略称する場合がある)であり、この変換テーブルにもとづいてビットの配置・転置位置が決定する。例えばデータ長を8ビットし元の配置が最下位ビットから順にD0−D1−D2−D3−D4−D5−D6−D7だとすると
(1)D0−D1−D2−D3−D4−D5−D6−D7
(2)D3−D0−D5−D1−D7−D2−D4−D6
(3)から(255)までの記載を省略。
(256)D7−D5−D2−D4−D1−D6−D0−D3
といった様に元の変換を行わないものを加味すると256通りの変換パターンが存在することになる。この様子を図式イメージ化したものが図3(a)である。
【0117】
しかし、上記変換パターンをソフトウェアでは無くハードウェアにて実現しようとすると回路規模が大きくなりゲート数の増大を招いてしまう。
【0118】
そこでその変換テーブルの数を減少させることによって回路規模を小さくしゲート数の増大を招くこと無く256通りの変換パターンを確保することが可能にするのが本発明のビットスクランブル設定回路9の特徴であり、その原理を図式イメージ化したものが図3(b)である。以下にその原理の説明を行うが、便宜上同様にデータ長は8ビットとする。
【0119】
ビットスクランブルキー発生回路9bのKEY_A(4ビット)によって最初に16通りの変換テーブルを発生する。すなわちこの最初の16通りの変換パターンがそれぞれ個別に元のパターンとなる。(仮にO1〜O16とする)
【0120】
次に上記16通りの元のパターンに対しKEY_B(2ビット)にてそれぞれ個別に更にパターンの変換を行う。すなわち
(O1×4通り)から(O16×4通り)迄の加算値となるので合計実質上64通りの変換パターンを実現したことになる。したがって、上記同様64通りの変換パターンがそれぞれ個別に元のパターンとなる。(仮にOH1〜OH4とする)
【0121】
次に上記同様に64通りのパターンに対しKEY_C(2ビット)にてそれぞれ個別に更にパターンの変換を行う。すなわち(OH1×4通り)から(OH4×4通り)迄の加算値となるので最終的に合計した結果、実質上の変換パターンは256通り実現したことになる。
【0122】
したがって本来256通りの変換テーブルが必要だったものが、上記の方法により24通りの変換テーブルを用意するだけで、実質上256通りの変換パターンを実現させたことになり回路規模が小さくなる。
【0123】
また、上記方法の変換パターンのロジック回路はシフトレジスタを用いること無くゲート回路のみで設計できる為、次の変換パターンを交換する処理スピードは遊技機の動作するシステムクロックの1周期分も要しない。
【0124】
図4は更新周期設定データ保持回路1と更新周期設定回路2の内部構成を示すブロック図である。
【0125】
次に乱数発生装置の動作について図5に図示された概要フローに従い順に説明する。
【0126】
図5は乱数発生装置が所望の動作を行う為の環境設定の設定を行う初期化ルーチン処理を示すフローチャートである。遊技機全体を初期化するシステムリセットが入力されると最初に使用する乱数初期値として(1)乱数発生装置の固定値、(2)乱数発生装置のID番号、(3)RAM値、(4)RAM演算値の内何を使用するかの選定及びその他乱数発生装置の内部回路等の初期化処理の環境設定終了後、ユーザが使用できるユーザモードに遷移しユーザリセット待ちの状態となる。なお、ユーザリセットでは上記処理の初期化は行なわれない。
【0127】
次に図6の概要フローを参照しつつ説明する。図6は乱数発生装置が図5による初期化処理終了後ユーザが自由に乱数を読み出す為の動作設定処理を示すフローチャートである。ユーザが接続した各周辺装置の初期化及びユーザが作成した遊技制御プログラムの先頭番地に戻る為のユーザリセットが入力されると、インターバル動作の為の定周期が起動される。定周期による更新又は手動更新(ソフトウェアによる更新)の内いずれを使用するかの更新トリガ条件の設定が行われ、手動更新が設定された場合ソフトウェア更新トリガによる乱数更新を行うことになる。次に遊技機のスタートセンサ入力等の乱数読み込みタイミングかの判断が行われソフトウェアによる取込みトリガを使用する場合乱数値要求回路をアクセスすることで乱数値保持回路に保持された乱数値が取り込まれ乱数値読出回路へロードされる。後は読み出した乱数を基にユーザが抽選処理等のアプリケーション操作を行うことになる。
【0128】
次に図7の概要フローを参照しつつ説明する。図7は乱数発生装置の乱数更新及び乱数読出処理のフローチャートの一例を示したもので、(a)は自動更新(定周期)及び手動更新(ソフトウェア)による乱数更新処理、(b)は外部トリガ及びソフトウェアによる取込みトリガによる乱数読出処理を示したフローである。
【0129】
乱数の更新が行われるとビットスクランブルキーデータの示すビットスクランブルテーブルにより乱数値のビットスクランブル処理を行い、乱数値が最大値以内の場合乱数値を乱数値保持回路へ格納し、最大値を超えた場合乱数値の再更新を行う。次に乱数の発生が一巡したか否かの判断が行われ、一巡した場合にビットスクランブルの変更要求は有るか否かの判断が行われ、要求があった場合ビットスクランブルキーデータの更新処理を行う。
【0130】
なお、乱数値の取込とは発生した乱数を乱数保持回路12からユーザがアクセス可能な乱数値読出回路14に対して送るか否かの処理のことを指す。定周期による乱数更新トリガを使用した場合乱数値の取込は自動的に行われる。この乱数値の取込処理を行うか否かの選定を行うことでユーザが(1)更新周期設定回路によって自動的に連続して発生された乱数値を使用するか(2)任意の時点で更新して読み出した乱数値を使用するかの遊技性の趣向を選定することができる。
【0131】
したがって、ユーザが実際に乱数の取得を行うには乱数値要求回路13にアクセスすることでその時点の本乱数発生装置で発生されている乱数値を取得することができる。
【0132】
また、ユーザリセットの入力毎に上記動作指定条件の設定をユーザが自由に変更できるが、(1)最大値設定、(2)更新トリガ条件設定は1度設定を行うと変更することはできない。
【0133】
次に図17、図18を参照しつつ、実施形態2及び実施形態3について説明する。実施形態2は、本発明の実施形態を示す図9の構成とほぼ同じであるが、図9では、乱数発生装置c8に対してクロック生成手段c9から専用の信号(s3)が入力されているのに対し、図17の構成では、乱数発生装置c8に対しチップ外部からトリガ信号を取り入れる為の入トリガ入力バスと、EX端子とは別に異なるクロックを供給する為のOSC端子を有しており、乱数更新トリガ、乱数要求トリガ、補助乱数要求トリガなどを外部から取り入れることを可能とするものである。
【0134】
実施形態3は、更に外部出力制御手段20を設け、乱数値保持回路12から出力される乱数データをソフトウェア操作によるスイッチにより外部入出力手段c14へ送出するものであり、図18にその実施形態3を示す乱数発生の回路構成機能ブロック図を示している。ソフトウェア操作によるスイッチとは、ユーザではアクセスや操作ができないものであり、例えば所定のアルゴリズムによりコマンドや制御シーケンスを暗号化処理を施した信号が外部入出力手段c14へ入力され、その信号をCPUが認識した際に起動するものである。このスイッチが起動されると、乱数値保持回路12の乱数データがリアルタイムで入賞状態やチップの遊技状態に関わらず、外部入出力手段c14へ送出されることになる。すなわち、発生した全ての乱数データが出力されることになり、第三者機関での出現乱数の一様性の検査が可能となる。
【0135】
なお、乱数値は通常、乱数が必要なタイミングで適時に読み出されるため、乱数更新内容や乱数列は外部バス上には出力されない。しかし全ての乱数値をデータバス上に出力させて検査を行う必要が生じた場合は、ソフトウエア更新トリガ使用時に毎回、乱数値読出回路14の乱数データをCPUが読み出せば全ての乱数値がデータバスへ出力させることが可能となる。図19にその入賞状態に関わらない乱数発生装置の乱数読出処理及び乱数出力処理のフローチャートを示している。
【0136】
また、乱数最大値比較回路11から出力される乱数は、データバス上に直結されていない為、上記やソフトウェア乱数のように更新の度に乱数データがデータバス上に乗ることは無い。すなわち、CPUのリード命令やリードサイクルに関わらず、乱数発生装置内のバス上で自動的に更新制御が行われる。したがって、この乱数の更新タイミングと乱数列の並び(乱数列を生成する数式)は、不正者に予測することはできない。
【0137】
【発明の効果】
(1)乱数の初期値の更新において、ユーザ側で複数の乱数更新トリガ条件を選択可能にし、また遊技機制御用チップ毎のID番号を用いることにより乱数の発生の不規則性や遊技機メーカーの機種・台毎にそれぞれ異なる乱数系列を持つことが可能となる。
(2)M系列又はカウンタ方式の乱数を採用したので、一様性のある乱数を発生させることが可能である。
(3)乱数発生装置を遊技機制御用チップの内部にハードウェアで構成して内蔵したので、更新タイミングをシステムバス上へ出力しない制御をすることにより、乱数発生回路内部で処理されている乱数の更新タイミングが外部へ出力されない。したがって、不正を行う者にとって乱数値の出現する周期を予測することができなくなる。
(4)乱数最大値格納回路を設けたので、発生する乱数の最大周期をユーザで任意に設定可能となる。
(5)乱数更新トリガ選択回路及び更新制御回路を設けたので、乱数の更新タイミングをユーザで任意に設定可能となる。また、ユーザの任意の設定による乱数の更新タイミング以外のトリガをも採用したので、ユーザ設定のみに依存せずに乱数の発生が可能となる。
(6)ビットスクランブル回路を設けることにより、発生した乱数にスクランブルをかけることができる。また、ビットスクランブルキー生成回路を設け、複数のテーブルを用いたことにより、乱数の1周期(一巡)ごとにスクランブルの仕方についての設定を変更することが可能となる。
【図面の簡単な説明】
【図1】乱数発生の回路構成を示すブロック図である。
【図2】補助乱数発生手段19の具体例を示すブロック図である。
【図3】 ビットスクランブルテーブルの構成を示す概念説明図である。
【図4】更新周期設定データ保持回路1と更新周期設定回路2の内部構成を示すブロック図である。
【図5】乱数発生装置が所望の動作を行う為の環境設定の設定を行う初期化ルーチン処理を示すフローチャートである。
【図6】乱数発生装置が図5による初期化処理終了後ユーザが自由に乱数を読み出す為の動作設定処理を示すフローチャートである。
【図7】乱数発生装置の乱数更新及び乱数読出処理のフローチャートを示したものである。
【図8】チップの動作モード遷移図である。
【図9】チップ全体の機能ブロック図である。
【図10】チップ全体のメモリマップを示した具体例図である。
【図11】ユーザ用ROM内のエリアを示した具体例図である。
【図12】暴走監視手段ブロック図である。
【図13】リセット/割込制御手段ブロック図である。
【図14】システムリセットタイミングチャート例である。
【図15】ユーザリセットタイミングチャート例である。
【図16】NMI及びINT割込みタイミングチャート例である。
【図17】本発明の第2及び第3の実施形態を示す外部トリガ入力可能な場合のチップ全体の機能ブロック図である。
【図18】本発明の第3の実施形態を示す乱数発生の回路構成機能ブロック図である。
【図19】本発明の入賞状態に関わらない乱数発生装置の乱数読出処理及び乱数出力処理のフローチャートを示したものである。
【符号の説明】
1 更新周期設定データ保持回路
1a 基準インターバル周期指定回路
1b 定周期設定値格納回路
2 更新周期設定回路
2a 基準インターバル周期生成回路
2b 基準インターバル周期カウント回路
2c リロードタイミング生成回路
3 ソフトウェア更新トリガ発生回路
4 動作開始指示回路
5 乱数更新トリガ選択情報保持回路
6 乱数更新トリガ選択回路
7 更新制御回路
8 乱数発生回路
9 ビットスクランブル設定回路
9a ビットスクランブル要求回路
9b ビットスクランブルキー生成回路
9c ビットスクランブル回路
10 乱数最大値格納回路
11 乱数最大値比較回路
12 乱数値保持回路
13 乱数値要求回路
14 乱数値読出回路
15 ROM内プログラム管理エリア
15a 乱数初期値選択定数
15b RAMアドレス指定
16 ソフトウェア操作
16a 固定値
16b ID番号
16c RAM値
16d RAM演算値
16e RAM
17 乱数初期値選択回路
18 乱数初期値格納回路
19 補助乱数発生手段
20 外部出力制御手段
21 命令実行数カウント回路
22 熱雑音発生回路
23 A/D変換回路
25 カウンタ回路
26 外部トリガ制御手段
S1 乱数一巡終了信号
S2 ビットスクランブル要求信号
S3 各機能ブロックに供給するクロックとは異なる分周比率のクロックソース源
S4 ユーザでアクセスできない乱数出力データ
c1 CPU
c2 タイマシステム
c3 不正実行禁止手段
c4 暴走監視手段
c4a クロック選択手段
c4b nビットカウンタ
c4c 暴走監視制御手段
c4d 動作モード制御手段
c4e 制御ワード設定手段
c4f 出力制御手段
c5 リセット/割込制御手段
c5a ノイズフィルタ
c5b OR(論理和)回路
c5c 延長回路
c5d INT優先順位制御回路
c6 デコード手段
c7 入出力手段
c8 乱数発生装置
c9 クロック生成手段
c10 セキュリティ手段
c11 記憶手段
c12 記憶制御手段
c13 バス/信号線制御手段
c14 外部入出力手段

Claims (21)

  1. 遊技機に用いる遊技機制御用チップであって、
    該遊技機制御用チップは、
    CPUと、
    記憶手段と、
    M系列方式又はカウンタ方式の乱数を発生する乱数発生回路と、
    該乱数発生回路から出力された乱数に対してビットスクランブルをかけるビットスクランブル回路と、
    該ビットスクランブル回路の出力を予め格納された乱数最大値と比較する乱数最大値比較回路と、
    該乱数最大値比較回路比較処理の結果、最大値を超えた場合に再度乱数発生回路に要求を行い、最大値を超えない乱数値を得るまで乱数要求を繰り返し、最大値を超えない乱数である場合にそれを取得し保持する乱数値保持回路と、
    該乱数値保持回路に保持された乱数を外部トリガ入力による要求やユーザが乱数の読み出し要求を行った際に取り込んだ乱数が格納される乱数読出回路と、
    前記記憶手段に記憶された所定のいくつかの値の中から乱数初期値を選択する乱数初期値選択回路と、
    前記乱数発生回路から独立した補助乱数発生手段と
    を有し、前記乱数発生回路の乱数初期値は、前記乱数初期値選択回路により書き換えられ、該乱数初期値は、乱数発生回路の発生する乱数が一巡する毎に前記補助乱数発生手段の発生する補助乱数値を初期値とし、前記乱数読出回路に格納された乱数に基づき遊技プログラムを実行することを特徴とする遊技機制御用チップ。
  2. 請求項に記載した遊技機制御用チップであって、
    前記乱数初期値選択回路が乱数初期値として選択する選択肢として、前記記憶手段に格納された乱数初期値選択定数、前記乱数発生装置固有の固定値、前記乱数発生装置がもつ所定値、前記遊技機制御用チップのID番号、前記記憶手段のRAM値又はRAM演算値を含むことを特徴とする遊技機制御用チップ。
  3. 請求項に記載した遊技機制御用チップであって、
    所定のいくつかのトリガ条件の中から前記乱数発生回路の更新制御のトリガ条件を選択する乱数更新トリガ選択回路と更にこれらトリガ条件の更新の開始や継続や終了を制御する更新制御回路を更に有する遊技機制御用チップ。
  4. 請求項に記載した遊技機制御用チップであって、
    前記ビットスクランブル回路は、あらかじめ用意されたビットスクランブルテーブルにしたがってビットを入れ換える処理をすることを特徴とする遊技機制御用チップ。
  5. 請求項に記載した遊技機制御用チップであって、
    前記ビットスクランブル回路におけるスクランブル処理は、ビットスクランブル回路を複数用意し、複数段階のビット入れ換えを実行することを特徴とする遊技機制御用チップ。
  6. 請求項に記載した遊技機制御用チップであって、
    前記複数のビットスクランブルテーブルは、乱数発生回路からの乱数一巡終了信号及びビットスクランブル要求回路からのビットスクランブル要求及び補助乱数発生手段からの乱数を基に不規則に任意のビット入れ換えを実行することを特徴とする遊技機制御用チップ。
  7. 請求項1に記載した遊技機制御用チップであって、
    前記乱数値読出回路に格納された乱数を読み出す為の乱数値要求回路更に有し、
    該乱数値要求回路の要求するタイミングは、複数のトリガ条件から選択可能としたことを特徴とする遊技機制御用チップ。
  8. CPUと、記憶手段と、M系列方式又はカウンタ方式の乱数を発生する乱数発生回路と、該乱数発生回路から出力された乱数に対してビットスクランブルをかけるビットスクランブル回路と、該ビットスクランブル回路の出力を予め格納された乱数最大値と比較する乱数最大値比較回路と、該乱数最大値比較回路の比較処理の結果、最大値を超えた場合に再度乱数発生回路に要求を行い、最大値を超えない乱数値を得るまで乱数要求を繰り返し、最大値を超えない乱数である場合にそれを取得し保持する乱数値保持回路と、該乱数値保持回路に保持された乱数を外部トリガ入力による要求やユーザが乱数の読み出し要求を行った際に取り込んだ乱数が格納される乱数読出回路と、前記記憶手段に記憶された所定のいくつかの値の中から乱数初期値を選択する乱数初期値選択回路と、前記乱数発生回路から独立した補助乱数発生手段とを有し、前記乱数発生回路の乱数初期値は、前記乱数初期値選択回路により書き換えられ、該乱数初期値は、乱数発生回路の発生する乱数が一巡する毎に前記補助乱数発生手段の発生する補助乱数値を初期値とし、前記乱数読出回路に格納された乱数に基づき遊技プログラムを実行する遊技機制御用チップを用いた遊技機制御方法であって、
    前記乱数初期値選択回路により、前記記憶手段に記憶された所定のいくつかの値の中から乱数初期値を選択する乱数初期値選択ステップと、
    該乱数初期値選択ステップにて選択された乱数初期値を初期値とし、前記乱数発生回路の発生する乱数が一巡する毎に、前記補助乱数発生手段の発生する補助乱数値を初期値としてM系列方式又はカウンタ方式の乱数を発生する乱数発生ステップと、
    該乱数発生ステップにて発生された乱数に対してビットスクランブルをかけるビットスクランブルステップと、
    該ビットスクランブルステップの出力を予め格納された乱数最大値と比較する乱数最大値比較ステップと、
    該乱数最大値比較ステップによる比較処理の結果、最大値を超えた場合に再度乱数発生回路に要求を行い、最大値を超えない乱数値を得るまで乱数要求を繰り返し、最大値を超えない乱数である場合にそれを取得し保持する乱数値保持ステップと、
    該乱数値保持ステップにて保持された乱数を外部トリガ入力による要求やユーザが乱数の読み出し要求を行った際に取り込ん格納する乱数読出ステップと、
    該乱数読出ステップにて格納された乱数に基づき遊技プログラムを実行する遊技実行ステップと
    を有する遊技機制御方法。
  9. 請求項に記載した遊技機制御方法であって、
    前記乱数初期値選択ステップが乱数初期値として選択する選択肢として、ROM内に格納された乱数初期値選択定数、前記乱数発生装置固有の固定値、前記乱数発生装置のもつ所定値、前記遊技機制御用チップのID番号、RAM値又はRAM演算値を含むことを特徴とする遊技機制御方法。
  10. 請求項に記載した遊技機制御方法であって、
    所定のいくつかのトリガ条件の中から前記乱数発生ステップの更新制御のトリガ条件を選択する乱数更新トリガ選択ステップと、
    更にこれらトリガ条件の更新の開始や継続や終了を制御する更新制御ステップ
    を更に有する遊技機制御方法。
  11. 請求項に記載した遊技機制御方法であって、
    前記ビットスクランブルステップは、あらかじめ用意されたビットスクランブルテーブルにしたがってビットを入れ換える処理をすることを特徴とする遊技機制御方法。
  12. 請求項11に記載した遊技機制御方法であって、
    前記ビットスクランブルステップにおけるスクランブル処理は、ビットスクランブルテーブルを複数用意し、複数段階のビット入れ換えを実行することを特徴とする遊技機制御方法。
  13. 請求項11に記載した遊技機制御方法であって、
    前記複数のビットスクランブルテーブルは、前記乱数発生ステップからの乱数一巡終了信号及びビットスクランブル要求及び前記補助乱数発生手段からの乱数を基に不規則に任意のビット入れ換えを実行することを特徴とする遊技機制御方法。
  14. 請求項に記載した遊技機制御方法であって、
    前記乱数値読出ステップにて格納された乱数を読み出す為の乱数値要求ステップ更に有し、
    該乱数値要求ステップの要求するタイミングは、複数のトリガ条件から選択可能としたことを特徴とする遊技機制御方法。
  15. 請求項1に記載した遊技機制御用チップであって、
    クロック生成手段と暴走監視手段とをさらに有し、
    該暴走監視手段は、前記クロック生成手段からの信号に基づき、タイムアウト時間をカウントし、タイムアウト時間が経過すると、タイムアウト信号を発生させて、このタイムアウト信号を前記CPUが受け付けることによりリセットを発生し、プログラムのリセットアドレスからプログラムを再実行することを特徴とする遊技機制御用チップ。
  16. 請求項15に記載した遊技機制御用チップであって、
    前記タイムアウト時間を変更可能としたことを特徴とする遊技機制御用チップ。
  17. 請求項1に記載した遊技機制御用チップであって、
    不正実行禁止手段をさらに設けて、不正アドレスからのオペコードフェッチの禁止をすることを特徴とする遊技機制御用チップ。
  18. 請求項1に記載した遊技機制御用チップであって、
    個々のチップ固有のID番号を有することを特徴とする遊技機制御用チップ。
  19. 請求項1に記載した遊技機制御用チップであって、
    パラレル入出力ポートと外部チップセレクト信号とを兼用させたことを特徴とする遊技機制御用チップ。
  20. 請求項1に記載した遊技機制御用チップであって、
    セキュリティチェックを実行して、認証結果によりCPUを停止させるセキュリティ手段をさらに設けたことを特徴とする遊技機制御用チップ。
  21. 請求項1に記載した遊技機制御用チップであって、
    前記乱数をデータバス上に乗せるか否かの設定を可能とすることを特徴とする遊技機制御用チップ。
JP2002109658A 2002-04-11 2002-04-11 遊技機制御用チップ及び遊技機制御方法 Expired - Fee Related JP4242600B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002109658A JP4242600B2 (ja) 2002-04-11 2002-04-11 遊技機制御用チップ及び遊技機制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002109658A JP4242600B2 (ja) 2002-04-11 2002-04-11 遊技機制御用チップ及び遊技機制御方法

Publications (2)

Publication Number Publication Date
JP2003299862A JP2003299862A (ja) 2003-10-21
JP4242600B2 true JP4242600B2 (ja) 2009-03-25

Family

ID=29393062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002109658A Expired - Fee Related JP4242600B2 (ja) 2002-04-11 2002-04-11 遊技機制御用チップ及び遊技機制御方法

Country Status (1)

Country Link
JP (1) JP4242600B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018043143A (ja) * 2010-10-21 2018-03-22 株式会社三洋物産 遊技機

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4536357B2 (ja) * 2003-11-07 2010-09-01 株式会社エルイーテック 遊技機制御用チップ
JP4671604B2 (ja) * 2004-01-08 2011-04-20 株式会社三共 遊技機
JP4762625B2 (ja) * 2005-07-20 2011-08-31 株式会社三共 遊技機
JP4762626B2 (ja) * 2005-07-20 2011-08-31 株式会社三共 遊技機
JP4762645B2 (ja) * 2005-08-25 2011-08-31 株式会社三共 遊技機
JP4762646B2 (ja) * 2005-08-25 2011-08-31 株式会社三共 遊技機
JP4730053B2 (ja) * 2005-10-24 2011-07-20 株式会社三洋物産 遊技機
JP5178682B2 (ja) * 2009-10-20 2013-04-10 株式会社ソフイア 遊技機
JP2011172731A (ja) * 2010-02-24 2011-09-08 Sophia Co Ltd 遊技機
JP2014028076A (ja) * 2012-07-31 2014-02-13 Daito Giken:Kk 遊技台
JP5990837B2 (ja) * 2014-09-30 2016-09-14 株式会社サンセイアールアンドディ 遊技機
JP6182799B2 (ja) * 2014-12-22 2017-08-23 株式会社大都技研 遊技台
JP7446923B2 (ja) 2020-06-02 2024-03-11 キオクシア株式会社 半導体装置及び半導体記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018043143A (ja) * 2010-10-21 2018-03-22 株式会社三洋物産 遊技機

Also Published As

Publication number Publication date
JP2003299862A (ja) 2003-10-21

Similar Documents

Publication Publication Date Title
JP4263898B2 (ja) 遊技機制御用チップ及び遊技機制御方法
JP4364292B2 (ja) 遊技機制御用チップ及び遊技機制御方法
JP4242600B2 (ja) 遊技機制御用チップ及び遊技機制御方法
US8555015B2 (en) Multi-layer content protecting microcontroller
US8250374B2 (en) Method and apparatus for verifying authenticity of initial boot code
JP4198923B2 (ja) 乱数発生装置
JP3672282B2 (ja) 遊技機用乱数発生装置
JP4226845B2 (ja) 遊技機制御用チップ及び遊技機制御方法
US8245918B2 (en) Method and system for random data access for security applications
JP2000501541A (ja) 予測不可能なマイクロプロセッサまたはマイクロコンピュータ
US7624442B2 (en) Memory security device for flexible software environment
JP4363829B2 (ja) 遊技機制御用チップ
JP2022520463A (ja) メモリ装置内に保存されているデータを処理するための方法及び装置
WO2021094556A1 (en) Method for increasing security of embedded processors and apparatus performing the method
JP2016123803A (ja) 遊技機制御用チップ
JP4482316B2 (ja) 遊技機制御用マイクロコンピュータ
JP4160150B2 (ja) 遊技機用乱数装置
JP2004038409A (ja) 遊技機制御用チップ及び遊技機制御方法
JPH0231256A (ja) 外部メモリとそれを用いる情報処理装置
JP2003143141A (ja) ソフトウェアにより制御される装置
JP2017086418A (ja) 乱数発生器を内部に備えた遊技機用プロセッサ、遊技機用プロセッサ装置、遊技機用基板及び遊技機
JP3442474B2 (ja) 遊技機制御用マイクロコンピュータチップ
JP3593701B2 (ja) 制御装置
US20020078369A1 (en) Method and system for providing territory control in a computer system
JPH0554139B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081110

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20081110

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: 20081209

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: 20081225

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150109

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees