JP4363829B2 - Game machine control chip - Google Patents

Game machine control chip Download PDF

Info

Publication number
JP4363829B2
JP4363829B2 JP2002261253A JP2002261253A JP4363829B2 JP 4363829 B2 JP4363829 B2 JP 4363829B2 JP 2002261253 A JP2002261253 A JP 2002261253A JP 2002261253 A JP2002261253 A JP 2002261253A JP 4363829 B2 JP4363829 B2 JP 4363829B2
Authority
JP
Japan
Prior art keywords
signal
circuit
random number
output
chip
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
JP2002261253A
Other languages
Japanese (ja)
Other versions
JP2004097363A (en
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 JP2002261253A priority Critical patent/JP4363829B2/en
Publication of JP2004097363A publication Critical patent/JP2004097363A/en
Application granted granted Critical
Publication of JP4363829B2 publication Critical patent/JP4363829B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Pinball Game Machines (AREA)

Description

【0001】
【発明が属する技術分野】
本発明は、パチンコ遊技機や回胴式遊技機等に使用される遊技機制御用チップ及び遊技機制御方法に関する。
【0002】
【従来の技術】
従来の遊技機に使用される遊技機制御用チップにおいて、チップの端子自身が自ら出力した信号や端子へ入力された信号をチェックする機能は、外部装置との照合や通信を行う端子は別にして皆無であった。
【0003】
【発明が解決しようとする課題】
その為、不正を行おうとする者が意図的に出力同士を短絡(ショート)させたり、然るべく外部端子に想定できない信号が入力されても、その信号を識別することはできなかった。
本発明は、かかる従来技術の課題に鑑みなされたものである。すなわち、本発明の目的は、外部端子を常時監視(モニタ)し、異常ある場合にCPUの停止、異常情報の通知を行う遊技機制御用チップ及び遊技機制御方法を提供することにある。
【0004】
【課題を解決するための手段】
本発明に係る遊技機制御用チップ及び遊技機制御方法では、外部端子における出力データ又は期待値データと入力データ(フィードバックデータ)とを比較する。その時不一致の場合はCPUを停止させたり、検査対象の外部端子からその情報を出力することとした。
【0005】
請求項1に記載した発明は、外部端子の入出力を自らチェックする機能を持ったバス/信号線制御手段と、セキュリティ機能を有し、遊技機に組み込む遊技機制御用チップであって、前記バス/信号線制御手段は、制御信号の方向制御や駆動能力の強化をするI/Oバッファと、所定のデータ値や信号パターン等を設定する期待値設定回路と、外部端子から入力された信号と、前記期待値設定回路にて設定された所定のデータ値や信号パターン等の出力信号又はチップ内部の信号を外部端子へ出力する各制御信号とを比較し、不一致の検出を行う不一致検出回路と、前記外部端子へ出力する信号、又は前記期待値設定回路の出力信号のいずれかを選択して前記不一致検出回路へ送出する切換回路と、該切換回路の出力/切換信号の制御や前記不一致検出回路の検出条件設定の制御を行う切換制御回路と、前記不一致検出回路から送られてきた外部端子の信号が不一致であるか否かの判定を行う不一致判定回路を有し、前記不一致判定回路は、前記信号が一致しなければ、前記遊技機制御用チップのCPUを停止させることを特徴とする。
請求項2に記載した発明は、外部端子の入出力を自らチェックする機能を持ったバス/信号線制御手段と、セキュリティ機能を有し、遊技機に組み込む遊技機制御用チップであって、前記バス/信号線制御手段は、制御信号の方向制御や駆動能力の強化をするI/Oバッファと、所定のデータ値や信号パターン等を設定する期待値設定回路と、外部端子から入力された信号と、前記期待値設定回路にて設定された所定のデータ値や信号パターン等の出力信号又はチップ内部の信号を外部端子へ出力する各制御信号とを比較し、不一致の検出を行う不一致検出回路と、前記外部端子へ出力する信号、又は前記期待値設定回路の出力信号のいずれかを選択して前記不一致検出回路へ送出する切換回路と、該切換回路の出力/切換信号の制御や前記不一致検出回路の検出条件設定の制御を行う切換制御回路と、前記不一致検出回路から送られてきた外部端子の信号が不一致であるか否かの判定を行う不一致判定回路を有し、前記不一致判定回路は、前記信号が一致しなければ、その検査対象である外部端子の情報を異常検出信号として外部へ知らせることを特徴とする。
【0006】
請求項3に記載した発明は、請求項1に記載した遊技機制御用チップであって、前記バス/信号線制御手段を構成するそれぞれの回路は、前記外部端子毎に設けられ、前記不一致検出回路からは当該外部端子に固有の不一致検出信号が出力されることを特徴とする。
請求項4に記載した発明は、請求項1に記載した遊技機制御用チップであって、前記不一致判定回路は、すべての外部端子について共通で一つ設けられ、判定結果が異常となったときには単一の異常検出信号を出力することを特徴とする。
請求項5に記載した発明は、請求項2に記載した遊技機制御用チップであって、前記バス/信号線制御手段を構成するそれぞれの回路は、前記外部端子毎に設けられ、前記不一致検出回路からは当該外部端子に固有の不一致検出信号が出力されることを特徴とする。
請求項6に記載した発明は、請求項2に記載した遊技機制御用チップであって、前記不一致判定回路は、すべての外部端子について共通で一つ設けられ、判定結果が異常となったときには単一の異常検出信号を出力することを特徴とする。
【0007】
【発明の実施の形態】
以下に本発明を図示された実施形態に従って詳細に説明する。
【0008】
<チップの形態の説明> 本発明に係る遊技機制御用チップは、遊技機内部の基板上に搭載される集積回路として構成される。チップ種別の分類として、開発用チップと量産用チップとがある。図1を参照しつつ、量産用チップと開発用チップとについて説明する。開発用チップは、セキュリティ判定機能を有しないチップであり、それ以外については量産用チップと同等の機能を有する。量産用チップは、内蔵された記憶手段に記憶されているプログラムが、第三者機関による試験に合格した適正なものであるか否かを判定するセキュリティ判定機能を有する。
更にまた、本発明に係る遊技機制御用チップは、n(nは2以上の自然数である。以下同様)レベルの認証方式を持った外部入出力手段を内蔵しており、検査装置、照合装置、またはホールコンピュータ等の外部装置(以下、外部装置と省略)を接続することにより、用途に合わせた認証レベルでのチップの真贋検査の実施、及びチップ内の情報(ID番号等)を読み出すことが可能である。
【0009】
<量産用チップの説明> 量産用チップは、ユーザが消去、再書き込みが不可能なユーザ用ROMを具備しており、図1(a)に示すように、セキュリティチェックの結果が不整合の場合はCPUを停止する。また、指定エリア外走行禁止機能により、設定されたアドレス範囲以外(指定エリア外を示すアドレス範囲である。)でのプログラム実行はできない。ここで、ユーザとは、本発明に係る遊技機制御用チップを遊技機に組み込んで製造・販売を行う遊技機メーカーを指す。
【0010】
<開発用チップの説明> 開発用チップは、ユーザが消去、再書き込みが可能なユーザ用ROMを具備しており、図1(b)に示すように、セキュリティチェックの結果に関係無くユーザモードに遷移する。また、指定エリア外走行禁止機能においても、設定可能なアドレス範囲(指定エリアを示すアドレス範囲である。)は制限が無いので、ユーザが自由に開発・デバッグが行えることを可能とする。
【0011】
<動作モードの説明> 動作モードとはCPU動作の制御やメモリマッピング、チップに内蔵された各種レジスタへのアクセス権等基本動作を制御するモードであり、セキュリティモードとユーザモードとプログラムモードがある。また、これらのモードとは別に、外部装置との間で通信を行う通信モードを具備する。
【0012】
<セキュリティモードの説明> ブート用記憶手段が実行され、各機能の環境設定やセキュリティチェックが行われるモードである。セキュリティモード中は、CPU動作時の内部バスが外部端子に出力されない。
【0013】
<セキュリティチェックの説明> ユーザプログラムの認証を行う機能である。システムリセット入力時に、ユーザプログラムを基に計算された認証コードが正しいか否かの再計算を行い,結果がNGの場合はCPUを停止する。認証コードは、ユーザ用記憶手段への書き込み時にユーザプログラムと共に書き込む。
【0014】
<ユーザモードの説明> セキュリティチェックを通過した正規のユーザプログラムが実行されるモードである。セキュリティモード中のセキュリティチェックでOKにならないとこのモードには遷移しない。ユーザモード中はCPU動作時の内部バスが外部端子に外部バスとして出力される。なお、ユーザモード中はブート用記憶手段にアクセスすることはできない。
【0015】
<プログラムモードの説明> CPUは動作せず、直接ユーザ用ROMにリード/ライトを行うモードである。システムリセット後、PRG端子の所定レベル(例えばハイレベル)により、このモードに遷移する。なお、量産用チップへの書き込みは一度だけ可能であり、開発用チップは消去や再書き込みが可能なものである。
【0016】
図2、図3を参照しつつ、遊技機制御用チップに内蔵された各機能ブロックについて説明する。図2、図3に示すc1は、中央処理装置(CPU)である。(以下、CPUと省略)
CPUは、各機能ブロック(以下、便宜上“デバイス”、“回路”と呼称する場合もある。)の制御や指令を行う。
【0017】
<タイマシステムの説明> 次に図2、図3に示すタイマシステムc2は、n個(例えば4個等)のnビット(例えば8、16ビット等)カウンタや各種制御レジスタを内蔵し、それぞれ独立したモードで動作が可能である。タイマシステムは、例えばモードとして大別してタイマモード、カウンタモード等があり、リアルタイム割込みの発生や時間計測を行うことを可能とする。上記これらの機能は、タイマシステム内の各種制御レジスタの設定により制御することができる。また、上記機能を実現する為のゲート信号またはトリガ信号の入力用であるタイマ入力バス、タイマシステムで生成された各種タイマ出力信号を外部へ出力する為のタイマ出力バスを具備する。
【0018】
<不正実行禁止手段の説明> 次に図2、図3に示す不正実行禁止手段c3は、所定の指定エリア内で遊技機メーカーが作成したユーザプログラムが正しく実行されているかどうか監視し、指定エリア以外でユーザプログラムが実行されるとリセットが発生するものである。例えばメモリ空間全体を64kバイトとした場合、指定エリア(ユーザプログラム実行可能なアドレス範囲)の設定において、その範囲の先頭アドレスをプログラムコードスタートアドレス(以下PCS)として0番地、終了アドレスをプログラムコードエンドアドレス(以下PCE)として1FFF(16進)番地とした場合、2000(16進)〜FFFF(16進)番地の範囲に不正プログラムを格納して実行しようとしても実行することはできない。すなわち、不正実行禁止手段とは指定エリア外での命令実行を禁止する機能であり、あらかじめ指定したアドレス範囲(指定エリア)外で命令が実行(オペコードフェッチ)されると,IAT(Illegal Address Trap)信号を発生する機能である。このIAT信号によりリセットが発生する。この指定エリアの情報は、ユーザプログラムと共にユーザ用ROMに書き込む。
【0019】
<暴走監視手段の説明> 次に図2、図3に示すc4は、暴走監視手段である。図6を参照しつつ、暴走監視手段c4の構成を更に詳しく説明する。暴走監視手段c4は、クロック選択手段c4a、nビットカウンタc4b、暴走監視制御手段c4c、動作モード制御手段c4d、制御ワード設定手段c4e、出力制御手段c4fにより構成される。
暴走監視手段c4は、ユーザモードに遷移する際に自動的に起動され、タイムアウト時間が経過すると、タイムアウト信号を発生させる。このタイムアウト信号を受け付けることによりユーザリセットを発生しユーザプログラムのリセットアドレス(例えば0番地等)からユーザプログラムを再実行させる。
また、動作モード制御手段c4d、制御ワード設定手段c4eの各種設定により、
(1)タイムアウト時間の設定・変更、
(2)カウントクリア&リスタート、
(3)動作許可/禁止、
等の設定を可能とする。
【0020】
<クロック選択手段の説明>クロック選択手段c4aは、クロック生成手段c9より送られてきたシステムクロックを含む各分周クロックCLKO/m・・・CLKO/mの内1本を選択してnビットカウンタc4bへ送出するものである。
【0021】
<nビットカウンタの説明> nビットカウンタc4bは、クロック選択手段c4aより送出された分周クロックをカウンタクロックとしてタイムアウト時間のカウントを行う。
【0022】
<暴走監視制御手段の説明> 暴走監視制御手段c4cは、タイムアウト時間の設定の為の制御、nビットカウンタへの動作禁止、クリア、リスタート等の制御を行う。
【0023】
<動作モード制御手段の説明> 動作モード制御手段c4dは、タイムアウト時間設定用のカウントクロックの選択、動作許可/動作禁止の制御を行い、またタイムアウト時間を変更することができる。なお、一度タイムアウト時間を変更すると、次のシステムリセットが発生するまで変更できないようにしても良い。
【0024】
<制御ワード設定手段の説明> 制御ワード設定手段c4eは、タイムアウト時間のクリア及びリスタート、動作禁止を設定する。例えば制御ワード設定手段c4eに制御ワード(例えばCC(16進))を書き込むことにより暴走監視手段が動作禁止になる。この設定は、例えばシステムリセット後1回のみ可能にしても良い。55(16進)→AA(16進)→33(16進)によりクリア&リスタート(再度カウント開始)することで、タイムアウト時間を延長することができる。なお、制御ワードは3バイト連続して書き込む必要は無い。
【0025】
<暴走監視手段の動作説明> 暴走監視手段c4は、ユーザモードに遷移することで自動起動される。タイムアウト時間は動作モード制御手段c4dによって設定され、デフォルト値は最長タイムアウト時間に設定されている。設定はシステムリセット後1回のみ可能とし、再設定はシステムリセットを無くして行うことができない。タイムアウトに達すると、出力制御手段c4fからタイムアウト信号を出力し、暴走監視手段c4の動作はそのまま継続される。
【0026】
<リセット/割込制御手段の説明> 次に図2、図3に示すリセット/割込制御手段c5について、図7〜図10をあわせて参照しつつ説明する。リセット/割込制御手段c5は、各種リセットと、外部からの割込み要求や内蔵の周辺回路(タイマシステム)からの割込み要求を制御する。図7はそのリセット/割込制御手段c5の内部ブロック図を示している。
【0027】
<システムリセットの説明> システムリセットは、XSRST端子に一定期間のロ−レベルを入力することにより発生するリセットである。外部入出力手段c14の一部の回路を除くCPUを含む内部のすべての回路が初期化され、PRG端子の入力レベルに応じて、セキュリティモードまたはプログラムモードに遷移する。セキュリティモードで異常がなければ、ユーザモードに遷移してユーザプログラムのリセットアドレス(例えば0番地)からユーザプログラムを実行する。XSRST端子から入力された信号は、ノイズフィルタc5aによってチャタリング等のノイズを除去した信号が延長回路c5cを介してCPUに入力され、同様にチップ外部の外部デバイスへのリセット信号としてXRSTO端子より外部へ出力される。図8は、そのXSRST端子に入力された信号がXRSTO端子より外部へ出力される関係をタイミングチャート例として示したものである。
【0028】
<ユーザリセットの説明> 次に、ユーザリセットについて説明する。ユーザリセットの要因としては、外部要因としてXURST端子によるユーザリセット要求、内部要因として不正実行禁止手段c3のIAT信号発生によるリセット要求、暴走監視手段c4のタイムアウト信号によるユーザリセット要求等がありえる。これらの要求によるユーザリセットが発生し、ユーザリセットを受け付けると、リセットアドレス(例えば0番地)よりユーザプログラムの実行を開始する。ユーザリセットでは、セキュリティモードまたはプログラムモードには遷移せずに、ユーザモードにとどまったままで、リセットが実行されるものである。また、システムリセットと同様に、XURST端子から入力された信号は、ノイズフィルタc5aによってチャタリング等のノイズを除去した信号が延長回路c5cを介してCPUに入力される。図9(a)は、そのXURST端子に入力された信号によるユーザリセットのタイミングチャートを例として示したものである。また、図9(b)は、内部要因によるユーザリセットのタイミングチャートを例として示したものである。
【0029】
<ノンマスカブル割込み(NMI)の説明> 次に、ノンマスカブル割込みについて説明する。ノンマスカブル割込み(NMI)は、CPUの割込み禁止状態でも無条件に受け付けられる割込みであり、すべての割込み要求に対して最優先で処理される。XNMI端子によるノンマスカブル割込みは、ノイズフィルタc5aを介してCPUに入力される。図10は、ノイズフィルタc5aを通過する前と通過後との関係を示すタイミングチャート例としたものである。XNMI信号が一定期間(ここでは4クロックの立ち上がりエッジを検出する間)ローレベルであるとき、ノイズフィルタc5aを通過した信号がNMI信号となりCPUに入力される。
【0030】
<マスカブル割込み(INT)の説明> マスカブル割込み(INT)は、ユーザプログラムにより割込み要求の受け付けを許可/禁止できる割込みであり、INT優先順位制御回路c5dによる多重割込みの実行が可能である。
【0031】
<外部マスカブル割込みの説明> 外部マスカブル割込みは、XINT端子に一定期間のロ−レベルを入力することにより発生し、XINT端子によるマスカブル割込みは、ノイズフィルタc5aを介してCPUに入力される。図10は、ノイズフィルタc5aを通過する前と通過後との関係を示すタイミングチャート例としたものである。XINT信号が一定期間(ここでは4クロックの立ち上がりエッジを検出する間)ローレベルであるとき、ノイズフィルタc5aを通過した信号がINT信号となりCPUに入力される。
【0032】
<内部マスカブル割込みの説明> 内部マスカブル割込みは、タイマシステムからの割込み要求信号により発生する。
【0033】
<デコード手段の説明> 次に図2、図3に示すデコード手段c6は、メモリマップドI/O方式、またはI/OマップドI/O方式によるチップ内部の各機能ブロックのデコードや外部デバイス用のデコード用信号であるチップセレクト信号のデコードを行い、チップセレクト信号のアドレス範囲を設定する。チップセレクト信号を例にすると、図4にメモリマップドI/O方式によるチップセレクト信号がFF00(16進)〜FF19(16進)にマッピングされ、図5(b)にI/OマップドI/O方式によるチップセレクト信号が00(16進)〜19(16進)にマッピングされていることを示している。なお、チップセレクト信号は複数本あるので、便宜上本明細書ではこれらを総称して外部デバイスデコード出力バスとしている。
【0034】
<入出力手段の説明> 次に図2、図3に示す入出力手段c7は、入出力ポートと外部デバイス用のデコード用信号であるチップセレクト信号の兼用機能を制御するもので、
(1)入出力制御手段c7a、
(2)機能選択手段c7b、
とからなる。更に入出力制御手段c7aは、
(a)パラレル入出力ポート、
(b)外部デバイスデコード、
との二つの機能を持つ。
なお、パラレル入出力ポートは、異なる任意のビット幅の入出力ポートを複数個内蔵しており、それぞれポートの入出力の設定が可能である。
機能選択手段c7bによりいずれか1つの機能を選択して外部との入出力を行う。これにより外部端子がパラレル入出力ポート、または外部デバイスデコードのいずれかの状態として機能する。
【0035】
<クロック生成手段の説明> 次に図2、図3に示すクロック生成手段c9は、クロック入力端子(図2のEX端子に該当)から入力されたクロックを任意の分周比(例えば2分周等)で分周し、CPUや内部の各回路に供給する回路である。また、生成されたクロックは、クロック出力端子(図2のCLKO端子に該当)から外部へ出力する。また、補助乱数発生手段r19へのクロックソース源(s3)として乱数発生装置c8へ供給する。
【0036】
<セキュリティ手段の説明> 次に図2、図3に示すセキュリティ手段c10は、図示しない
(1)認証チェック制御手段、
(2)不正実行禁止制御手段、
(3)モード制御手段、
(4)機能制御手段、
(5)記憶手段制御手段、
(6)通信フォーマット制御手段、
の6つの手段からなる。
【0037】
<認証チェック制御手段の説明> 認証チェック制御手段は、ユーザプログラム(UP)の認証を行う機能である。システムリセット入力時に、ユーザプログラムを基に計算された認証コードが正しいか否かの再計算を行い,結果がNGの場合はCPUを停止する制御を行う。
【0038】
<不正実行禁止制御手段の説明> 不正実行禁止制御手段は、指定エリア外での命令実行を禁止する機能を制御するものであり、
(a)不正実行禁止手段c3が不正検出を行った際の指定エリア外での命令実行禁止の制御、
(b)RAM(外部/内部両方)上でのプログラム実行禁止の制御、
(c)指定エリアでのプログラム実行監視の制御、
(d)リセット制御、
を行う。
【0039】
<モード制御手段の説明> モード制御手段は、
(a)プログラムモード、
(b)セキュリティモード、
(c)ユーザモード、
の三つのモードの制御を行う。
また、その他の制御として外部装置との通信を行う通信モードを制御する。
【0040】
<機能制御手段の説明> 機能制御手段は、
(a)バス・信号線制御、
(b)CPU停止制御、
(c)乱数故障診断機能制御、
(d)ユーザ用ROMの読み出し/書き込み、
の機能を制御する。
【0041】
<記憶手段制御手段の説明> 記憶手段制御手段は、
(a)デバイス切り離し、
(b)メモリバンク切り換え、
を行う。
【0042】
<通信フォーマット制御手段の説明> 通信フォーマット制御手段は、外部装置との間で通信を行う際の各種通信フォーマット(イニシャル通信、認証通信、試験通信、照合通信)を制御する。
【0043】
<記憶手段の説明> 次に図2、図3に示す記憶手段c11について、図4及び図5を参照しつつ説明する。図4は、チップ全体のメモリマップの具体例図を示し、図5はユーザ用ROM内のエリアの具体例図を示し、(a)はプログラム管理エリアの具体例図、(b)はI/OマップドI/O方式による内蔵レジスタや外部出力バスのデコードエリアの具体例図を示したものである。
【0044】
記憶手段c11は、ID格納手段c11a、ブート用記憶手段c11b、ユーザ用記憶手段c11cで構成される。
【0045】
<ID格納手段の説明> ID格納手段c11aには、
(a)試験年月日時刻、
(b)製造年月日時刻、
(c)製造場所、
(d)製造工場、
(e)製造ライン、
(f)製造ロット、
(g)製造番号、
(h)ユーザ管理番号、
(i)シリアル番号、
等の情報データのうちのいくつかをn種類の異なるID番号として格納することができ、このID番号が付与されることで量産(例えば1000万個等)や流通等の管理が可能になる。また、ID番号とは別に第三者やユーザが知りえないチップ製造者・販売者のみがチップを特定できる情報である秘密情報を格納している。秘密情報の具体例としては、資材管理上の詳細な情報(ウェハー管理番号等)や協力工場に関するコード番号等があり得る。
【0046】
<ブート用記憶手段の説明> ブート用記憶手段c11bは、
(a)ブート用ROM、
(b)ブート用RAM、
とにより構成され、(a)ブート用ROMには、
(イ)セキュリティチェックプログラム、
(ロ)故障診断プログラム、
(ハ)環境設定プログラム、
(ニ)認証/照合プログラム、
等が格納される。また、(b)ブート用RAMは、ブートプログラムのワークエリア(データエリア,スタックエリア等)として使用する。
【0047】
<ユーザ用記憶手段の説明> ユーザ用記憶手段c11cは、
(a)ユーザ用ROM、
(b)ユーザ用RAM、
により構成される。
【0048】
<ユーザ用ROMの説明> ユーザ用ROMは、ユーザが作成したプログラム(ユーザプログラム)を格納する。ユーザ用ROMには予め定めた指定エリアがあり、(イ)プログラムコード/データエリア及び(ロ)プログラム管理エリアの2つのエリアが割り付けられている。(イ)プログラムコード/データエリアは、ユーザプログラムを格納するエリアである。(ロ)プログラム管理エリアは、CPUがユーザプログラムを実行するのに必要な情報を格納するエリアであり、ユーザ側で値の設定を行う。ユーザ用RAMのサイズの選択(例えば256/512バイト)もこのエリアで行う。
【0049】
<プログラム管理エリアに設定するデータの説明> プログラム管理エリアに設定するデータには、図5に示すように
(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アドレスを設定する「ユーザが読み出しを行う為のユーザ指定アドレス(エリア)」(例として1FA0(16進)〜1FBF(16進)にマッピング)等がある。
【0050】
<ユーザ用RAMの説明> ユーザ用RAMは、ユーザプログラムのワークエリア(データエリア,スタックエリア等)として使用する。ユーザの設定により、RAMサイズの変更(例えば512/256バイトの切り換え等)が可能である。ユーザ用RAMにはバックアップ機能があり、バックアップ機能を使用する場合は、VBB端子とGND端子間に別電源を供給することにより、チップの電源(V)切断後も、RAM内のデータが保持(バックアップ)できる。
【0051】
<記憶監視手段の説明> 次に図2、図3に示す記憶監視手段c12は、記憶手段c11の読み出しや書き込みを監視し、セキュリティモード時に所定の記憶手段c11のアドレス範囲が監視範囲として設定される。
【0052】
<バス/信号線制御手段の説明> 次にバス/信号線制御手段c13(図2及び図3)について、図26及び図27を参照しつつ、さらに詳しく説明する。
バス/信号線制御手段c13は、チップの外部バスと内部バスとのインターフェース機能及びアドレスバス、データバス,及び各制御信号の方向制御や駆動能力を強化するバスインタフェースである。また、上記信号が入力される各端子の状態を監視(モニタ)する機能を具備する。
【0053】
<各端子の説明> アドレスバスは、メモリやI/Oデバイスとのデータ送受信のためのアドレスを指定する。データバスは、データ送受信を行う。XM1は、マシンサイクルを示す。XMREQは、メモリ空間へのリクエスト信号でありメモリのアクセス期間であることを示す。XIORQは、I/O空間へのリクエスト信号でありI/O空間のアクセス期間であることを示す。XRDは、リードサイクルであることを示す。XWRは、ライトサイクルであることを示す。XRFSHは、チップ外部のダイナミックメモリ等へのリフレッシュ信号である。XHALTは、CPUがHALT命令を実行している状態を示す信号で、ホールト状態中は命令を実行しない状態を保持し、このホールト状態の解除はリセット信号または割込みにより行われ、CPUの動作を再開する。
【0054】
バス/信号線制御手段c13は、I/Oバッファc13a、期待値設定回路c13b、切換回路c13c、切換制御回路c13d、不一致検出回路c13e、不一致判定回路c13fで構成される。
I/Oバッファc13aは、外部端子から入力された信号をチップ内部へ入力したり、チップ内部の信号を外部端子へ出力したりする各制御信号の方向制御や駆動能力を強化するものである。
期待値設定回路c13bは、所定のデータ値や信号パターン等を設定するものである。
切換回路c13cは、外部端子へ出力する信号、又は期待値設定回路c13bの出力信号のいずれかを選択して不一致検出回路c13eへ送出するものである。
切換制御回路c13dは、切換回路c13cの出力/切換信号の制御や不一致検出回路c13eの検出条件設定の制御を行うものである。
不一致検出回路c13eは、外部端子から入力された信号と、
(1)期待値設定回路c13bにて設定された所定のデータ値や信号パターン等の出力信号、または、(2)チップ内部の信号を外部端子へ出力したりする各制御信号、とを比較し、不一致の検出を行うものである。
不一致判定回路c13fは、不一致検出回路c13eから送られてきた外部端子の信号が不一致であるか否かの判定を行い、一致しなければ、CPUを停止させたり、その検査対象である外部端子の情報を異常検出信号として外部へ知らせることとなる。
図26は、本発明のバス/信号線制御手段c13の端子毎の不一致検出を行う第一実施例を示すブロック構成図である。この実施例では、上記バス/信号線制御手段c13を構成するそれぞれの回路が端子毎に設けられて、その結果、(例えば不一致検出回路1から外部端子1不一致信号が出力されるというように)それぞれの不一致検出回路からは当該外部端子に固有の不一致信号が出力される。
図27は、本発明のバス/信号線制御手段c13の複数端子を同時に不一致判定を行う第二実施例を示すブロック構成図である。この実施例では、不一致判定回路c13fはすべての端子について共通で一つ設けられており、判定結果が異常となったときには単一の異常検出信号を出力してその旨を外部へ知らせる。
【0055】
<乱数生成装置の説明> 次に図2、図3に示す乱数発生装置c8について図11から図19までを参照しつつ説明する。図11は、乱数発生の回路構成を示すブロック図である。更新周期設定データ保持回路r1は、ユーザが任意のインターバル周期で乱数更新を行う為のインターバル周期を指定する為の設定データを保持する回路であり、基準となるインターバル周期を指定する為の基準インターバル周期指定回路r1aと、その基準となるインターバル周期を基に実際の乱数更新を行う為のインターバル周期を指定する為の設定を行う定周期設定値格納回路r1bで構成されている。当該回路r1で指定されたデータは、更新周期設定回路r2へロードされる。
【0056】
更新周期設定回路r2は、定周期で乱数更新を行う為のインターバル周期を設定する回路であり、基準インターバル周期指定回路r1aで指定されたデータに対応した基準となるインターバル周期を生成する為の基準インターバル周期生成回路r2aと、当該回路r2aから供給された基準インターバル周期クロックを基に定周期設定値格納回路r1bで指定されたカウントデータ数を基に基準インターバル周期をカウントする為の基準インターバル周期カウント回路r2bと、定周期設定値格納回路r1bで指定されたカウントデータ数に達した場合にインターバル周期の更新・継続を指定する為のリロードタイミングを生成するリロードタイミング生成回路r2cで構成される。したがって、更新周期設定回路r2で設定されたインターバル周期が乱数更新トリガ選択回路r6へ供給される。
【0057】
例えばシステムクロックの分周波が基準となるインターバル周期(仮にIとする)だとすると、基準インターバル周期指定回路r1aで指定したデータ(例えば128分周を指定するデータ)に基づき分周したクロックが基準インターバル周期となる。また、定周期設定値格納回路r1bの指定できる設定範囲が仮に8ビットだとすると、実際の定周期で乱数更新を行う為の設定できるインターバル周期は、「128×システムクロック×1から128×システムクロック×256迄」のインターバル周期を設定することができる。また、定周期設定値格納回路r1bで指定した設定値が仮に「5」だとすると、この設定値が同様にリロードタイミング生成回路r2cにロードされ、当該回路にて「128×システムクロック×5」に達した場合再度インターバル周期の更新・継続を行う為のリロードタイミングを基準インターバル周期カウント回路r2bへ供給することになる。
【0058】
ソフトウェア更新トリガ発生回路r3は、CPUからの命令により所定の条件を組み合わせたデータ(アドレス、所定のデータをデコードして発生したデータ等)を当該回路へライトアクセスを行うことによってソフトウェアトリガ信号を発生する。
【0059】
動作開始指示回路r4は、乱数更新の動作の停止、再始動、継続動作等の指定を行うものである。
【0060】
乱数更新トリガ選択情報保持回路r5は、乱数値の更新において、更新周期設定回路r2で発生された定周期で乱数更新を行う為のインターバル周期を使用する自動更新方式か、あるいはソフトウェア更新トリガ発生回路r3で発生されたソフトウェアによるトリガ信号を使用する手動更新方式を使用するかのいずれかの方式の選択を行うものである。
【0061】
乱数更新トリガ選択回路r6は、更新周期設定回路r2で発生されたインターバル周期クロック、またはソフトウェア更新トリガ発生回路r3で生成されたソフトウェアによるトリガ信号のいずれかの内一つを選択して更新制御回路r7へ供給する。
【0062】
更新制御回路r7は、乱数更新の動作の停止、再始動、継続動作等の制御を行う。
【0063】
乱数発生回路r8は、所定の設定によりそれぞれ異なる乱数系列の発生を行う為のn次の生成多項式、又はnビットカウンタが複数内蔵されている。
【0064】
ビットスクランブル設定回路r9は、乱数発生回路r8から出力される乱数データのビットの入れ換えや転置を行うものであり、ビットスクランブル要求回路r9a、ビットスクランブルキー生成回路r9b、ビットスクランブル回路r9cで構成される。ビットスクランブル要求回路r9aは、乱数更新トリガ選択回路r6により選択された更新手段により更新されたタイミングにより乱数発生回路r8から出力される乱数データに対しスクランブルをかける要求を指定する回路である。ビットスクランブルキー生成回路r9bは、補助乱数発生手段r19から発生されるビットスクランブル用キー生成の為の補助乱数やビットスクランブル要求回路r9aからのデータ値を基に乱数データの配置・転置を行う為のビットスクランブルテーブルの選択を行う回路である。ビットスクランブル回路r9cは、ビットスクランブルキー生成回路r9bから指定されたキーデータにより選択されたビットスクランブルテーブルを基に乱数データのビットの配置・転置を行う回路である。なお、スクランブルをかけるか否かの選択はビットスクランブル要求回路r9aによりユーザが自由に設定できるが、ビットスクランブル用キーの変更は、乱数発生回路r8より出力される乱数一巡終了信号S1により行われる。ビットスクランブル要求回路9aより出力されるビットスクランブル要求信号S2があっても乱数一巡終了信号S1が無いと、ビットスクランブル用キーの変更は行われない。このことにより乱数一巡毎の確率が一定となる。
【0065】
乱数最大値格納回路r10は、ユーザが任意に設定した乱数周期の最大値を格納する為の回路である。例えば乱数発生範囲が1から4095まであるとした場合、ユーザにとって1から36までの乱数のみ必要な場合、当該回路r10に最大値として36を設定すれば1から36までの乱数を得ることが可能である。
【0066】
乱数最大値比較回路r11は、ユーザが任意に設定した乱数周期の最大値と乱数発生回路r8が発生した乱数値をビットスクランブル回路r9cがビットスクランブルを行った出力値を比較し、出力値が最大値より大きい場合には乱数発生回路r8に対し次の乱数発生を指示する。最大値以下の場合には乱数値保持回路r12へ格納する。
【0067】
乱数値保持回路r12は、ユーザが任意に設定した乱数周期の最大値以下の場合の時のスクランブルされた乱数データを保持するものである。すなわち最大周期に達するまでの乱数データを保持する回路である。
【0068】
乱数値要求回路r13は、ユーザが乱数データを読み出す為の要求を行うものであり、外部トリガ入力による要求やその要求があった場合の情報を割込信号として外部へ出力することも可能である。
【0069】
乱数値読出回路r14は、ユーザが乱数データを読み出す為の回路である。
【0070】
ROM内プログラム管理エリアr15は、乱数発生装置の動作指定、制御等を行う為にユーザが設定する動作環境設定の指定を行うエリアであり、乱数系列を発生する為の最初のスタート値である乱数初期値選択定数r15aと、ある所定のRAMアドレスに格納されたデータを発生する乱数系列の初期値として使用したい場合、そのデータを乱数初期値選択回路r17へ送出することを目的とするRAMアドレス指定r15bとで構成される。なお、初期化プログラムで乱数初期値をRAM値と選択した場合RAMアドレス指定で示されたアドレスのRAM値を乱数初期値選択回路r17へ格納する。
【0071】
ソフトウェア操作r16は、乱数の更新処理や所定の初期値をロードする為の制御を行う為の操作を指しており、乱数発生装置自身が持つ値である固定値r16a、乱数発生装置に割り付けられた自身を認識する為の固有の番号であるID番号r16b、RAMアドレス指定r15bで指定された値であるRAM値r16c、RAM内の全アドレスのデータを基に加算・減算・乗算・除算等の演算処理した値であるRAM演算値r16d、プログラムの制御用のデータエリアであるRAMr16e、で構成される。
【0072】
なお、ID番号r16bは、前述したID格納手段c11aに格納されたチップのID番号と同様のものである。前述したチップのIDがチップ自身を個別に識別するものであって、乱数発生装置のID番号は、乱数の初期値をチップ個別に設定するものである。したがって、両者の違いは仕様的な相違のみであり、実際の両者のID番号は、異なっても良いしまた同一であっても何等問題では無い。したがって、段落番号0045で示した(a)〜(i)の情報データのいくつかを乱数初期値用のID番号とすることが可能である。乱数初期値選択回路r17は、乱数初期値として固定値r16a、ID番号r16b、RAM値r16c、RAM演算値r16dのいずれかの内1つを選択して乱数発生回路r8へ初期値をロードする。
【0073】
乱数初期値格納回路r18は、乱数初期値選択回路r17により選択された初期値又は補助乱数発生手段r19にて発生された乱数を初期値として格納する為の回路である。 乱数初期値は乱数発生回路r8の発生する乱数値が一巡する毎に補助乱数発生手段r19より乱数初期値格納回路r18により更新できる。
【0074】
補助乱数発生手段r19は、本乱数発生装置とは別の手段にて乱数を発生させたものである。
【0075】
次に図13を参照しつつ乱数発生について説明する。図13は補助乱数発生手段r19の概要を示すブロック図であり、
(1)は外部トリガ入力バスが無い場合(図2参照)、
(2)は外部トリガ入力バスがある場合(図3参照)
について示している。発生手段として
(a)CPUの命令制御による乱数発生、
(b)熱雑音による乱数発生、
(c)別クロックによる乱数発生、
(d)チップ外部からのトリガ入力、
による乱数発生の4つの場合を含む。
【0076】
(a)CPUの命令制御による乱数発生は、CPUが行った命令(命令実行数カウント回路r21にて保持される)の情報等をカウントしたデータを乱数とするものである。
【0077】
(b)熱雑音による乱数発生は、抵抗体やダイオード等から発生する熱雑音等のノイズ成分を乱数とするもので、これら熱雑音発生体を内蔵した熱雑音発生回路r22から発生するアナログのノイズ成分をA/D変換回路r23にてデジタルデータに変換したものを乱数とするものである。
【0078】
(c)別クロックによる乱数発生は、本乱数発生装置で使用するクロックとは別のクロックで乱数を生成するものである。
【0079】
(d)チップ外部からのトリガ入力による乱数発生は、ユーザが任意に設定したトリガ入力で乱数を生成するものである。トリガ入力バスから入力されたトリガ信号は、外部トリガ制御手段r25に供給され、当該手段r25は入力された各トリガ信号の選定やイネーブル・ディセーブル等の制御等を行う。
【0080】
これら上記(a)、(b)、(c)、(d)の方法にて生成された乱数は乱数初期値としてビットスクランブルキー生成回路r9b、または乱数初期値格納回路r18へ供給されることとなる。供給の方法としては上記(a)、(b)、(c)、(d)を適宜組み合わせたものとなる。
【0081】
上記(c)において、カウンタ回路r24に供給するクロックとして、
(1)の外部トリガ入力バスが無い場合、各機能ブロックに供給するクロックとは異なる分周比率のクロックソース源(s3)がクロック生成手段c9より供給され、
(2)の外部トリガ入力バスがある場合、EX端子とは別のクロックがOSC端子より供給される。供給するクロックとして所定のインターバル周期との同期を避ける為に、例えばEX端子に供給される周波数(例えば12MHzとする。)とは別の異なる周波数(例えば11MHzとする。)を供給するようにしても良いことはいうまでもない。
【0082】
次に図14を参照しつつビットスクランブルテーブルについて説明する。図14は乱数発生装置のビットスクランブル設定回路r9の具体的な説明図であり、ビットスクランブルテーブルとはビットの入れ換えのパターンを示すビットスクランブルテーブル(以下便宜上、「変換テーブル」、または「変換パターン」と略称する場合がある)であり、この変換テーブルにもとづいてビットの配置・転置位置が決定する。例えばデータ長を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通りの変換パターンが存在することになる。この様子を図式イメージ化したものが図14(a)である。
【0083】
しかし、上記変換パターンをソフトウェアでは無くハードウェアにて実現しようとすると回路規模が大きくなりゲート数の増大を招いてしまう。
【0084】
そこでその変換テーブルの数を減少させることによって回路規模を小さくしゲート数の増大を招くこと無く256通りの変換パターンを確保することが可能にするのがビットスクランブル設定回路r9の特徴であり、その原理を図式イメージ化したものが図14(b)である。以下にその原理の説明を行うが、便宜上同様にデータ長は8ビットとする。
【0085】
ビットスクランブルキー発生回路r9bのKEY_A(4ビット)によって最初に16通りの変換テーブルを発生する。すなわちこの最初の16通りの変換パターンがそれぞれ個別に元のパターンとなる。(仮にO1〜O16とする)
【0086】
次に上記16通りの元のパターンに対しKEY_B(2ビット)にてそれぞれ個別に更にパターンの変換を行う。すなわち
(O1×4通り)から(O16×4通り)迄の加算値となるので合計実質上64通りの変換パターンを実現したことになる。したがって、上記同様64通りの変換パターンがそれぞれ個別に元のパターンとなる。(仮にOH1〜OH4とする)
【0087】
次に上記同様に64通りのパターンに対しKEY_C(2ビット)にてそれぞれ個別に更にパターンの変換を行う。すなわち(OH1×4通り)から(OH4×4通り)迄の加算値となるので最終的に合計した結果、実質上の変換パターンは256通り実現したことになる。
【0088】
したがって本来256通りの変換テーブルが必要だったものが、上記の方法により24通りの変換テーブルを用意するだけで、実質上256通りの変換パターンを実現させたことになり回路規模が小さくなる。
【0089】
また、上記方法の変換パターンのロジック回路はシフトレジスタを用いること無くゲート回路のみで設計できる為、次の変換パターンを交換する処理スピードは遊技機の動作するシステムクロックの1周期分も要しない。
【0090】
図15は更新周期設定データ保持回路r1と更新周期設定回路r2の内部構成を示すブロック図である。
【0091】
次に乱数発生装置の動作について図16に図示された概要フローに従い順に説明する。図16は乱数発生装置が所望の動作を行う為の環境設定の設定を行う初期化ルーチン処理を示すフローチャートである。遊技機全体を初期化するシステムリセットが入力されると最初に使用する乱数初期値として
(1)乱数発生装置の固定値、
(2)乱数発生装置のID番号、
(3)RAM値、
(4)RAM演算値、
の内、何を使用するかの選定及びその他乱数発生装置の内部回路等の初期化処理の環境設定終了後、ユーザが使用できるユーザモードに遷移しユーザリセット待ちの状態となる。なお、ユーザリセットでは上記処理の初期化は行なわれない。
【0092】
次に図17の概要フローを参照しつつ説明する。図17は乱数発生装置が図16による初期化処理終了後ユーザが自由に乱数を読み出す為の動作設定処理を示すフローチャートである。ユーザが接続した各周辺装置の初期化及びユーザが作成した遊技制御プログラムの先頭番地に戻る為のユーザリセットが入力されると、インターバル動作の為の定周期が起動される。定周期による更新又は手動更新(ソフトウェアによる更新)の内いずれを使用するかの更新トリガ条件の設定が行われ、手動更新が設定された場合ソフトウェア更新トリガによる乱数更新を行うことになる。次に遊技機のスタートセンサ入力等の乱数読み込みタイミングかの判断が行われソフトウェアによる取込みトリガを使用する場合乱数値要求回路をアクセスすることで乱数値保持回路に保持された乱数値が取り込まれ乱数値読出回路へロードされる。後は読み出した乱数を基にユーザが抽選処理等のアプリケーション操作を行うことになる。
【0093】
次に図18の概要フローを参照しつつ説明する。図18は乱数発生装置の乱数更新及び乱数読出処理のフローチャートの一例を示したもので、(a)は自動更新(定周期)及び手動更新(ソフトウェア)による乱数更新処理、(b)は外部トリガ及びソフトウェアによる取込みトリガによる乱数読出処理を示したフローである。
【0094】
乱数の更新が行われるとビットスクランブルキーデータの示すビットスクランブルテーブルにより乱数値のビットスクランブル処理を行い、乱数値が最大値以内の場合乱数値を乱数値保持回路へ格納し、最大値を超えた場合乱数値の再更新を行う。次に乱数の発生が一巡したか否かの判断が行われ、一巡した場合にビットスクランブルの変更要求は有るか否かの判断が行われ、要求があった場合ビットスクランブルキーデータの更新処理を行う。
【0095】
なお、乱数値の取込とは発生した乱数を乱数保持回路r12からユーザがアクセス可能な乱数値読出回路r14に対して送るか否かの処理のことを指す。定周期による乱数更新トリガを使用した場合乱数値の取込は自動的に行われる。この乱数値の取込処理を行うか否かの選定を行うことでユーザが
(1)更新周期設定回路によって自動的に連続して発生された乱数値を使用するか
(2)任意の時点で更新して読み出した乱数値を使用するかの遊技性の趣向を選定することができる。
【0096】
したがって、ユーザが実際に乱数の取得を行うには乱数値要求回路r13にアクセスすることでその時点の本乱数発生装置で発生されている乱数値を取得することができる。
【0097】
また、ユーザリセットの入力毎に上記動作指定条件の設定をユーザが自由に変更できるが、
(1)最大値設定、
(2)更新トリガ条件設定、
は1度設定を行うと変更することはできない。
【0098】
次に図3について説明する。図3は、実施形態を示す図2の構成とほぼ同じであるが、図2では、乱数発生装置c8に対してクロック生成手段c9から専用の信号(s3)が入力されているのに対し、図3の構成では、乱数発生装置c8に対しチップ外部からトリガ信号を取り入れる為の入トリガ入力バスと、EX端子とは別に異なるクロックを供給する為のOSC端子を有しており、乱数更新トリガ、乱数要求トリガ、補助乱数要求トリガ等を外部から取り入れることを可能とするものである。
【0099】
次に図12について説明する。図12は、図11の構成とほぼ同じであるが、図12の構成では、更に外部出力制御手段r20を設け、乱数値保持回路r12から出力される乱数データをソフトウェア操作によるスイッチにより外部入出力手段c14へ送出する実施形態を示した乱数発生の回路構成を示すブロック図である。ソフトウェア操作によるスイッチとは、ユーザではアクセスや操作ができないものであり、例えば所定のアルゴリズムによりコマンドや制御シーケンスを暗号化処理を施した信号が外部入出力手段c14へ入力され、その信号をCPUが認識した際に起動するものである。このスイッチが起動されると、乱数値保持回路r12の乱数データがリアルタイムで入賞状態やチップの遊技状態に関わらず、外部入出力手段c14へ送出されることになる。すなわち、発生した全ての乱数データが出力されることになり、第三者機関での出現乱数の一様性の検査が可能となる。
【0100】
なお、乱数値は通常、乱数が必要なタイミングで適時に読み出されるため、乱数更新内容や乱数列は外部バス上には出力されない。しかし全ての乱数値をデータバス上に出力させて検査を行う必要が生じた場合は、ソフトウェア更新トリガ使用時に毎回、乱数値読出回路14の乱数データをCPUが読み出せば全ての乱数値がデータバスへ出力させることが可能となる。図19にその入賞状態に関わらない乱数発生装置の乱数読出処理及び乱数出力処理のフローチャートを示している。
【0101】
また、乱数最大値比較回路r11から出力される乱数は、データバス上に直結されていない為、上記やソフトウェア乱数のように更新の度に乱数データがデータバス上に乗ることは無い。すなわち、CPUのリード命令やリードサイクルに関わらず、乱数発生装置内のバス上で自動的に更新制御が行われる。したがって、この乱数の更新タイミングと乱数列の並び(乱数列を生成する数式)は、不正者に予測することはできない。
【0102】
<外部入出力手段の説明> 次に図2、図3に示す外部入出力手段c14について説明する。外部入出力手段c14は、外部装置と本チップとを接続し、本チップの真贋を検査する為のものである。nレベルの認証通信方式を可能にし、各レベルの認証通信が確立後、照合通信方式に遷移し、チップ内部の情報を外部へ出力したり、チップの遊技状態に関わらず、認証、照合、検査の制御を行う。また、認証通信中にやりとりされる認証データ、及び照合通信中のデータは全て暗号化処理が施されており、乱数を基数にした暗号通信を行い、通信で使用されるデータ、暗号や復号に用いられる認証キー等は、毎回通信を行うごとに異なることで、不正者への解読を困難にする。また、試験通信機能がある。外部入出力手段c14は、SC端子及びBRC端子を監視しており、BRC端子へクロック等の信号が供給されると外部装置との認証待ち状態となり、SC端子から所定の信号を受け取ると、その受け取った信号に対する認証制御を行う。
【0103】
次に、図20、図21、図22、図23、図24、及び図25を参照しつつ、遊技機制御用チップと、外部装置との通信の内容及び方法の関係について説明する。
【0104】
図20は、認証方式/照合方式に関わる概念フローチャートである。ここで、外部装置の中で検査装置、照合装置と呼ばれる装置は、第三者機関がチップの検査、真贋チェック等を行う目的で、遊技機制御用チップのSC端子及びBRC端子(図2、図3に示す外部入出力手段c14の端子)を介して接続し、通信を実行する装置をいう。外部装置による認証又は照合処理は、通信開始の初期化要求から始まり、認証方式/照合方式の要求をした上で、それぞれのレベルの認証又は照合の通信を開始する。チップが外部装置より通信開始の初期化要求のコマンドを受け取ると、チップは初期化(イニシャル通信)を行い、認証通信に備え、認証方式/照合方式の要求を行い、その要求待ち状態となる。外部装置より認証方式/照合方式の要求を受けると、チップは認証方式を識別し、要求に応じた認証シーケンスで通信を開始する。レベル1、レベル2、・・・、レベルnとレベルが高くなるごとに、より深いレベルの認証又は照合がなされる。低いレベルの認証又は照合では、その内容に制限が加わることとなる。それぞれのレベルの認証又は照合の通信を開始した後、そのレベルの認証又は照合を実施するか否かを判定する。各レベルにおける認証/照合判定がNGだった場合は、外部装置に対し初期化要求を行うが、OKの場合は各認証レベル/照合レベル用に用意された照合通信に遷移することとなる。
【0105】
図21は、外部装置との通信の概要シーケンスを示したものである。TDTY検査に始まり、BRC端子へ入力するクロックの検査、BRC端子へ入力されたクロックの検出を経て、外部装置との通信が開始される。外部装置とチップとの間で通信が開始されると、まず、イニシャル通信を実行する。そして、イニシャル通信を終えてから認証通信又は試験通信を実行する。認証通信においては、各それぞれのレベルにおける認証通信を終えると、照合通信を実行することとなる。
【0106】
以下、通信の概要シーケンスの内容について詳細に説明する。
【0107】
<TDTY検査の説明> 最初にシステムリセット解除後、セキュリティモードにおけるCPUのオペコードフェッチをトリガとした自己端子折り返し検査をSC端子にて行う(以下「TDTY検査」と称する)。
<BRC端子へ入力するクロックの検査> 次にTDTY検査がOKとなると、BRC端子より入力される通信用クロックの入力条件を監視しその検査を行う。
【0108】
<BRC端子へ入力されたクロックの検出の説明> 次にBRC端子へ入力されたクロックを検出し、入力条件が満たされた場合のみクロック入力を許可する。入力されたクロックは図示しない保護回路を経て、イニシャル通信の待ち受け状態となる。
【0109】
<イニシャル通信の説明> 次に外部装置よりイニシャル通信の要求を受信すると、初期化、及びクロックの同期を行う。またどの認証レベルで認証を実施するかの判定を行い、判定後認証通信へと遷移する。また、同様に試験通信の要求を受信すると、データ折り返し試験を行う為の試験通信へと遷移する。
イニシャル通信の内容として
(1)通信要求
外部装置から送られる通信要求情報にしたがって、チップはイニシャル後の通信の内容を決定する。
(2)認証通信要求:認証レベル1〜nの要求
(3)試験通信要求:
(4)外部入出力手段c14へのリセット要求:再度イニシャル通信待ち受け状態に初期化する。認証通信中、照合通信中であってもこのブロックリセット要求を受信した場合は直ちに外部入出力手段c14の特定された機能ブロックの初期化を行い、イニシャル通信待ち受けとなる。イニシャル通信が正常に終了すると、チップは認証通信待ち受け状態へと遷移する。
【0110】
<認証通信の説明> nレベルの認証レベルによりチップの真偽を検査する。認証後、照合通信へと遷移する。例えばレベル認証の例として
(1)レベル1認証(nとする)は、外部装置との真贋判定は、セキュリティレベル1において1回のみ実施する。
(2)レベル2認証(nとする)は、外部装置との真贋判定は、セキュリティレベル2においてm回実施する。(m≧1、但しn≧n
(3)レベル3認証(nとする)は、外部装置との真贋判定は、セキュリティレベル3においてm回実施する。(m≧2、但しn≧n
(4)レベル4認証(nとする)は、外部装置との真贋判定は、セキュリティレベル4においてm回実施する。(m≧2、但しn≧n
(5)レベル5認証(nとする)は、外部装置との真贋判定は、セキュリティレベル5においてm回実施する。(m≧2、但しn≧n
(6)レベルn認証(nとする)は、外部装置との真贋判定は、セキュリティレベルnにおいてm回実施する。(m≧2、但しn≧n
のようにすることができる。なお、数字が大きくなるほど、セキュリティ強度が大きくなる。また、それぞれのセキュリティレベルにおいて、異なる認証コードを使用するものとする。また、実施回数においても、それぞれの認証レベルにおいて、目的・用途に応じて適宜加減する。なお、認証レベルが低い場合は解析の糸口を与えないよう実施回数が少ない方が好ましいと考えられる。
【0111】
認証通信は、外部装置とチップ間の相互認証であるため、お互いに相手の真贋に対して判定結果を所有している。認証判定がNG時は照合通信に遷移しないが、OKであった場合は外部装置が認証OKとなったことをチップ側に通知する。また、チップ側の認証判定がOKであれば照合通信にそのまま遷移することが可能となる。
なお、認証レベルによって任意の有効データバイト数を与え、外部通信用乱数発生手段c14cより得た乱数値の位置情報にしたがい、送信データの並べ替えを行ってから外部装置側へ送出するものとする。
【0112】
<照合通信の説明> 認証通信を経て、認証判定がOKとなった場合は照合通信に遷移する。各認証レベルに応じて各種コマンドを外部装置より受信し、コマンドに対応したチップ内の情報を返送することが可能となる。
【0113】
図22は、外部入出力手段(図2、図3に示すc14)の詳細な構成例を示すブロック図である。本チップは、前述したように、BRC端子へクロック等の信号が供給されている場合外部装置との認証待ち状態となり、SC端子から所定の信号を受け取ると、その受け取った信号に対する認証制御を行うが、その際の重要な役割を果たすのが外部入出力手段c14である。
【0114】
外部入出力手段c14は、送信部c14a、受信部c14b、外部通信用乱数発生手段c14c、チップ内部データ用暗号手段c14d、チップ内部データ用復号手段c14e、データ制御手段c14f、通信制御手段c14gからなる。そして、外部入出力手段c14は、通信に必要な情報を制御したり、チップ内部データの暗号/復号等のハードウェア演算処理、通信ステータス管理、認証コマンド解析・実行等を行う。
【0115】
これらの手段のうち、CPUにつながるBUS1(システムバス)につながるのは、データ制御手段c14f及び通信制御手段c14gである。BUS2は、システムバスとは独立した外部入出力手段c14内の固有のハードウェアバスであって、送信部c14a、受信部c14b、外部通信用乱数発生手段c14c、チップ内部データ用暗号手段c14d、チップ内部データ用復号手段c14e、データ制御手段c14f、通信制御手段c14gのすべてがこのBUS2につながっている。
【0116】
<送信部の説明> 外部入出力手段c14の送信部c14aの内部を更に詳しく見ると、
(1)P/S(パラレル/シリアル)変換手段、
(2)送信タイミング制御手段、
(3)スクランブル手段、
(4)外部通信用暗号手段、
(5)多重化手段、
(6)フレーム制御手段、
(7)TDTY検査手段、
で構成される。送信部は、外部装置へデータを送信するブロックである。
【0117】
<P/S変換手段の説明> P/S変換手段は、データ制御手段c14fからBUS2を介して送られてきたパラレルデータ信号をシリアルデータ信号に変換する。
【0118】
<送信タイミング制御手段の説明> 送信タイミング制御手段は、送信の開始要求を受けて、P/S変換手段にてチップ内部の暗号化されたデータをパラレルデータからシリアルデータに変換するまでのタイミングの制御、及びフレーム制御のタイミングを制御する。
【0119】
<スクランブル手段の説明> スクランブル手段は、P/S変換手段にてシリアルデータに変換されたチップ内部の暗号化されたデータに対しスクランブル処理を施すものである。後述するスクランブル解除手段とあいまって、暗号通信の秘匿性を高める役割を果たす。
【0120】
<外部通信用暗号手段の説明> 外部通信用暗号手段は、送信する前のチップ内部のデータに対し所定のアルゴリズムによる暗号を施すものである。
【0121】
<多重化手段の説明> 多重化手段は、先頭コードの異なる個々のフレーム長に対し、多重化処理を行うものである。
【0122】
<フレーム制御手段の説明> フレーム制御手段は、何種類かの先頭コードの異なるフレームを制御するものである。
【0123】
<TDTY検査手段の説明> TDTY検査はSC端子より所定のパターン(例えば"1010"等)を送出し、折り返されたパターンを監視することによって、SC端子破壊による検査を行うものである。TDTY検査は外部システムリセット解除後(セキュリティモード)にCPUより出力されるオペコードフェッチサイクルをトリガとして行われる。TDTY検査が正常に終了した場合は所定のパターン(例えば"1010"等)は一回だけの送出で終了するが、折り返されたデータがNGであった場合は、n回(例えば最大5回)のリトライが行われる。n回の検査を行ってもNGであった場合はTDTYO信号を発生しCPUがリセットされる。TDTY検査終了後はBRCクロック端子の入力を開放し、外部装置から通信用クロック入力を許可する。なお、検査結果はNGであっても通信用クロックの入力は許可するものとする。
【0124】
前述のP/S変換手段によりシリアル変換された信号は、スクランブルをかけられたのち、外部通信用暗号手段により暗号化されて、多重化手段により多重化されてSC端子から出力されるが、その際に、フレーム制御手段により、フレーム化がされることとなる。
【0125】
<受信部の説明> 外部入出力手段c14の受信部c14bの内部を更に詳しく見ると、
(1)パルス検出手段、
(2)通信クロック生成手段、
(3)クロック断検出手段、
(4)ハードウェアリセット手段、
(5)外部通信用復号手段、
(6)受信タイミング制御手段、
(7)スクランブル解除手段、
(8)S/P変換手段、
(9)フレーム検出手段、
(10)通信エラー検出手段、
で構成される。受信部は、外部装置からのデータを受信するブロックである。
【0126】
<パルス検出手段の説明> パルス検出手段は、SC端子から入力された信号のスタートビット、ストップビット、先頭コード等のパルスの検出を行うものである。
【0127】
<通信クロック生成手段の説明> 通信クロックはBRC端子より入力されたクロックの分周を行い、通信を行う上でのクロックを生成する。リセット後は、通信開始時のイニシャルパルスにより、受信データとの同期処理を行う。位相合わせのパルスはBRCクロックに同期する。
【0128】
<クロック断検出手段の説明> クロック断検出手段は、外部装置から供給される通信クロックが供給されているか否かの検出を行う。外部装置との通信は、外部装置よりBRC端子へのクロック供給が行われることで動作を開始する為、外部装置が接続されない限りBRC端子はレベル固定(例えば"H"レベル固定)であり、クロック断と認識されディセーブル状態となっている。外部装置が接続された場合はBRC端子より通信クロックが供給され、ある検出条件を満たした時点でクロック断と認識されたディセーブル状態を解除し、通信可能な状態とする。
【0129】
<ハードウェアリセット手段の説明> ハードウェアリセット手段は、ユーザモードに影響を与えないように、通信エラーからのリカバリ復帰等の初期化処理を行う際に、外部入出力手段c14の各ブロックをリセットするものである。なお、外部入出力手段c14の送信部のP/S変換手段、送信タイミング制御手段、スクランブル手段、外部通信用暗号手段、多重化手段、フレーム制御手段、TDTY検査手段、受信部のパルス検出手段、通信クロック生成手段、クロック断手段、外部通信用復号手段、受信タイミング制御手段、スクランブル解除手段、S/P変換手段、フレーム検出手段、通信エラー検出手段、及び通信制御手段の各ブロックがリセットされ、外部通信用乱数発生手段、チップ内部データ用暗号手段、チップ内部データ用復号手段、データ制御手段の各ブロックはリセットされない。
【0130】
<外部通信用復号手段の説明> 外部通信用復号手段は、外部装置から送られてきた所定のアルゴリズムにて暗号化されたデータの復号処理を施すものである。
【0131】
<受信タイミング制御手段の説明> 受信タイミング制御手段は、受信の開始要求を受けて、S/P変換手段にて外部装置から送られた復号化したデータをシリアルデータからパラレルデータに変換するまでのタイミングの制御を、フレーム検出手段からの信号を基に制御を行うものである。
【0132】
<スクランブル解除手段の説明> スクランブル解除手段は、外部装置から送られた復号化したデータを更に予めスクランブル処理を施されたデータに対しスクランブル解除処理を施すものである。
【0133】
<S/P変換手段の説明> S/P変換手段は、シリアルデータをパラレルデータに変換する。
【0134】
<フレーム検出手段の説明> フレーム検出手段は、各通信によってフレーム長が異なるものを検出する。このフレーム長によって通信内容(認証レベル)が決定される。
【0135】
<通信エラー検出手段の説明> 通信エラー検出手段は、認証検査を行う際の正確なデータの受け渡しを行なう為の通信上の誤りを検出し、誤動作による内部情報の漏洩とならないよう以下の通信エラーの検出を行う。
【0136】
<通信エラー内容の説明> 通信エラーは、具体的には、次に掲げる4つのエラーがある。
(1)クロックエラー:これはBRCクロックが断状態時に発生するエラーである。エラーが発生している間は、外部入出力手段はすべてディセーブル状態となる。
(2)通信フォーマットエラー:通信フォーマット上におけるエラーである。
(3)照合通信時のコマンドエラー:照合通信に遷移すると、外部装置からコマンドが送信されるようになる。あらかじめ決められたコマンド以外のコードを受信した場合は全てコマンドエラーとしての処理を行う。コマンドエラーが発生した場合時の処理としては、外部装置に送信する。
(4)ユーザモード中の照合通信エラー:ユーザモード中に照合通信が行われた場合は、CPUへのリセットは禁止のため、ユーザモード中の照合通信においては、外部装置からコマンドを受信した場合、ユーザモード中であることを知らせるコマンドを外部装置に送信し、CPUへのリセットが不可能なことを通知し、外部入出力手段c14のハードウェアによる通信を行うことを知らせる。但し、受信したデータが通信エラーを起こしている場合は、通信に異常があることを通知する。
【0137】
前述の外部装置からBRC端子に入力された信号は、パルス検出手段、通信クロック生成手段、クロック断検出手段に送られる。クロック断検出手段により、クロック断が検出されると、ハードウェアリセット手段へ送られて、外部入出力手段c14の送信部・受信部・通信制御手段の各ブロックへリセット信号が送られる等の処理が行われる。BRC信号に基づいて、通信クロック生成手段がクロック信号を生成し、それに基づいて外部通信用復号手段がSC端子からの信号を復号する。復号された信号は、スクランブル解除手段によりスクランブルが解除されて、S/P変換手段に送られる。S/P変換手段は、受信タイミング制御手段及びフレーム検出手段との連携によりパラレル信号をつくり、BUS2からデータ制御手段c14fを介して、チップ側に伝達される。これらの伝達途上において通信エラー検出手段は、フレーム検出及びS/P変換手段からの信号を監視し通信エラーを検出する。
【0138】
<外部通信用乱数発生手段の説明> 外部通信用乱数発生手段c14cは、外部装置との通信の為に設けられた乱数発生手段であって、乱数発生装置c8とは独立して機能する。なお、乱数発生方式としては乱数発生装置c8と同様である。
【0139】
<チップ内部データ用暗号手段の説明> チップ内部データ用暗号手段c14dは、外部装置へチップ内部のデータを送信する前に予め所定のアルゴリズムにて暗号を施すものである。なお、外部通信用暗号手段とは独立して機能するものである。
【0140】
<チップ内部データ用復号手段の説明> チップ内部データ用復号手段は、予め所定のアルゴリズムにて暗号化されたチップ内部のデータに対し復号を施すものである。なお、外部通信用復号手段とは独立して機能するものである。
【0141】
<データ制御手段の説明> データ制御手段c14fは、BUS1を介して送られてきたチップ内部のデータである
(1)秘密情報データ、
(2)IDデータ、
(3)ROMデータ、
(4)デバイス情報データ、
(5)アクセス情報データ、
(6)S4を介して送られてきたチップ内部のデータである乱数データ、
(7)S5を介して送られてきたチップ内部のデータであるスチール情報データ(スチールとはデータの取り込みを指す。以下同様)、
を外部装置へ送出する為のデータ制御、外部装置からのコマンド等のデータをBUS1上に送出する為のデータ制御を行う。
また、上記これらのデータを一旦記憶するバッファを兼ね備えており、具体的には受信部c14bを介して入力された外部装置データを格納するレジスタ、乱数発生装置c8からの信号s4により受け取った乱数データを格納するレジスタ、スチール情報格納手段c15からの信号s5により受け取ったスチール情報データを格納するレジスタ、チップの他の部分から取得した秘密情報データ、IDデータ、ROMデータ、デバイス情報データ、アクセス情報データ等をそれぞれ格納するレジスタを有している。
なお、ROMデータとは、ユーザ用ROMやブート用ROMに格納されてあるデータを指し、デバイス情報データとは、量産用チップ/開発用チップのチップ種別、CPUの種類や型式番号、内蔵された各デバイスの種類や型式番号を指し、アクセス情報データとは、内蔵された各デバイスがアクセスを行った時の状況の履歴データを示すものである。
【0142】
<通信制御手段の説明> 通信制御手段c14gは、チップと外部装置との間で相互認証を行う為の各種制御を行う。図23は、通信制御手段c14gのブロック図を示すものであり、認証待ち制御手段と、シーケンス制御手段と、認証レベル制御手段と、認証判定手段と、認証コマンド制御手段と通信ステータス制御手段とで構成される。
【0143】
<認証待ち制御手段の説明> 認証待ち制御手段は、外部装置からの通信要求を受けて最初の通信処理を行い、外部装置から次の処理要求を受けるまでのチップ自身のスタンバイ状態を制御するものである。
【0144】
<シーケンス制御手段の説明> シーケンス制御手段は、それぞれ異なる認証レベルでのシーケンスの制御を行うものである。
【0145】
<認証レベル制御手段の説明> 認証レベル制御手段は、それぞれ異なる認証レベルでのコマンド制御を行うものである。
【0146】
<認証判定手段の説明> 認証判定手段は、それぞれ異なる認証レベルのコマンドの判定や許可を行うものである。
【0147】
<認証コマンド制御手段の説明> 認証コマンド制御手段は、チップ内部の各種データを読み出す為の制御を行うものである。
【0148】
<通信ステータス制御手段の説明> 通信ステータス制御手段は、通信中に発生した各通信ステータスのデータの格納や制御を行う。ステータスとして考えられるのは、受信フレーム中のパリティビット検査を行い、受信したデータのパリティ結果と異なった場合発生する通信フォーマットエラー等の通信エラーステータスや、ブート処理による自己診断情報のステータスや、各認証コマンドの制御ステータス等がある。
【0149】
データ制御手段c14fが制御する秘密情報データ、IDデータ、ROMデータ、デバイス情報データ、アクセス情報データ、乱数データ、スチール情報データのチップ内部データは、通信ステータス制御手段、認証コマンド制御手段、認証判定手段、認証レベル制御手段、シーケンス制御手段、認証待ち制御手段の連携に従い、それぞれ必要に応じて、また、各認証レベルのそれぞれの認証手続に従い、順次チップ内部データが外部装置へ送られていくこととなる。
【0150】
<スチール情報格納手段の説明> 次に図2、図3に示すスチール情報格納手段c15について説明する。スチール情報格納手段c15は、プログラム管理エリアにてユーザが指定したエリアに格納されたデータの情報を、CPUがその指定したエリアにアクセスすることで、リアルタイムにその時のアクセスしたデータの情報が格納されるものである。また、内蔵された各デバイスにCPUがアクセスを行った際に、その時の状況が同様に格納されるものである。
【0151】
次に図24、図25について説明する。図24は、ユーザが指定したエリアの情報をスチール情報格納手段に格納する迄のフローチャートである。また、図25は、チップ内部の情報データを外部装置へ送出する為のフローチャートであり、外部装置からチップ内部の情報データの送信要求がされて、チップがチップ内部情報データを送信する処理を示すフローチャートを外部装置側及びチップ側の動作を対照させて示している。なお、本フローチャートでは、通信処理中に発生する各種エラー処理については、説明を省略してあるが、さまざまな段階で生じ得るエラーに関しては、適切な段階にまで戻るなどのエラー処理が行われる。
【0152】
まず、前提として、チップ側のCPUの動作のうち、セキュリティモードの開始処理に始まり、ユーザモードに遷移してからのスチールデータ格納処理について図24を参照しつつ説明する。図1の量産チップの説明において前述したように、チップのブート時には、セキュリティモードから始まり、所定のブート処理が完了してセキュリティチェックがOKになるとユーザモードに遷移する。セキュリティモードにおける一連のブート処理のうちの一つとして、「プログラム管理エリアにてユーザが指定したアドレス(エリア)を読み込むステップ」と、「プログラム管理エリアにてユーザが指定したアドレス(エリア)をブート処理の環境設定値として設定するステップ」とが実行される。ここで、「プログラム管理管理エリアにてユーザが指定したアドレス(エリア)」とは、図5(a)に示すプログラム管理エリアの「1FA0h」から始まり「1FBFh」までのエリアに書き込まれたものを指す。このアドレス(エリア)を読み込んだ上で、ブート処理の環境設定値として設定する。そして、ユーザモードに遷移したのち、CPUが当該アドレス(エリア)にアクセスをしたか否かを判断する。CPUが当該アドレス(エリア)にアクセスした時には、その時のデータバス上のデータをスチールし、スチールしたデータをスチール情報格納手段c15に格納する。これらの処理は、CPU、記憶手段c11、記憶監視手段c12、スチール情報格納手段c15の連携によりなされる。
【0153】
次に、図25の右側に記載した外部装置側のフローチャートを説明する。図25の右側に記載した外部装置側のフローチャートは、主に、チップ内部情報データの送信要求に始まり、その受信処理までの処理を示すものである。外部装置がチップ内部情報データの要求送信を行う場合には、チップへの送信要求処理を行い、チップからの応答がある場合に、レベル認証手続を行い、それをクリアすると、チップ内部情報データの送信要求処理を実行し、その受信処理、受信したデータを外部装置の記憶手段に格納する処理を行い、受信が終了すると、その他の処理を実行して戻る。チップからの応答が無い場合やレベル認証をクリアしない場合は、スタート時点に戻る。また、チップ内部情報データの受信処理が終了しない場合は、再度送信要求処理を実行することとなる。なお、何回かの再度送信要求を行い、チップ内部情報データの受信処理が終了しない場合は、図示しないエラー処理に従うこととなる。
【0154】
図25の左側に記載したチップ側のフローチャートは、外部装置との通信に関するチップ側のフローチャートである。外部装置から照合通信の要求ありと判断すると、外部装置との通信開始処理を実行する。レベル認証をクリアできるとその旨を外部装置へ通知する。そして、照合通信の受信待ちをする。そして、チップ内部情報データの取り出し要求があると、チップ内部情報データの取り出し処理を実行し、そのデータを外部装置へ送信する。その後、照合通信の受信待ちに戻る。
【0155】
各機関へ提供する認証レベルの割り当ての例として
(1)レベル1:ユーザA
(2)レベル2:ユーザB
(3)レベル3:第三者機関A(下位)
(4)レベル4:第三者機関B(中位)
(5)レベル5:第三者機関C(上位)
………
(6)レベルn:最上位機関
のように考えられる。
【0156】
また、認証検査/照合検査の内容の例として、
(1)レベル1(ユーザA):
1種類のID番号+ユーザ指定エリア情報
(2)レベル2(ユーザB):
レベル1+1種類のID番号+ユーザプログラム
(3)レベル3(第三者機関A):
レベル2+数種類のID番号+乱数データ
(4)レベル4(第三者機関B):
レベル3+全種類のID番号+デバイス情報データ
(5)レベル5(第三者機関C):
レベル4+アクセス情報データ
………
(6)レベルn (最上位機関):
チップ内部データ全て
のように考えられる。なお、各レベルによる真贋判定の実施の回数については段落番号0110で説明したものに対応している。
【0157】
上述の例はあくまでも一例であり、各機関へ提供する認証レベルの割り当てや具体的に検査/照合する内容は色々な組み合わせが考えられる。
【0158】
また、チップの真贋検査において、認証レベルの低いレベル1及びレベル2については、特に検査装置や照合装置に限らず、ホールコンピュータにこれらの認証レベルに対応した真贋検査の機能を持たせても良いことは言うまでもない。
【0159】
【発明の効果】
本発明では、チップの外部端子自身が自ら出力した信号や、外部端子へ入力された信号をチェックする機能を持ったバス/信号線制御手段を内蔵することで、悪意に出力同士を短絡(ショート)したり、然るべく外部端子に想定できない信号が入力されるような不正に対しても、これらの不正を事前に検出することができる。
【図面の簡単な説明】
【図1】チップの動作モード遷移図である。
【図2】チップ全体の機能ブロック図である。
【図3】外部トリガ/クロック入力、及び乱数データを外部へ出力可能な場合のチップ全体の機能ブロック図である。
【図4】チップ全体のメモリマップを示した具体例図である。
【図5】ユーザ用ROM内のエリアを示した具体例図である。
【図6】暴走監視手段c4のブロック図である。
【図7】リセット/割込制御手段c5のブロック図である。
【図8】システムリセットのタイミングチャート例である。
【図9】ユーザリセットのタイミングチャート例である。
【図10】NMI及びINT割込みのタイミングチャート例である。
【図11】乱数発生の回路構成を示すブロック図である。
【図12】乱数データを外部へ出力可能な場合の乱数発生の回路構成機能ブロック図である。
【図13】補助乱数発生手段r19の具体例を示すブロック図である。
【図14】ビットスクランブルテーブルの構成を示す概念説明図である。
【図15】更新周期設定データ保持回路r1と更新周期設定回路r2の内部構成を示すブロック図である。
【図16】乱数発生装置c8が所望の動作を行う為の環境設定の設定を行う初期化ルーチン処理を示すフローチャートである。
【図17】乱数発生装置c8が図16による初期化処理終了後ユーザが自由に乱数を読み出す為の動作設定処理を示すフローチャートである。
【図18】乱数発生装置c8の乱数更新及び乱数読出処理のフローチャートを示したものである。
【図19】入賞状態に関わらない乱数発生装置c8の乱数読出処理及び乱数出力処理のフローチャートを示したものである。
【図20】認証方式/照合方式に関わる概念フローチャートである。
【図21】外部装置との通信の概要シーケンスである。
【図22】外部入出力手段c14の詳細な構成例を示すブロック図である。
【図23】外部入出力手段c14のうちの通信制御手段c14gの詳細を示すブロック図である。
【図24】ユーザが指定したエリアの情報をスチール情報格納手段に格納する迄のフローチャートである。
【図25】チップ内部の情報データを外部装置へ送出する為のフローチャートである。外部装置からチップ内部の情報データの送信要求がされて、チップがチップ内部情報データを送信する処理を示すフローチャートを外部装置側及びチップ側の動作を対照させて示している。
【図26】本発明のバス/信号線制御手段c13の端子毎の不一致検出を行う第一実施例を示したブロック構成図である。
【図27】本発明のバス/信号線制御手段c13の複数端子について同時に不一致判定を行う第二実施例を示したブロック構成図である。
【符号の説明】
c1 中央処理装置(CPU)
c2 タイマシステム
c3 不正実行禁止手段
c4 暴走監視手段
c4a クロック選択手段
c4b nビットカウンタ
c4c 暴走監視制御手段
c4d 動作モード制御手段
c4e 制御ワード設定手段
c4f 出力制御手段
c5 リセット/割込制御手段
c5a ノイズフィルタ
c5b OR(論理和)回路
c5c 延長回路
c5d INT優先順位制御回路
c6 デコード手段
c7 入出力手段
c7a 入出力制御手段
c7b 機能選択手段
c8 乱数発生装置
c9 クロック生成手段
c10 セキュリティ手段
c11 記憶手段
c11a ID格納手段
c11b ブート用記憶手段
c11c ユーザ用記憶手段
c12 記憶監視手段
c13 バス/信号線制御手段
c13a I/0バッファ
c13b 期待値設定回路
c13c 切換回路
c13d 切換制御回路
c13e 不一致検出回路
c13f 不一致判定回路
c14 外部入出力手段
c14a 送信部
c14b 受信部
c14c 外部通信用乱数発生手段
c14d チップ内部データ用暗号手段
c14e チップ内部データ用復号手段
c14f データ制御手段
c14g 通信制御手段
c15 スチール情報格納手段
r1 更新周期設定データ保持回路
r1a 基準インターバル周期指定回路
r1b 定周期設定値格納回路
r2 更新周期設定回路
r2a 基準インターバル周期生成回路
r2b 基準インターバル周期カウント回路
r2c リロードタイミング生成回路
r3 ソフトウェア更新トリガ発生回路
r4 動作開始指示回路
r5 乱数更新トリガ選択情報保持回路
r6 乱数更新トリガ選択回路
r7 更新制御回路
r8 乱数発生回路
r9 ビットスクランブル設定回路
r9a ビットスクランブル要求回路
r9b ビットスクランブルキー生成回路
r9c ビットスクランブル回路
r10 乱数最大値格納回路
r11 乱数最大値比較回路
r12 乱数値保持回路
r13 乱数値要求回路
r14 乱数値読出回路
r15 ROM内プログラム管理エリア
r15a 乱数初期値選択定数
r15b RAMアドレス指定
r16 ソフトウェア操作
r16a 固定値
r16b ID番号
r16c RAM値
r16d RAM演算値
r16e RAM
r17 乱数初期値選択回路
r18 乱数初期値格納回路
r19 補助乱数発生手段
r20 外部出力制御手段
r21 命令実行数カウント回路
r22 熱雑音発生回路
r23 A/D変換回路
r24 カウンタ回路
r25 外部トリガ制御手段
S1 乱数一巡終了信号
S2 ビットスクランブル要求信号
S3 各機能ブロックに供給するクロックとは異なる分周比率のクロックソース源
S4 ユーザでアクセスできない乱数出力データ
S5 スチール情報データ
BUS1 システムバス
BUS2 外部入出力手段c14内の固有のハードウェアバス
[0001]
[Technical field to which the invention belongs]
The present invention relates to a gaming machine control chip and a gaming machine control method used in a pachinko gaming machine, a revolving gaming machine, and the like.
[0002]
[Prior art]
In a gaming machine control chip used in a conventional gaming machine, the function of checking the signal itself output from the terminal of the chip and the signal input to the terminal is different from the terminal that performs verification and communication with an external device. There was nothing.
[0003]
[Problems to be solved by the invention]
For this reason, even if a person who intends to cheat intentionally short-circuits the outputs, or when a signal that cannot be assumed is input to the external terminal, the signal cannot be identified.
The present invention has been made in view of the problems of the prior art. That is, an object of the present invention is to provide a gaming machine control chip and a gaming machine control method for constantly monitoring (monitoring) an external terminal and stopping the CPU and notifying abnormal information when there is an abnormality.
[0004]
[Means for Solving the Problems]
In the gaming machine control chip and gaming machine control method according to the present invention, output data or expected value data at an external terminal is compared with input data (feedback data). If there is a mismatch, the CPU is stopped or the information is output from the external terminal to be inspected.
[0005]
The invention described in claim 1 is a bus / signal line control means having a function of self-checking input / output of an external terminal, and a gaming machine control chip that has a security function and is incorporated in a gaming machine. / Signal line control means includes: an I / O buffer for strengthening control signal direction control and driving capability; an expected value setting circuit for setting predetermined data values, signal patterns, and the like; and a signal input from an external terminal A mismatch detection circuit for detecting a mismatch by comparing an output signal such as a predetermined data value or signal pattern set by the expected value setting circuit or a control signal for outputting a signal inside the chip to an external terminal; A switching circuit that selects either the signal output to the external terminal or the output signal of the expected value setting circuit and sends it to the mismatch detection circuit, and the control of the output / switching signal of the switching circuit, A switching control circuit that controls detection condition setting of the coincidence detection circuit, and a mismatch determination circuit that determines whether or not the signals of the external terminals sent from the mismatch detection circuit are mismatched, and the mismatch determination The circuit stops the CPU of the gaming machine control chip if the signals do not match.
The invention described in claim 2 is a bus / signal line control means having a function of self-checking input / output of an external terminal, and a gaming machine control chip having a security function and incorporated in a gaming machine. / Signal line control means includes: an I / O buffer for strengthening control signal direction control and driving capability; an expected value setting circuit for setting predetermined data values, signal patterns, and the like; and a signal input from an external terminal A mismatch detection circuit for detecting a mismatch by comparing an output signal such as a predetermined data value or signal pattern set by the expected value setting circuit or a control signal for outputting a signal inside the chip to an external terminal; A switching circuit that selects either the signal output to the external terminal or the output signal of the expected value setting circuit and sends it to the mismatch detection circuit, and the control of the output / switching signal of the switching circuit, A switching control circuit that controls detection condition setting of the coincidence detection circuit, and a mismatch determination circuit that determines whether or not the signals of the external terminals sent from the mismatch detection circuit are mismatched, and the mismatch determination If the signals do not match, the circuit informs the outside of the information of the external terminal to be inspected as an abnormality detection signal.
[0006]
A third aspect of the present invention is the gaming machine control chip according to the first aspect, wherein each circuit constituting the bus / signal line control means is provided for each external terminal, and the mismatch detection circuit Is characterized in that a mismatch detection signal unique to the external terminal is output.
A fourth aspect of the present invention is the gaming machine control chip according to the first aspect, wherein one non-coincidence determination circuit is provided in common for all the external terminals, and a single determination is made when the determination result becomes abnormal. One abnormality detection signal is output.
A fifth aspect of the present invention is the gaming machine control chip according to the second aspect, wherein each circuit constituting the bus / signal line control means is provided for each external terminal, and the mismatch detection circuit Is characterized in that a mismatch detection signal unique to the external terminal is output.
A sixth aspect of the present invention is the gaming machine control chip according to the second aspect of the present invention, wherein the mismatch determination circuit is provided in common for all the external terminals, and when the determination result becomes abnormal, One abnormality detection signal is output.
[0007]
DETAILED DESCRIPTION OF THE INVENTION
In the following, the present invention will be described in detail according to the illustrated embodiments.
[0008]
<Description of Chip Form> The gaming machine control chip according to the present invention is configured as an integrated circuit mounted on a board inside the gaming machine. There are two types of chip types: development chips and mass production chips. The mass production chip and the development chip will be described with reference to FIG. The development chip is a chip that does not have a security determination function, and other than that, it has the same function as a mass production chip. The mass production chip has a security judgment function for judging whether or not the program stored in the built-in storage means is an appropriate one that has passed the test by a third party organization.
Furthermore, the gaming machine control chip according to the present invention has built-in external input / output means having an authentication method of n (n is a natural number of 2 or more, the same shall apply hereinafter) level. Or, by connecting an external device such as a hall computer (hereinafter abbreviated as “external device”), it is possible to perform a chip authenticity inspection at an authentication level suitable for the application and to read information (ID number, etc.) in the chip. Is possible.
[0009]
<Description of Chip for Mass Production> The mass production chip has a user ROM that cannot be erased and rewritten by the user, and the security check result is inconsistent as shown in FIG. Stops the CPU. Moreover, the program execution outside the set address range (the address range indicating the outside of the designated area) cannot be executed by the function for prohibiting running outside the designated area. Here, the user refers to a gaming machine manufacturer that manufactures and sells the gaming machine control chip according to the present invention incorporated in the gaming machine.
[0010]
<Explanation of Development Chip> The development chip has a user ROM that can be erased and rewritten by the user. As shown in FIG. 1B, the development chip is set to the user mode regardless of the result of the security check. Transition. In addition, in the out-of-designated area prohibition function, the settable address range (the address range indicating the designated area) is not limited, so that the user can freely develop and debug.
[0011]
<Description of Operation Mode> The operation mode is a mode for controlling basic operations such as CPU operation control, memory mapping, access rights to various registers built in the chip, and includes a security mode, a user mode, and a program mode. In addition to these modes, a communication mode for communicating with an external device is provided.
[0012]
<Description of Security Mode> In this mode, the boot storage unit is executed, and environment settings and security checks of each function are performed. During the security mode, the internal bus during CPU operation is not output to the external terminal.
[0013]
<Description of Security Check> This is a function for authenticating a user program. At the time of system reset input, recalculation of whether or not the authentication code calculated based on the user program is correct is performed. If the result is NG, the CPU is stopped. The authentication code is written together with the user program when writing to the user storage means.
[0014]
<Description of User Mode> This is a mode in which a legitimate user program that has passed the security check is executed. If the security check in the security mode is not OK, the mode does not change. During the user mode, the internal bus during CPU operation is output to the external terminal as an external bus. Note that the boot storage means cannot be accessed during the user mode.
[0015]
<Description of Program Mode> In this mode, the CPU does not operate and directly reads / writes data to / from the user ROM. After the system reset, the mode is changed according to a predetermined level (for example, high level) of the PRG terminal. Note that writing to the mass production chip can be performed only once, and the development chip can be erased and rewritten.
[0016]
Each functional block built in the gaming machine control chip will be described with reference to FIGS. C1 shown in FIGS. 2 and 3 is a central processing unit (CPU). (Hereafter abbreviated as CPU)
The CPU controls and commands each functional block (hereinafter also referred to as “device” or “circuit” for convenience).
[0017]
<Description of Timer System> Next, the timer system c2 shown in FIGS. 2 and 3 has n (for example, 4) n-bit (for example, 8 and 16-bit) counters and various control registers, and is independent of each other. It is possible to operate in the selected mode. For example, the timer system can be broadly classified into a mode, a timer mode, a counter mode, and the like, and can generate a real-time interrupt and measure time. These functions can be controlled by setting various control registers in the timer system. In addition, a timer input bus for inputting a gate signal or trigger signal for realizing the above function and a timer output bus for outputting various timer output signals generated by the timer system to the outside are provided.
[0018]
<Explanation of Unauthorized Execution Prohibiting Unit> Next, the unauthorized execution prohibiting unit c3 shown in FIG. 2 and FIG. 3 monitors whether or not the user program created by the gaming machine manufacturer is correctly executed in a predetermined designated area. When the user program is executed in other cases, a reset occurs. For example, when the entire memory space is 64 kbytes, in setting the designated area (address range where user program can be executed), the start address of that range is set as the program code start address (PCS), and the end address is the program code end. When the address (hereinafter referred to as PCE) is 1FFF (hexadecimal), even if an illegal program is stored and executed in the range of 2000 (hexadecimal) to FFFF (hexadecimal), it cannot be executed. That is, the unauthorized execution prohibition means is a function for prohibiting instruction execution outside the designated area. When an instruction is executed (opcode fetch) outside the address range (designated area) designated in advance, IAT (Illegal Address Trap) This is a function for generating a signal. A reset is generated by this IAT signal. Information on the designated area is written in the user ROM together with the user program.
[0019]
<Description of Runaway Monitoring Unit> Next, c4 shown in FIGS. 2 and 3 is a runaway monitoring unit. The configuration of the runaway monitoring means c4 will be described in more detail with reference to FIG. The runaway monitoring unit c4 includes a clock selection unit c4a, an n-bit counter c4b, a runaway monitoring control unit c4c, an operation mode control unit c4d, a control word setting unit c4e, and an output control unit c4f.
The runaway monitoring means c4 is automatically activated when transitioning to the user mode, and generates a timeout signal when the timeout time elapses. By receiving this timeout signal, a user reset is generated, and the user program is re-executed from the reset address (for example, address 0) of the user program.
Further, by various settings of the operation mode control means c4d and control word setting means c4e,
(1) Setting / changing timeout time,
(2) Count clear & restart,
(3) Operation permission / prohibition,
Etc. can be set.
[0020]
<Explanation of Clock Selection Unit> The clock selection unit c4a includes each divided clock CLKO / m including the system clock sent from the clock generation unit c9. 0 ... CLKO / m n Is selected and sent to the n-bit counter c4b.
[0021]
<Description of n-bit Counter> The n-bit counter c4b counts the time-out period using the divided clock sent from the clock selection means c4a as a counter clock.
[0022]
<Description of Runaway Monitoring Control Unit> The runaway monitoring control unit c4c performs control for setting a timeout time, prohibiting operation to the n-bit counter, clearing, restarting, and the like.
[0023]
<Description of Operation Mode Control Unit> The operation mode control unit c4d can select a count clock for setting a timeout time, control operation permission / prohibition, and change the timeout time. Note that once the timeout period is changed, it may not be changed until the next system reset occurs.
[0024]
<Description of Control Word Setting Unit> The control word setting unit c4e sets clearing, restarting, and prohibition of timeout time. For example, when the control word (for example, CC (hexadecimal)) is written in the control word setting unit c4e, the runaway monitoring unit is disabled. This setting may be possible only once after the system reset, for example. The timeout time can be extended by clearing and restarting (counting again) by 55 (hexadecimal) → AA (hexadecimal) → 33 (hexadecimal). It is not necessary to write the control word continuously for 3 bytes.
[0025]
<Description of Operation of Runaway Monitoring Unit> The runaway monitoring unit c4 is automatically activated by transitioning to the user mode. The timeout time is set by the operation mode control means c4d, and the default value is set to the longest timeout time. The setting can be performed only once after the system reset, and the resetting cannot be performed without the system reset. When the time-out is reached, a time-out signal is output from the output control means c4f, and the operation of the runaway monitoring means c4 is continued as it is.
[0026]
<Description of Reset / Interrupt Control Unit> Next, the reset / interrupt control unit c5 shown in FIGS. 2 and 3 will be described with reference to FIGS. The reset / interrupt control means c5 controls various resets, interrupt requests from the outside, and interrupt requests from a built-in peripheral circuit (timer system). FIG. 7 shows an internal block diagram of the reset / interrupt control means c5.
[0027]
<Description of System Reset> The system reset is a reset generated by inputting a low level for a certain period to the XSRST terminal. All internal circuits including the CPU excluding a part of the circuit of the external input / output means c14 are initialized, and transit to the security mode or the program mode according to the input level of the PRG terminal. If there is no abnormality in the security mode, the mode is changed to the user mode and the user program is executed from the reset address (for example, address 0) of the user program. The signal input from the XSRST terminal is a signal from which noise such as chattering has been removed by the noise filter c5a and is input to the CPU via the extension circuit c5c. Similarly, as a reset signal to an external device outside the chip, the signal is output from the XRSTO terminal Is output. FIG. 8 shows an example of a timing chart illustrating a relationship in which a signal input to the XSRST terminal is output from the XRSTO terminal to the outside.
[0028]
<Description of User Reset> Next, user reset will be described. As a cause of the user reset, there can be a user reset request by the XURST terminal as an external factor, a reset request by generation of an IAT signal of the unauthorized execution prohibition means c3, a user reset request by a timeout signal of the runaway monitoring means c4, and the like. When a user reset occurs due to these requests and the user reset is accepted, execution of the user program is started from a reset address (for example, address 0). In the user reset, the reset is executed without changing to the security mode or the program mode but staying in the user mode. Similarly to the system reset, the signal input from the XURST terminal is input to the CPU through the extension circuit c5c after removing noise such as chattering by the noise filter c5a. FIG. 9A shows an example of a user reset timing chart based on a signal input to the XURST terminal. FIG. 9B shows an example of a user reset timing chart due to internal factors.
[0029]
<Description of Non-Maskable Interrupt (NMI)> Next, a non-maskable interrupt will be described. A non-maskable interrupt (NMI) is an interrupt that is unconditionally accepted even when the CPU is in an interrupt disabled state, and is processed with the highest priority for all interrupt requests. The non-maskable interrupt by the XNMI terminal is input to the CPU via the noise filter c5a. FIG. 10 is an example of a timing chart showing a relationship between before and after passing through the noise filter c5a. When the XNMI signal is at a low level for a certain period (here, the rising edge of 4 clocks is detected), the signal that has passed through the noise filter c5a becomes an NMI signal and is input to the CPU.
[0030]
<Description of Maskable Interrupt (INT)> A maskable interrupt (INT) is an interrupt that can allow / inhibit acceptance of an interrupt request by a user program, and multiple interrupts can be executed by the INT priority control circuit c5d.
[0031]
<Description of External Maskable Interrupt> An external maskable interrupt is generated by inputting a low level for a certain period to the XINT terminal, and a maskable interrupt by the XINT terminal is input to the CPU via the noise filter c5a. FIG. 10 is an example of a timing chart showing a relationship between before and after passing through the noise filter c5a. When the XINT signal is at a low level for a certain period (here, the rising edge of 4 clocks is detected), the signal that has passed through the noise filter c5a becomes the INT signal and is input to the CPU.
[0032]
<Description of Internal Maskable Interrupt> An internal maskable interrupt is generated by an interrupt request signal from the timer system.
[0033]
<Description of Decoding Unit> Next, the decoding unit c6 shown in FIG. 2 and FIG. 3 decodes each functional block in the chip by the memory mapped I / O method or the I / O mapped I / O method or for an external device. The chip select signal which is the decoding signal is decoded, and the address range of the chip select signal is set. Taking the chip select signal as an example, the chip select signal by the memory mapped I / O method is mapped to FF00 (hexadecimal) to FF19 (hexadecimal) in FIG. 4, and the I / O mapped I / O is shown in FIG. It shows that the chip select signal by O method is mapped to 00 (hexadecimal) to 19 (hexadecimal). Since there are a plurality of chip select signals, these are collectively referred to as an external device decode output bus in this specification for convenience.
[0034]
<Description of Input / Output Means> Next, the input / output means c7 shown in FIG. 2 and FIG. 3 controls the shared function of the input / output port and the chip select signal which is a decoding signal for an external device.
(1) Input / output control means c7a,
(2) function selection means c7b,
It consists of. Furthermore, the input / output control means c7a
(A) Parallel input / output port,
(B) external device decoding,
And has two functions.
The parallel input / output port includes a plurality of input / output ports having different arbitrary bit widths, and the input / output of each port can be set.
One of the functions is selected by the function selection unit c7b and input / output with the outside is performed. As a result, the external terminal functions as either a parallel input / output port or an external device decoding state.
[0035]
<Description of Clock Generation Unit> Next, the clock generation unit c9 shown in FIG. 2 and FIG. Etc.) and is supplied to the CPU and internal circuits. The generated clock is output to the outside from a clock output terminal (corresponding to the CLKO terminal in FIG. 2). Further, it is supplied to the random number generator c8 as a clock source source (s3) to the auxiliary random number generator r19.
[0036]
<Description of Security Means> Next, the security means c10 shown in FIGS. 2 and 3 is not shown.
(1) Authentication check control means,
(2) Unauthorized execution prohibition control means,
(3) mode control means,
(4) Function control means,
(5) storage means control means,
(6) Communication format control means,
It consists of six means.
[0037]
<Description of Authentication Check Control Unit> The authentication check control unit is a function for authenticating a user program (UP). At the time of system reset input, recalculation of whether the authentication code calculated based on the user program is correct is performed. If the result is NG, the CPU is stopped.
[0038]
<Explanation of Unauthorized Execution Prohibition Control Unit> The unauthorized execution prohibition control unit controls a function for prohibiting instruction execution outside the designated area.
(A) Control of prohibition of instruction execution outside the designated area when the illegal execution prohibition means c3 detects illegality;
(B) Control of program execution prohibition on RAM (both external / internal)
(C) control of program execution monitoring in the designated area;
(D) reset control,
I do.
[0039]
<Description of Mode Control Unit>
(A) Program mode,
(B) security mode;
(C) User mode,
The three modes are controlled.
Moreover, the communication mode which communicates with an external apparatus is controlled as other control.
[0040]
<Description of function control means>
(A) Bus / signal line control,
(B) CPU stop control,
(C) random number fault diagnosis function control,
(D) Read / write of user ROM,
To control the function.
[0041]
<Description of Storage Unit Control Unit>
(A) Disconnect the device,
(B) Memory bank switching,
I do.
[0042]
<Description of Communication Format Control Unit> The communication format control unit controls various communication formats (initial communication, authentication communication, test communication, verification communication) when performing communication with an external device.
[0043]
<Description of Storage Means> Next, the storage means c11 shown in FIGS. 2 and 3 will be described with reference to FIGS. 4 shows a specific example of a memory map of the entire chip, FIG. 5 shows a specific example of an area in the user ROM, (a) shows a specific example of a program management area, and (b) shows an I / O FIG. 5 is a specific example diagram of a built-in register and an decode area of an external output bus by an O mapped I / O method.
[0044]
The storage unit c11 includes an ID storage unit c11a, a boot storage unit c11b, and a user storage unit c11c.
[0045]
<Description of ID Storage Unit> The ID storage unit c11a includes
(A) Date of test date,
(B) Date of manufacture date,
(C) manufacturing location,
(D) manufacturing plant,
(E) production line,
(F) Production lot,
(G) serial number,
(H) User management number,
(I) serial number,
Can be stored as n different ID numbers, and mass production (for example, 10 million) can be managed by providing these ID numbers. In addition to the ID number, secret information is stored, which is information that allows only a chip manufacturer / seller who cannot be known by a third party or a user to specify a chip. Specific examples of confidential information may include detailed information on material management (such as a wafer management number), a code number related to a subcontract factory, and the like.
[0046]
<Description of Boot Storage Unit> The boot storage unit c11b
(A) Boot ROM,
(B) Boot RAM,
(A) In the boot ROM,
(B) Security check program,
(B) Failure diagnosis program,
(C) Environment setting program,
(D) Authentication / verification program,
Etc. are stored. Further, (b) the boot RAM is used as a work area (data area, stack area, etc.) of the boot program.
[0047]
<Description of User Storage Unit> The user storage unit c11c
(A) User ROM,
(B) User RAM
Consists of.
[0048]
<Description of User ROM> The user ROM stores a program (user program) created by the user. The user ROM has a predetermined designated area, and (a) a program code / data area and (b) a program management area are allocated. (A) The program code / data area is an area for storing a user program. (B) The program management area is an area for storing information necessary for the CPU to execute the user program, and values are set on the user side. Selection of the user RAM size (for example, 256/512 bytes) is also performed in this area.
[0049]
<Description of Data to be Set in Program Management Area> As shown in FIG.
(1) “Header (HDR)” for setting a code string indicating the start of the program management area (for example, mapping from 1F80 (hexadecimal) to 1F87 (hexadecimal)),
(2) “Manufacturer code (MCD)” for setting a manufacturer code (for example, mapping from 1F88 (hexadecimal) to 1F8A (hexadecimal)),
(3) “Product code (PCD)” for setting the product code (mapping from 1F8B (hexadecimal) to 1F92 (hexadecimal) as an example),
(4) “Program code end address (PCE)” for setting the final address of the program code area of the user program (for example, mapping from 1F93 (hexadecimal) to 1F94 (hexadecimal)),
(5) “RAM size selection (RSS)” for setting the size of the user RAM (for example, mapping to 1F95 (hexadecimal)),
(6) “Terminal function selection” for setting whether to use a terminal as a chip select for a parallel input / output port or an external device (mapping to 1F96 (hexadecimal) as an example),
(7) “Random number initial value selection” for setting a random number initial value (mapping to 1F97 (hexadecimal) as an example),
(8) “random number initial value data address” (mapped to 1F98 (hexadecimal) to 1F99 (hexadecimal) as an example) for setting the address when the value of the designated user RAM is selected in the random number initial value selection,
(9) “User designated address (area) for user to read” (example 1FA0 (16) for setting user RAM address for external device to read data information stored in area designated by user) Hex) to 1FBF (hexadecimal)).
[0050]
<Description of User RAM> The user RAM is used as a work area (data area, stack area, etc.) of the user program. The RAM size can be changed (for example, switching between 512/256 bytes) according to user settings. The user RAM has a backup function. When using the backup function, V BB By supplying a separate power supply between the terminal and the GND terminal, the chip power supply (V + ) Even after disconnection, the data in the RAM can be retained (backed up).
[0051]
<Description of Storage Monitoring Unit> Next, the storage monitoring unit c12 shown in FIGS. 2 and 3 monitors reading and writing of the storage unit c11, and the address range of the predetermined storage unit c11 is set as the monitoring range in the security mode. The
[0052]
<Description of Bus / Signal Line Control Unit> Next, the bus / signal line control unit c13 (FIGS. 2 and 3) will be described in more detail with reference to FIGS.
The bus / signal line control means c13 is a bus interface that enhances the interface function between the external bus and the internal bus of the chip, the address bus, the data bus, and the direction control and drive capability of each control signal. In addition, it has a function of monitoring the state of each terminal to which the signal is input.
[0053]
<Description of Each Terminal> The address bus designates an address for data transmission / reception with a memory or an I / O device. The data bus performs data transmission / reception. XM1 indicates a machine cycle. XMREQ is a request signal to the memory space and indicates a memory access period. XIORQ is a request signal to the I / O space and indicates an access period of the I / O space. XRD indicates a read cycle. XWR indicates a write cycle. XRFSH is a refresh signal to a dynamic memory or the like outside the chip. XHALT is a signal indicating the state in which the CPU is executing the HALT instruction. The halt state is not executed during the halt state, and the halt state is canceled by a reset signal or an interrupt to resume the CPU operation. To do.
[0054]
The bus / signal line control means c13 includes an I / O buffer c13a, an expected value setting circuit c13b, a switching circuit c13c, a switching control circuit c13d, a mismatch detection circuit c13e, and a mismatch determination circuit c13f.
The I / O buffer c13a reinforces the direction control and driving capability of each control signal that inputs a signal input from an external terminal into the chip or outputs a signal inside the chip to an external terminal.
The expected value setting circuit c13b sets a predetermined data value, signal pattern, and the like.
The switching circuit c13c selects either the signal output to the external terminal or the output signal of the expected value setting circuit c13b and sends it to the mismatch detection circuit c13e.
The switching control circuit c13d controls the output / switching signal of the switching circuit c13c and the detection condition setting of the mismatch detection circuit c13e.
The mismatch detection circuit c13e includes a signal input from an external terminal,
(1) Compare the output signal such as a predetermined data value or signal pattern set by the expected value setting circuit c13b, or (2) each control signal for outputting a signal inside the chip to an external terminal. Inconsistency detection is performed.
The mismatch determination circuit c13f determines whether or not the signals of the external terminals sent from the mismatch detection circuit c13e are mismatched. If they do not match, the CPU is stopped or the external terminal to be inspected is checked. Information is notified to the outside as an abnormality detection signal.
FIG. 26 is a block diagram showing a first embodiment for detecting inconsistency for each terminal of the bus / signal line control means c13 of the present invention. In this embodiment, each circuit constituting the bus / signal line control means c13 is provided for each terminal, and as a result (for example, the mismatch detection circuit 1 outputs an external terminal 1 mismatch signal). Each mismatch detection circuit outputs a mismatch signal specific to the external terminal.
FIG. 27 is a block diagram showing a second embodiment in which a plurality of terminals of the bus / signal line control means c13 of the present invention are simultaneously judged to be inconsistent. In this embodiment, one mismatch determination circuit c13f is provided in common for all the terminals, and when the determination result becomes abnormal, a single abnormality detection signal is output to notify the outside.
[0055]
<Description of Random Number Generator> Next, the random number generator c8 shown in FIGS. 2 and 3 will be described with reference to FIGS. FIG. 11 is a block diagram showing a circuit configuration for random number generation. The update cycle setting data holding circuit r1 is a circuit that holds setting data for designating an interval cycle for the user to perform random number updating at an arbitrary interval cycle, and a reference interval for designating a reference interval cycle. The cycle designation circuit r1a and a constant cycle set value storage circuit r1b for performing settings for designating an interval cycle for performing an actual random number update based on the reference interval cycle. The data designated by the circuit r1 is loaded into the update cycle setting circuit r2.
[0056]
The update cycle setting circuit r2 is a circuit for setting an interval cycle for performing random number update at a fixed cycle, and a reference for generating an interval cycle serving as a reference corresponding to the data specified by the reference interval cycle specifying circuit r1a. A reference interval period count for counting the reference interval period based on the number of count data designated by the constant period set value storage circuit r1b based on the interval period generation circuit r2a and the reference interval period clock supplied from the circuit r2a A circuit r2b and a reload timing generation circuit r2c for generating a reload timing for designating update / continuation of the interval period when the number of count data designated by the fixed period set value storage circuit r1b is reached. Therefore, the interval period set by the update period setting circuit r2 is supplied to the random number update trigger selection circuit r6.
[0057]
For example, assuming that the frequency division of the system clock is the reference interval period (assuming I), the clock divided based on the data specified by the reference interval period specifying circuit r1a (for example, data specifying 128 division) is the reference interval period. It becomes. If the settable range of the fixed cycle set value storage circuit r1b is 8 bits, the settable interval cycle for updating the random number at the actual fixed cycle is “128 × system clock × 1 to 128 × system clock × An interval period of “up to 256” can be set. If the set value specified by the fixed cycle set value storage circuit r1b is “5”, the set value is similarly loaded into the reload timing generation circuit r2c, and reaches “128 × system clock × 5” in the circuit. In this case, reload timing for updating / continuing the interval cycle again is supplied to the reference interval cycle count circuit r2b.
[0058]
The software update trigger generation circuit r3 generates a software trigger signal by performing write access to the data (address, data generated by decoding the predetermined data, etc.) combined with a predetermined condition by an instruction from the CPU. To do.
[0059]
The operation start instruction circuit r4 designates stop, restart, continuous operation, etc. of the random number update operation.
[0060]
The random number update trigger selection information holding circuit r5 is an automatic update method that uses an interval period for updating a random number at a constant period generated by the update period setting circuit r2 in updating a random value, or a software update trigger generation circuit. Either of the manual update methods using the trigger signal generated by the software generated at r3 is selected.
[0061]
The random number update trigger selection circuit r6 selects one of the interval cycle clock generated by the update cycle setting circuit r2 or the trigger signal generated by the software generated by the software update trigger generation circuit r3, and the update control circuit to r7.
[0062]
The update control circuit r7 performs control such as stopping, restarting, and continuing the random number update operation.
[0063]
The random number generation circuit r8 includes a plurality of n-th order generation polynomials or n-bit counters for generating different random number sequences according to predetermined settings.
[0064]
The bit scramble setting circuit r9 replaces or transposes the bits of random number data output from the random number generation circuit r8, and includes a bit scramble request circuit r9a, a bit scramble key generation circuit r9b, and a bit scramble circuit r9c. . The bit scramble request circuit r9a is a circuit that designates a request to scramble the random number data output from the random number generation circuit r8 at the timing updated by the update means selected by the random number update trigger selection circuit r6. The bit scramble key generation circuit r9b is used to perform arrangement / transposition of random number data based on the auxiliary random number for generating the bit scramble key generated from the auxiliary random number generation means r19 and the data value from the bit scramble request circuit r9a. This circuit selects a bit scramble table. The bit scramble circuit r9c is a circuit that arranges and transposes bits of random number data based on the bit scramble table selected by the key data designated by the bit scramble key generation circuit r9b. Whether or not to scramble can be selected by the user using the bit scramble request circuit r9a, but the bit scramble key is changed by a random number round end signal S1 output from the random number generation circuit r8. Even if there is the bit scramble request signal S2 output from the bit scramble request circuit 9a, if there is no random number round end signal S1, the bit scramble key is not changed. This makes the probability for each round of random numbers constant.
[0065]
The random number maximum value storage circuit r10 is a circuit for storing the maximum value of the random number period arbitrarily set by the user. For example, if the random number generation range is from 1 to 4095, the user only needs random numbers from 1 to 36. If 36 is set as the maximum value in the circuit r10, random numbers from 1 to 36 can be obtained. It is.
[0066]
The random number maximum value comparison circuit r11 compares the maximum value of the random number cycle arbitrarily set by the user and the random value generated by the random number generation circuit r8 with the output value that the bit scramble circuit r9c has scrambled, and the output value is the maximum. If larger than the value, the random number generation circuit r8 is instructed to generate the next random number. If it is less than the maximum value, it is stored in the random value holding circuit r12.
[0067]
The random value holding circuit r12 holds scrambled random data when the random number is less than or equal to the maximum value of a random number period arbitrarily set by the user. That is, it is a circuit that holds random number data until the maximum period is reached.
[0068]
The random value request circuit r13 makes a request for the user to read random number data, and can also output a request by an external trigger input and information when there is a request as an interrupt signal to the outside. .
[0069]
The random value reading circuit r14 is a circuit for the user to read random number data.
[0070]
The ROM program management area r15 is an area for designating an operating environment setting set by the user for performing operation designation, control, etc. of the random number generator, and is a random number that is the first start value for generating a random number sequence. When it is desired to use the initial value selection constant r15a and the initial value of the random number sequence for generating the data stored at a predetermined RAM address, the RAM address designation for the purpose of sending the data to the random number initial value selection circuit r17 r15b. When the random number initial value is selected as the RAM value by the initialization program, the RAM value at the address indicated by the RAM address designation is stored in the random number initial value selection circuit r17.
[0071]
The software operation r16 indicates an operation for performing a random number update process or a control for loading a predetermined initial value, and is assigned to the random number generator, a fixed value r16a that is a value of the random number generator itself. Operations such as addition / subtraction / multiplication / division based on the ID number r16b which is a unique number for recognizing itself, the RAM value r16c which is the value specified by the RAM address specification r15b, and the data of all addresses in the RAM It consists of a RAM operation value r16d which is a processed value and a RAMr16e which is a data area for program control.
[0072]
The ID number r16b is the same as the chip ID number stored in the ID storage unit c11a described above. The ID of the chip described above identifies the chip itself, and the ID number of the random number generator sets the initial value of the random number for each chip. Therefore, the difference between them is only a difference in specifications, and the actual ID numbers may be different or the same. Accordingly, some of the information data items (a) to (i) indicated by paragraph number 0045 can be used as ID numbers for initial random numbers. The random number initial value selection circuit r17 selects one of a fixed value r16a, an ID number r16b, a RAM value r16c, and a RAM operation value r16d as a random number initial value and loads the initial value to the random number generation circuit r8.
[0073]
The random number initial value storage circuit r18 is a circuit for storing the initial value selected by the random number initial value selection circuit r17 or the random number generated by the auxiliary random number generation means r19 as an initial value. The random number initial value can be updated by the random number initial value storage circuit r18 from the auxiliary random number generation means r19 every time the random number value generated by the random number generation circuit r8 makes a round.
[0074]
The auxiliary random number generation means r19 generates random numbers by means different from the random number generation apparatus.
[0075]
Next, random number generation will be described with reference to FIG. FIG. 13 is a block diagram showing an outline of the auxiliary random number generation means r19.
(1) when there is no external trigger input bus (see Figure 2)
(2) is when there is an external trigger input bus (see Figure 3)
Shows about. As a means of generation
(A) random number generation by CPU command control,
(B) random number generation due to thermal noise,
(C) random number generation by another clock,
(D) Trigger input from outside the chip,
4 cases of random number generation by.
[0076]
(A) Random number generation by instruction control of the CPU uses data obtained by counting information and the like of instructions executed by the CPU (held in the instruction execution count circuit r21) as random numbers.
[0077]
(B) Random number generation by thermal noise uses random noise components such as thermal noise generated from resistors and diodes, and analog noise generated from a thermal noise generation circuit r22 incorporating these thermal noise generators. The component converted into digital data by the A / D conversion circuit r23 is used as a random number.
[0078]
(C) Random number generation using another clock is to generate a random number using a clock different from the clock used in the random number generation device.
[0079]
(D) Random number generation by trigger input from outside the chip is to generate random numbers by trigger input arbitrarily set by the user. The trigger signal input from the trigger input bus is supplied to the external trigger control means r25, and the means r25 performs control such as selection of each input trigger signal and enable / disable.
[0080]
The random numbers generated by the methods (a), (b), (c), and (d) are supplied to the bit scramble key generation circuit r9b or the random number initial value storage circuit r18 as a random number initial value. Become. As a supply method, the above (a), (b), (c), and (d) are appropriately combined.
[0081]
In (c) above, as a clock to be supplied to the counter circuit r24,
When there is no external trigger input bus of (1), a clock source source (s3) having a frequency division ratio different from the clock supplied to each functional block is supplied from the clock generation means c9.
When there is an external trigger input bus of (2), a clock different from the EX terminal is supplied from the OSC terminal. In order to avoid synchronization with a predetermined interval period as a clock to be supplied, for example, a frequency (for example, 11 MHz) different from a frequency (for example, 12 MHz) supplied to the EX terminal is supplied. It goes without saying that it is also good.
[0082]
Next, the bit scramble table will be described with reference to FIG. FIG. 14 is a specific explanatory diagram of the bit scramble setting circuit r9 of the random number generator. The bit scramble table is a bit scramble table indicating a bit replacement pattern (hereinafter referred to as “conversion table” or “conversion pattern” for convenience). The bit arrangement / transposition position is determined based on this conversion table. For example, if the data length is 8 bits and the original arrangement is D0-D1-D2-D3-D4-D5-D6-D7 in order from the least significant bit
(1) D0-D1-D2-D3-D4-D5-D6-D7
(2) D3-D0-D5-D1-D7-D2-D4-D6
The description from (3) to (255) is omitted.
(256) D7-D5-D2-D4-D1-D6-D0-D3
Thus, there are 256 conversion patterns when the original conversion is not performed. FIG. 14A is a schematic image of this situation.
[0083]
However, if the conversion pattern is to be realized by hardware rather than software, the circuit scale increases and the number of gates increases.
[0084]
Therefore, the feature of the bit scramble setting circuit r9 is that by reducing the number of conversion tables, the circuit scale can be reduced and 256 conversion patterns can be secured without causing an increase in the number of gates. FIG. 14B is a schematic image of the principle. The principle will be described below. For convenience, the data length is assumed to be 8 bits.
[0085]
First, 16 kinds of conversion tables are generated by KEY_A (4 bits) of the bit scramble key generation circuit r9b. That is, the first 16 conversion patterns are individually the original patterns. (Temporarily O1-O16)
[0086]
Next, the above 16 original patterns are further individually converted by KEY_B (2 bits). Ie
Since the addition values are from (O1 × 4 ways) to (O16 × 4 ways), a total of 64 conversion patterns are realized. Therefore, the 64 conversion patterns as described above are individually the original patterns. (Temporarily OH1-OH4)
[0087]
Next, similarly to the above, 64 patterns are further individually converted with KEY_C (2 bits). That is, since it is an addition value from (OH1 × 4 ways) to (OH4 × 4 ways), the final summation results in the realization of 256 conversion patterns.
[0088]
Therefore, although 256 conversion tables are originally required, only 24 conversion tables are prepared by the above method, so that 256 conversion patterns are substantially realized, and the circuit scale is reduced.
[0089]
In addition, since the logic circuit of the conversion pattern of the above method can be designed with only a gate circuit without using a shift register, the processing speed for exchanging the next conversion pattern does not require one cycle of the system clock for operating the gaming machine.
[0090]
FIG. 15 is a block diagram showing the internal configuration of the update cycle setting data holding circuit r1 and the update cycle setting circuit r2.
[0091]
Next, the operation of the random number generator will be described in order according to the outline flow shown in FIG. FIG. 16 is a flowchart showing initialization routine processing for setting environment settings for the random number generator to perform a desired operation. When a system reset that initializes the entire gaming machine is input, the initial random number used first
(1) Fixed value of random number generator,
(2) ID number of the random number generator,
(3) RAM value,
(4) RAM operation value,
After the selection of what to use and the setting of the environment for initialization processing such as other internal circuits of the random number generator, the mode is changed to a user mode that can be used by the user, and a user reset is awaited. Note that the above processing is not initialized by a user reset.
[0092]
Next, a description will be given with reference to the outline flow of FIG. FIG. 17 is a flowchart showing an operation setting process for the user to freely read a random number after the random number generator finishes the initialization process shown in FIG. When an initialization of each peripheral device connected by the user and a user reset for returning to the start address of the game control program created by the user are input, a fixed cycle for the interval operation is started. An update trigger condition is set as to whether to use update at regular intervals or manual update (update by software). When manual update is set, random update by software update trigger is performed. Next, when the random number reading timing such as the start sensor input of the gaming machine is determined and the acquisition trigger by software is used, the random number value held in the random number holding circuit is captured and disturbed by accessing the random value request circuit Loaded into the numerical readout circuit. Thereafter, the user performs an application operation such as a lottery process based on the read random number.
[0093]
Next, a description will be given with reference to the outline flow of FIG. FIG. 18 shows an example of a flowchart of random number update and random number read processing of the random number generator. (A) is a random number update process by automatic update (fixed period) and manual update (software), and (b) is an external trigger. 3 is a flowchart showing random number reading processing by an acquisition trigger by software.
[0094]
When the random number is updated, the bit scramble process of the random number value is performed by the bit scramble table indicated by the bit scramble key data. If the random value is updated again. Next, it is determined whether or not the generation of random numbers has been completed, and if it has been completed, it is determined whether or not there is a request for changing the bit scramble, and if there is a request, update processing of the bit scramble key data is performed. Do.
[0095]
The fetching of the random number value means a process of determining whether or not to send the generated random number from the random number holding circuit r12 to the random value reading circuit r14 accessible by the user. When a random number update trigger with a fixed period is used, the random number value is automatically fetched. By selecting whether or not to perform this random number acquisition process, the user can
(1) Whether to use random values automatically generated continuously by the update cycle setting circuit
(2) It is possible to select a game preference for using a random number value updated and read at an arbitrary time.
[0096]
Therefore, in order for the user to actually acquire the random number, the random number value generated by the random number generation device at that time can be acquired by accessing the random value request circuit r13.
[0097]
In addition, the user can freely change the setting of the above operation designation condition for each user reset input
(1) Maximum value setting,
(2) Update trigger condition setting,
Once set, it cannot be changed.
[0098]
Next, FIG. 3 will be described. FIG. 3 is almost the same as the configuration of FIG. 2 showing the embodiment. In FIG. 2, a dedicated signal (s3) is input from the clock generation unit c9 to the random number generator c8. In the configuration of FIG. 3, the random number generator c8 has an input trigger input bus for taking in a trigger signal from the outside of the chip, and an OSC terminal for supplying a different clock in addition to the EX terminal. , Random number request trigger, auxiliary random number request trigger, etc. can be taken in from the outside.
[0099]
Next, FIG. 12 will be described. FIG. 12 is substantially the same as the configuration of FIG. 11, but in the configuration of FIG. 12, an external output control means r20 is further provided, and random number data output from the random value holding circuit r12 is externally input / output by a switch by software operation. It is a block diagram which shows the circuit structure of the random number generation which showed embodiment sent to the means c14. The switch by software operation cannot be accessed or operated by the user. For example, a signal obtained by encrypting a command or a control sequence by a predetermined algorithm is input to the external input / output means c14, and the signal is input by the CPU. It starts when it is recognized. When this switch is activated, the random number data in the random value holding circuit r12 is sent to the external input / output means c14 in real time regardless of the winning state or the gaming state of the chip. That is, all the generated random number data is output, and it is possible to check the uniformity of the appearing random numbers at a third party.
[0100]
Note that the random number value is normally read out in a timely manner when the random number is necessary, so that the random number update content and the random number sequence are not output on the external bus. However, if it is necessary to output all random numbers on the data bus and perform a check, every time the software update trigger is used, the random number value read circuit 14 reads the random number data and the CPU reads all the random number values. It is possible to output to the bus. FIG. 19 shows a flowchart of random number reading processing and random number output processing of the random number generation device irrespective of the winning state.
[0101]
Further, since the random number output from the random number maximum value comparison circuit r11 is not directly connected to the data bus, the random number data does not get on the data bus every time it is updated as in the above or software random number. That is, update control is automatically performed on the bus in the random number generator regardless of the CPU read command or read cycle. Accordingly, the update timing of the random number and the arrangement of the random number sequence (the mathematical formula for generating the random number sequence) cannot be predicted by an unauthorized person.
[0102]
<Description of External Input / Output Unit> Next, the external input / output unit c14 shown in FIGS. 2 and 3 will be described. The external input / output means c14 is for connecting an external device and the chip and inspecting the authenticity of the chip. Enables n-level authentication communication method, and after each level of authentication communication is established, transitions to verification communication method, outputs information inside the chip to the outside, authentication, verification, inspection regardless of the gaming state of the chip Control. Also, the authentication data exchanged during authentication communication and the data during verification communication are all encrypted, and encrypted communication based on random numbers is used for data used in communication, encryption and decryption. The authentication key or the like to be used is different every time communication is performed, making it difficult for an unauthorized person to decipher. There is also a test communication function. The external input / output means c14 monitors the SC terminal and the BRC terminal. When a signal such as a clock is supplied to the BRC terminal, the external input / output means c14 enters a state of waiting for authentication with the external device, and when receiving a predetermined signal from the SC terminal, Authentication control is performed on the received signal.
[0103]
Next, with reference to FIG. 20, FIG. 21, FIG. 22, FIG. 23, FIG. 24 and FIG. 25, the relationship between the contents and method of communication between the gaming machine control chip and the external device will be described.
[0104]
FIG. 20 is a conceptual flowchart relating to the authentication method / collation method. Here, among the external devices, devices called inspection devices and verification devices are used for the SC terminal and the BRC terminal (FIG. 2, FIG. 3 is a device that performs communication by connecting via the external input / output means c14 shown in FIG. Authentication or verification processing by an external device starts from an initialization request for communication start, and requests authentication method / verification method, and then starts each level of authentication or verification communication. When the chip receives an initialization request command for starting communication from an external device, the chip performs initialization (initial communication), requests authentication method / collation method in preparation for authentication communication, and waits for the request. When receiving an authentication method / collation method request from an external device, the chip identifies the authentication method and starts communication in an authentication sequence according to the request. Each time level 1, level 2,..., Level n becomes higher, deeper level authentication or verification is performed. A low level of authentication or verification places restrictions on the content. After each level of authentication or verification communication is started, it is determined whether or not to perform the authentication or verification of that level. If the authentication / collation determination at each level is NG, an initialization request is made to the external device, but if it is OK, a transition is made to the collation communication prepared for each authentication level / collation level.
[0105]
FIG. 21 shows an outline sequence of communication with an external device. Beginning with the TDTY test, the communication with the external device is started through the test of the clock input to the BRC terminal and the detection of the clock input to the BRC terminal. When communication is started between the external device and the chip, first, initial communication is executed. Then, after completing the initial communication, the authentication communication or the test communication is executed. In the authentication communication, the verification communication is executed after the authentication communication at each level is completed.
[0106]
Hereinafter, the contents of the communication outline sequence will be described in detail.
[0107]
<Description of TDTY Inspection> After the system reset is first canceled, a self-terminal loopback inspection using the CPU opcode fetch in the security mode as a trigger is performed at the SC terminal (hereinafter referred to as “TDTY inspection”).
<Inspection of Clock Input to BRC Terminal> Next, when the TDTY inspection is OK, the input condition of the communication clock input from the BRC terminal is monitored and inspected.
[0108]
<Description of Detection of Clock Input to BRC Terminal> Next, the clock input to the BRC terminal is detected, and the clock input is permitted only when the input condition is satisfied. The input clock passes through a protection circuit (not shown) and enters an initial communication standby state.
[0109]
<Description of Initial Communication> Next, when an initial communication request is received from an external device, initialization and clock synchronization are performed. Further, it is determined at which authentication level the authentication is to be performed, and a transition is made to authentication communication after determination. Similarly, when a test communication request is received, a transition is made to test communication for performing a data loopback test.
As contents of initial communication
(1) Communication request
In accordance with the communication request information sent from the external device, the chip determines the content of the communication after the initial.
(2) Authentication communication request: Request of authentication level 1 to n
(3) Test communication request:
(4) Reset request to the external input / output means c14: It is initialized again to the initial communication standby state. When this block reset request is received even during authentication communication or verification communication, the specified functional block of the external input / output means c14 is immediately initialized, and initial communication standby is performed. When the initial communication ends normally, the chip transitions to an authentication communication standby state.
[0110]
<Description of Authentication Communication> The authenticity of the chip is inspected based on the n-level authentication level. After authentication, transition to verification communication. For example, as an example of level authentication
(1) Level 1 authentication (n 1 )), The authentication with the external device is performed only once at the security level 1.
(2) Level 2 authentication (n 2 Is determined m times at security level 2 for authenticity determination with an external device. (M ≧ 1, where n 2 ≧ n 1 )
(3) Level 3 authentication (n 3 ) Is performed m times at security level 3 for authenticity determination with an external device. (M ≧ 2, where n 3 ≧ n 2 )
(4) Level 4 authentication (n 4 ) Is performed m times at security level 4 for authenticity determination with an external device. (M ≧ 2, where n 4 ≧ n 3 )
(5) Level 5 authentication (n 5 ) Is performed m times at security level 5 for authenticity determination with an external device. (M ≧ 2, where n 5 ≧ n 4 )
(6) Level n authentication (n n Is determined m times at security level n. (M ≧ 2, where n n ≧ n 5 )
It can be like this. Note that the greater the number, the greater the security strength. Also, different authentication codes are used at each security level. Also, the number of implementations is appropriately adjusted according to the purpose and application at each authentication level. When the authentication level is low, it is considered preferable that the number of implementations is small so as not to give a clue for analysis.
[0111]
Since the authentication communication is mutual authentication between the external device and the chip, each owns the determination result for the authenticity of the other party. When the authentication determination is NG, the transition to the verification communication is not performed, but when the authentication determination is OK, the external device notifies the chip side that the authentication is OK. Further, if the authentication determination on the chip side is OK, it is possible to shift to the verification communication as it is.
It should be noted that an arbitrary number of valid data bytes is given depending on the authentication level, and the transmission data is rearranged and sent to the external device side according to the position information of the random value obtained from the random number generator for external communication c14c. .
[0112]
<Description of verification communication> If the authentication determination is OK through the authentication communication, a transition is made to verification communication. Various commands can be received from an external device according to each authentication level, and information in the chip corresponding to the command can be returned.
[0113]
FIG. 22 is a block diagram showing a detailed configuration example of the external input / output means (c14 shown in FIGS. 2 and 3). As described above, when a signal such as a clock is supplied to the BRC terminal, the chip enters an authentication waiting state with an external device. When a predetermined signal is received from the SC terminal, the chip performs authentication control on the received signal. However, the external input / output means c14 plays an important role in that case.
[0114]
The external input / output unit c14 includes a transmission unit c14a, a reception unit c14b, an external communication random number generation unit c14c, a chip internal data encryption unit c14d, a chip internal data decryption unit c14e, a data control unit c14f, and a communication control unit c14g. . The external input / output unit c14 controls information necessary for communication, performs hardware arithmetic processing such as encryption / decryption of chip internal data, communication status management, and analysis / execution of authentication commands.
[0115]
Of these means, the data control means c14f and the communication control means c14g are connected to BUS1 (system bus) connected to the CPU. BUS2 is a unique hardware bus in the external input / output unit c14 that is independent of the system bus, and includes a transmission unit c14a, a reception unit c14b, an external communication random number generation unit c14c, a chip internal data encryption unit c14d, and a chip. Internal data decoding means c14e, data control means c14f, and communication control means c14g are all connected to this BUS2.
[0116]
<Explanation of Transmitting Unit> Looking more closely at the inside of the transmitting unit c14a of the external input / output means c14,
(1) P / S (parallel / serial) conversion means,
(2) Transmission timing control means,
(3) scramble means,
(4) Encryption means for external communication,
(5) Multiplexing means,
(6) Frame control means,
(7) TDTY inspection means,
Consists of. The transmission unit is a block that transmits data to an external device.
[0117]
<Description of P / S Conversion Unit> The P / S conversion unit converts the parallel data signal sent from the data control unit c14f via the BUS2 into a serial data signal.
[0118]
<Description of Transmission Timing Control Unit> The transmission timing control unit receives a transmission start request and determines the timing until the encrypted data in the chip is converted from parallel data to serial data by the P / S conversion unit. Control the timing of control and frame control.
[0119]
<Description of scramble means> The scramble means performs scramble processing on the encrypted data in the chip converted into serial data by the P / S conversion means. Combined with the descrambling means described later, it plays a role of enhancing the confidentiality of encryption communication.
[0120]
<Description of External Communication Encryption Unit> The external communication encryption unit encrypts data in a chip before transmission using a predetermined algorithm.
[0121]
<Description of Multiplexing Unit> The multiplexing unit performs multiplexing processing on individual frame lengths having different head codes.
[0122]
<Description of Frame Control Unit> The frame control unit controls several types of frames having different head codes.
[0123]
<Description of TDTY Inspection Unit> The TDTY inspection sends out a predetermined pattern (for example, “1010”, etc.) from the SC terminal and monitors the folded pattern to inspect by SC terminal destruction. The TDTY check is triggered by an opcode fetch cycle output from the CPU after the external system reset is released (security mode). When the TDTY inspection is normally completed, a predetermined pattern (for example, “1010” or the like) is completed with only one transmission, but when the returned data is NG, n times (for example, a maximum of 5 times). Will be retried. If it is NG even after n inspections, a TDTYO signal is generated and the CPU is reset. After completion of the TDTY inspection, the input of the BRC clock terminal is released, and the communication clock input is permitted from the external device. Even if the inspection result is NG, the input of the communication clock is permitted.
[0124]
The signal serially converted by the aforementioned P / S conversion means is scrambled, then encrypted by the external communication encryption means, multiplexed by the multiplexing means, and output from the SC terminal. At this time, the frame is controlled by the frame control means.
[0125]
<Description of Receiving Unit> Looking at the inside of the receiving unit c14b of the external input / output unit c14 in more detail,
(1) Pulse detection means,
(2) Communication clock generation means,
(3) Clock loss detection means,
(4) Hardware reset means,
(5) Decoding means for external communication,
(6) Reception timing control means,
(7) scramble release means,
(8) S / P conversion means,
(9) Frame detection means,
(10) Communication error detection means,
Consists of. The receiving unit is a block that receives data from an external device.
[0126]
<Description of Pulse Detection Unit> The pulse detection unit detects pulses such as a start bit, a stop bit, and a head code of a signal input from the SC terminal.
[0127]
<Description of Communication Clock Generating Unit> The communication clock divides the clock input from the BRC terminal and generates a clock for communication. After resetting, synchronization with received data is performed by the initial pulse at the start of communication. The phase matching pulse is synchronized with the BRC clock.
[0128]
<Description of Clock Loss Detection Unit> The clock loss detection unit detects whether or not a communication clock supplied from an external device is supplied. Communication with the external device starts operation by supplying a clock from the external device to the BRC terminal. Therefore, unless the external device is connected, the BRC terminal is fixed at a level (for example, “H” level is fixed). It is recognized as disconnection and is disabled. When an external device is connected, a communication clock is supplied from the BRC terminal, and when a certain detection condition is satisfied, the disabled state recognized as the clock disconnection is canceled, and the communication is enabled.
[0129]
<Description of Hardware Reset Unit> The hardware reset unit resets each block of the external input / output unit c14 when performing initialization processing such as recovery from communication error so as not to affect the user mode. To do. Note that the P / S conversion means, the transmission timing control means, the scramble means, the external communication encryption means, the multiplexing means, the frame control means, the TDTY inspection means, the pulse detection means of the reception section of the external input / output means c14, Each block of the communication clock generation means, clock disconnection means, external communication decoding means, reception timing control means, scramble release means, S / P conversion means, frame detection means, communication error detection means, and communication control means is reset, The blocks of the external communication random number generation means, the chip internal data encryption means, the chip internal data decryption means, and the data control means are not reset.
[0130]
<Description of Decryption Unit for External Communication> The external communication decryption unit performs a process of decrypting data encrypted by a predetermined algorithm sent from an external device.
[0131]
<Description of Reception Timing Control Unit> The reception timing control unit receives a request to start reception until the S / P conversion unit converts the decoded data sent from the external device from serial data to parallel data. The timing is controlled based on a signal from the frame detection means.
[0132]
<Description of the scramble release means> The scramble release means performs a scramble release process on the data that has been previously scrambled from the decoded data sent from the external device.
[0133]
<Description of S / P Conversion Unit> The S / P conversion unit converts serial data into parallel data.
[0134]
<Description of Frame Detection Unit> The frame detection unit detects a frame having a different frame length depending on each communication. The communication content (authentication level) is determined by this frame length.
[0135]
<Description of Communication Error Detection Unit> The communication error detection unit detects a communication error for accurate data transfer when performing an authentication check, and prevents the following communication error from leaking internal information due to malfunction. Detection is performed.
[0136]
<Description of Communication Error Content> Specific communication errors include the following four errors.
(1) Clock error: This is an error that occurs when the BRC clock is off. While the error occurs, all external input / output means are disabled.
(2) Communication format error: An error in the communication format.
(3) Command error during verification communication: When a transition is made to verification communication, a command is transmitted from an external device. When a code other than a predetermined command is received, all are processed as a command error. As a process when a command error occurs, it is transmitted to an external device.
(4) Verification communication error during user mode: If verification communication is performed during user mode, resetting to the CPU is prohibited, so in verification communication during user mode, when a command is received from an external device Then, a command notifying that the user mode is being used is transmitted to the external device, notifying that the reset to the CPU is impossible, and notifying that communication by hardware of the external input / output means c14 is performed. However, if the received data has caused a communication error, it is notified that there is an abnormality in communication.
[0137]
A signal input from the external device to the BRC terminal is sent to pulse detection means, communication clock generation means, and clock loss detection means. When the clock interruption is detected by the clock interruption detection means, it is sent to the hardware reset means, and a reset signal is sent to each block of the transmission unit / reception part / communication control means of the external input / output means c14 Is done. Based on the BRC signal, the communication clock generating means generates a clock signal, and based on this, the external communication decoding means decodes the signal from the SC terminal. The decoded signal is descrambled by the descrambling means and sent to the S / P conversion means. The S / P conversion means creates a parallel signal in cooperation with the reception timing control means and the frame detection means, and transmits the parallel signal from the BUS2 to the chip side via the data control means c14f. During these transmissions, the communication error detection means monitors signals from the frame detection and S / P conversion means to detect communication errors.
[0138]
<Description of Random Number Generation Unit for External Communication> The random number generation unit for external communication c14c is a random number generation unit provided for communication with an external device, and functions independently of the random number generation device c8. The random number generation method is the same as that of the random number generator c8.
[0139]
<Description of Chip Internal Data Encryption Means> The chip internal data encryption means c14d performs encryption in advance with a predetermined algorithm before transmitting the data inside the chip to an external device. The external communication encryption means functions independently.
[0140]
<Description of Chip Internal Data Decryption Unit> The chip internal data decryption unit decrypts the data in the chip encrypted in advance by a predetermined algorithm. The external communication decoding means functions independently.
[0141]
<Description of Data Control Unit> The data control unit c14f is the data inside the chip sent via the BUS1.
(1) confidential information data,
(2) ID data,
(3) ROM data,
(4) Device information data,
(5) Access information data,
(6) Random number data which is data inside the chip sent via S4,
(7) Steel information data (steal refers to data capture; the same applies hereinafter), which is internal data sent via S5.
Is controlled to send data to the external device, and to send data such as commands from the external device to BUS1.
Further, it also has a buffer for temporarily storing these data, specifically, a register for storing external device data input via the receiving unit c14b, and random number data received by a signal s4 from the random number generator c8. , A register for storing the steal information data received by the signal s5 from the steal information storage means c15, secret information data, ID data, ROM data, device information data, and access information data obtained from other parts of the chip And so on.
The ROM data refers to data stored in the user ROM or boot ROM, and the device information data includes the chip type of the mass production chip / development chip, the CPU type and model number, and the built-in It indicates the type and model number of each device, and the access information data indicates history data of the situation when each built-in device performs access.
[0142]
<Description of Communication Control Unit> The communication control unit c14g performs various controls for mutual authentication between the chip and the external device. FIG. 23 shows a block diagram of the communication control means c14g. The authentication waiting control means, sequence control means, authentication level control means, authentication judgment means, authentication command control means, and communication status control means. Composed.
[0143]
<Description of Authentication Wait Control Unit> The authentication wait control unit performs the first communication process in response to a communication request from an external device, and controls the standby state of the chip itself until the next process request is received from the external device. It is.
[0144]
<Description of Sequence Control Unit> The sequence control unit controls sequences at different authentication levels.
[0145]
<Description of Authentication Level Control Unit> The authentication level control unit performs command control at different authentication levels.
[0146]
<Description of Authentication Determining Unit> The authentication determining unit determines and authorizes commands with different authentication levels.
[0147]
<Description of Authentication Command Control Unit> The authentication command control unit performs control for reading various data in the chip.
[0148]
<Description of Communication Status Control Unit> The communication status control unit stores and controls data of each communication status generated during communication. Possible statuses include checking the parity bit in the received frame, communication error status such as communication format error that occurs when the received data is different from the parity result, status of self-diagnosis information by boot processing, There is a control status of the authentication command.
[0149]
Secret information data, ID data, ROM data, device information data, access information data, random number data, and steal information data inside the chip controlled by the data control means c14f are communication status control means, authentication command control means, authentication determination means. In accordance with the cooperation of the authentication level control means, the sequence control means, and the authentication waiting control means, the chip internal data is sequentially sent to the external device as necessary and according to the authentication procedures of each authentication level. Become.
[0150]
<Description of Steel Information Storage Unit> Next, the steel information storage unit c15 shown in FIGS. 2 and 3 will be described. The steel information storage means c15 stores the information of the data accessed at that time in real time by the CPU accessing the specified area of the data stored in the area specified by the user in the program management area. Is. Further, when the CPU accesses each built-in device, the situation at that time is similarly stored.
[0151]
Next, FIGS. 24 and 25 will be described. FIG. 24 is a flowchart until the information of the area designated by the user is stored in the steel information storage means. FIG. 25 is a flowchart for sending information data in the chip to the external device, and shows a process in which the chip sends information information in the chip when a request for transmission of the information data in the chip is received from the external device. The flowchart shows the operations on the external device side and the chip side in contrast. In this flowchart, description of various error processes that occur during the communication process is omitted. However, for errors that may occur at various stages, error processes such as returning to an appropriate stage are performed.
[0152]
First, as a premise, a steal data storage process starting from the security mode start process and transitioning to the user mode in the operation of the CPU on the chip side will be described with reference to FIG. As described above in the description of the mass-produced chip in FIG. 1, when the chip is booted, it starts from the security mode. When the predetermined boot process is completed and the security check is OK, the mode is changed to the user mode. As one of a series of boot processes in the security mode, “step to read the address (area) specified by the user in the program management area” and “boot the address (area) specified by the user in the program management area” Step for setting as environment setting value of processing "is executed. Here, the “address (area) specified by the user in the program management management area” is the one written in the area starting from “1FA0h” to “1FBFh” in the program management area shown in FIG. Point to. After reading this address (area), it is set as an environment setting value for boot processing. Then, after transitioning to the user mode, it is determined whether or not the CPU has accessed the address (area). When the CPU accesses the address (area), the data on the data bus at that time is stealed and the stealed data is stored in the steal information storage means c15. These processes are performed in cooperation with the CPU, the storage unit c11, the storage monitoring unit c12, and the steel information storage unit c15.
[0153]
Next, a flowchart on the external device side described on the right side of FIG. 25 will be described. The flowchart on the side of the external device described on the right side of FIG. 25 mainly shows the processing from the request for transmitting the chip internal information data to the reception processing. When an external device transmits a request for chip internal information data, it performs a transmission request process to the chip, and when there is a response from the chip, performs a level authentication procedure and clears it, The transmission request process is executed, the reception process and the process of storing the received data in the storage means of the external device are performed. When the reception is completed, the other processes are executed and the process returns. If there is no response from the chip or if the level authentication is not cleared, the process returns to the start point. In addition, if the reception process of the chip internal information data is not completed, the transmission request process is executed again. If the transmission request is made several times and the reception processing of the chip internal information data is not completed, error processing (not shown) is followed.
[0154]
The flowchart on the chip side described on the left side of FIG. 25 is a flowchart on the chip side regarding communication with an external device. If it is determined that there is a request for verification communication from the external device, communication start processing with the external device is executed. If the level authentication can be cleared, the fact is notified to the external device. And it waits for reception of collation communication. When there is a request to retrieve the chip internal information data, the chip internal information data retrieval process is executed, and the data is transmitted to the external device. Thereafter, the process returns to reception of verification communication.
[0155]
As an example of assigning the authentication level to be provided to each institution
(1) Level 1: User A
(2) Level 2: User B
(3) Level 3: Third-party organization A (subordinate)
(4) Level 4: Third Party B (Medium)
(5) Level 5: Third-party organization C (high rank)
………
(6) Level n: Top engine
It seems like.
[0156]
In addition, as an example of the contents of authentication inspection / collation inspection,
(1) Level 1 (User A):
One type of ID number + user specified area information
(2) Level 2 (User B):
Level 1 + 1 type of ID number + user program
(3) Level 3 (Third Party Institution A):
Level 2 + several types of ID numbers + random number data
(4) Level 4 (Third Party B):
Level 3 + all types of ID numbers + device information data
(5) Level 5 (Third party organization C):
Level 4 + access information data
………
(6) Level n (top-level organization):
All chip internal data
It seems like. It should be noted that the number of times authentication is performed at each level corresponds to that described in paragraph number 0110.
[0157]
The above example is merely an example, and various combinations are conceivable for the assignment of the authentication level provided to each institution and the contents to be specifically inspected / verified.
[0158]
Further, in the authenticity inspection of the chip, the level 1 and the level 2 having a low authentication level are not limited to the inspection device or the verification device, and the hall computer may be provided with a function of an authenticity inspection corresponding to these authentication levels. Needless to say.
[0159]
【The invention's effect】
In the present invention, by incorporating a bus / signal line control means having a function of checking a signal output from the external terminal of the chip itself or a signal input to the external terminal, the outputs are short-circuited maliciously (short-circuited). ), And even if a signal that cannot be assumed to be input to the external terminal is input, it is possible to detect these frauds in advance.
[Brief description of the drawings]
FIG. 1 is an operation mode transition diagram of a chip.
FIG. 2 is a functional block diagram of the entire chip.
FIG. 3 is a functional block diagram of the entire chip when external trigger / clock input and random number data can be output to the outside.
FIG. 4 is a specific example showing a memory map of the entire chip.
FIG. 5 is a specific example showing an area in a user ROM.
FIG. 6 is a block diagram of the runaway monitoring means c4.
FIG. 7 is a block diagram of reset / interrupt control means c5.
FIG. 8 is a timing chart example of system reset.
FIG. 9 is a timing chart example of user reset.
FIG. 10 is a timing chart example of NMI and INT interrupts.
FIG. 11 is a block diagram showing a circuit configuration for random number generation.
FIG. 12 is a functional block diagram of a circuit configuration for random number generation when random number data can be output to the outside.
FIG. 13 is a block diagram showing a specific example of auxiliary random number generation means r19.
FIG. 14 is a conceptual explanatory diagram showing a configuration of a bit scramble table.
FIG. 15 is a block diagram showing an internal configuration of an update cycle setting data holding circuit r1 and an update cycle setting circuit r2.
FIG. 16 is a flowchart showing initialization routine processing for setting environment settings for the random number generation device c8 to perform a desired operation;
17 is a flowchart showing an operation setting process for the user to freely read a random number after the random number generator c8 finishes the initialization process of FIG.
FIG. 18 shows a flowchart of random number update and random number read processing of the random number generation device c8.
FIG. 19 is a flowchart of random number reading processing and random number output processing of the random number generation device c8 regardless of the winning state.
FIG. 20 is a conceptual flowchart related to an authentication method / collation method.
FIG. 21 is a schematic sequence of communication with an external device.
FIG. 22 is a block diagram showing a detailed configuration example of an external input / output unit c14.
FIG. 23 is a block diagram showing details of communication control means c14g in external input / output means c14.
FIG. 24 is a flowchart until information on an area designated by a user is stored in a steel information storage unit;
FIG. 25 is a flowchart for sending information data in a chip to an external device. A flowchart showing a process in which a chip transmits information information inside the chip when an external device requests transmission of information data inside the chip is shown by comparing operations on the external device side and the chip side.
FIG. 26 is a block diagram showing a first embodiment for detecting inconsistency for each terminal of the bus / signal line control means c13 of the present invention.
FIG. 27 is a block diagram showing a second embodiment in which a mismatch determination is simultaneously made for a plurality of terminals of the bus / signal line control means c13 of the present invention.
[Explanation of symbols]
c1 Central processing unit (CPU)
c2 timer system
c3 Unauthorized execution prohibition means
c4 Runaway monitoring means
c4a clock selection means
c4b n-bit counter
c4c Runaway monitoring control means
c4d operation mode control means
c4e Control word setting means
c4f output control means
c5 Reset / interrupt control means
c5a noise filter
c5b OR (logical sum) circuit
c5c extension circuit
c5d INT priority control circuit
c6 decoding means
c7 Input / output means
c7a Input / output control means
c7b Function selection means
c8 random number generator
c9 Clock generation means
c10 Security measures
c11 storage means
c11a ID storage means
c11b boot storage means
c11c User storage means
c12 Memory monitoring means
c13 Bus / signal line control means
c13a I / 0 buffer
c13b Expected value setting circuit
c13c switching circuit
c13d switching control circuit
c13e mismatch detection circuit
c13f mismatch judgment circuit
c14 External input / output means
c14a transmitter
c14b receiver
c14c Random number generating means for external communication
c14d Chip internal data encryption means
c14e Decoding means for chip internal data
c14f data control means
c14g communication control means
c15 Steel information storage means
r1 update cycle setting data holding circuit
r1a reference interval cycle designation circuit
r1b constant cycle set value storage circuit
r2 update cycle setting circuit
r2a reference interval cycle generation circuit
r2b reference interval cycle counting circuit
r2c reload timing generation circuit
r3 software update trigger generation circuit
r4 operation start instruction circuit
r5 random number update trigger selection information holding circuit
r6 random number update trigger selection circuit
r7 update control circuit
r8 random number generator
r9 bit scramble setting circuit
r9a bit scramble request circuit
r9b bit scramble key generation circuit
r9c bit scramble circuit
r10 random number maximum value storage circuit
r11 random number maximum value comparison circuit
r12 random number value holding circuit
r13 random number request circuit
r14 random number reading circuit
r15 ROM program management area
r15a random number initial value selection constant
r15b RAM addressing
r16 software operation
r16a fixed value
r16b ID number
r16c RAM value
r16d RAM operation value
r16e RAM
r17 random number initial value selection circuit
r18 random number initial value storage circuit
r19 Auxiliary random number generator
r20 external output control means
r21 instruction execution count circuit
r22 thermal noise generation circuit
r23 A / D converter circuit
r24 counter circuit
r25 External trigger control means
S1 Random number end signal
S2 Bit scramble request signal
S3 Clock source source with a frequency division ratio different from the clock supplied to each functional block
S4 Random number output data that cannot be accessed by the user
S5 Steel information data
BUS1 system bus
BUS2 Unique hardware bus in external input / output means c14

Claims (6)

外部端子の入出力を自らチェックする機能を持ったバス/信号線制御手段と、セキュリティ機能を有し、遊技機に組み込む遊技機制御用チップであって、
前記バス/信号線制御手段は、
制御信号の方向制御や駆動能力の強化をするI/Oバッファと、
所定のデータ値や信号パターン等を設定する期待値設定回路と、
外部端子から入力された信号と、前記期待値設定回路にて設定された所定のデータ値や信号パターン等の出力信号又はチップ内部の信号を外部端子へ出力する各制御信号とを比較し、不一致の検出を行う不一致検出回路と、
前記外部端子へ出力する信号、又は前記期待値設定回路の出力信号のいずれかを選択して前記不一致検出回路へ送出する切換回路と、
該切換回路の出力/切換信号の制御や前記不一致検出回路の検出条件設定の制御を行う切換制御回路と、
前記不一致検出回路から送られてきた外部端子の信号が不一致であるか否かの判定を行う不一致判定回路と
を有し、前記不一致判定回路は、前記信号が一致しなければ、前記遊技機制御用チップのCPUを停止させることを特徴とする遊技機制御用チップ。
A bus / signal line control means having a function of checking the input / output of an external terminal by itself, a security function, and a gaming machine control chip incorporated in a gaming machine,
The bus / signal line control means includes:
An I / O buffer for controlling the direction of the control signal and enhancing the driving capability;
An expected value setting circuit for setting a predetermined data value, signal pattern, etc .;
Compares the signal input from the external terminal with the output signal such as the predetermined data value and signal pattern set by the expected value setting circuit or each control signal that outputs the signal inside the chip to the external terminal, and does not match A mismatch detection circuit for detecting
A switching circuit that selects either the signal output to the external terminal or the output signal of the expected value setting circuit and sends it to the mismatch detection circuit;
A switching control circuit for controlling the output / switching signal of the switching circuit and the detection condition setting of the mismatch detection circuit;
The signal of the external terminal transmitted from the mismatch detection circuit is closed and a mismatch determination circuit for determining whether or not a mismatch, the mismatch determination circuit, if the signal is match, for the game machine control A gaming machine control chip characterized by stopping the CPU of the chip.
外部端子の入出力を自らチェックする機能を持ったバス/信号線制御手段と、セキュリティ機能を有し、遊技機に組み込む遊技機制御用チップであって、
前記バス/信号線制御手段は、
制御信号の方向制御や駆動能力の強化をするI/Oバッファと、
所定のデータ値や信号パターン等を設定する期待値設定回路と、
外部端子から入力された信号と、前記期待値設定回路にて設定された所定のデータ値や信号パターン等の出力信号又はチップ内部の信号を外部端子へ出力する各制御信号とを比較し、不一致の検出を行う不一致検出回路と、
前記外部端子へ出力する信号、又は前記期待値設定回路の出力信号のいずれかを選択して前記不一致検出回路へ送出する切換回路と、
該切換回路の出力/切換信号の制御や前記不一致検出回路の検出条件設定の制御を行う切換制御回路と、
前記不一致検出回路から送られてきた外部端子の信号が不一致であるか否かの判定を行不一致判定回路
を有し、前記信号一致しなければ、その検査対象である外部端子の情報を異常検出信号として外部へ知らせることを特徴とする遊技機制御用チップ。
A bus / signal line control means having a function of checking the input / output of an external terminal by itself, a security function, and a gaming machine control chip incorporated in a gaming machine,
The bus / signal line control means includes:
An I / O buffer for controlling the direction of the control signal and strengthening the driving capability;
An expected value setting circuit for setting predetermined data values, signal patterns, and the like;
Compares the signal input from the external terminal with the output signal such as the predetermined data value and signal pattern set by the expected value setting circuit or each control signal that outputs the signal inside the chip to the external terminal, and does not match A mismatch detection circuit for detecting
A switching circuit that selects either the signal output to the external terminal or the output signal of the expected value setting circuit and sends it to the mismatch detection circuit;
A switching control circuit for controlling the output / switching signal of the switching circuit and the detection condition setting of the mismatch detection circuit;
Have a signal whether Urn line determination mismatch determination circuit not match the external terminal transmitted from the mismatch detection circuit, unless the signal match, the information of the external terminal is its inspected A gaming machine control chip characterized by notifying the outside as an abnormality detection signal .
請求項1に記載した遊技機制御用チップであって、A gaming machine control chip according to claim 1,
前記バス/信号線制御手段を構成するそれぞれの回路は、前記外部端子毎に設けられ、前記不一致検出回路からは当該外部端子に固有の不一致検出信号が出力されることを特徴とする遊技機制御用チップ。Each circuit constituting the bus / signal line control means is provided for each external terminal, and a mismatch detection signal specific to the external terminal is output from the mismatch detection circuit. Chip.
請求項1に記載した遊技機制御用チップであって、A gaming machine control chip according to claim 1,
前記不一致判定回路は、すべての外部端子について共通で一つ設けられ、判定結果が異常となったときには単一の異常検出信号を出力することを特徴とする遊技機制御用チップ。One mismatch detection circuit is provided in common for all external terminals, and a single abnormality detection signal is output when a determination result becomes abnormal.
請求項2に記載した遊技機制御用チップであって、
前記バス/信号線制御手段を構成するそれぞれの回路は、前記外部端子毎に設けられ、前記不一致検出回路からは当該外部端子に固有の不一致検出信号が出力されることを特徴とする遊技機制御用チップ。
A gaming machine control chip according to claim 2,
Each circuit constituting the bus / signal line control means is provided for each external terminal, and a mismatch detection signal specific to the external terminal is output from the mismatch detection circuit. Chip.
請求項2に記載した遊技機制御用チップであって、
前記不一致判定回路は、すべての外部端子について共通で一つ設けられ、判定結果が異常となったときには単一の異常検出信号を出力することを特徴とする遊技機制御用チップ。
A gaming machine control chip according to claim 2,
One mismatch detection circuit is provided in common for all external terminals, and a single abnormality detection signal is output when a determination result becomes abnormal.
JP2002261253A 2002-09-06 2002-09-06 Game machine control chip Expired - Fee Related JP4363829B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002261253A JP4363829B2 (en) 2002-09-06 2002-09-06 Game machine control chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002261253A JP4363829B2 (en) 2002-09-06 2002-09-06 Game machine control chip

Publications (2)

Publication Number Publication Date
JP2004097363A JP2004097363A (en) 2004-04-02
JP4363829B2 true JP4363829B2 (en) 2009-11-11

Family

ID=32261682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002261253A Expired - Fee Related JP4363829B2 (en) 2002-09-06 2002-09-06 Game machine control chip

Country Status (1)

Country Link
JP (1) JP4363829B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4537463B2 (en) * 2008-02-07 2010-09-01 株式会社大都技研 Amusement stand
JP4576484B2 (en) * 2010-06-17 2010-11-10 株式会社大都技研 Amusement stand
JP4955805B2 (en) * 2010-08-23 2012-06-20 株式会社大都技研 Amusement stand
JP7141729B2 (en) * 2020-03-09 2022-09-26 京楽産業.株式会社 game machine
JP7141727B2 (en) * 2020-03-09 2022-09-26 京楽産業.株式会社 game machine
JP7141728B2 (en) * 2020-03-09 2022-09-26 京楽産業.株式会社 game machine

Also Published As

Publication number Publication date
JP2004097363A (en) 2004-04-02

Similar Documents

Publication Publication Date Title
JP4263898B2 (en) Game machine control chip and game machine control method
JP4364292B2 (en) Game machine control chip and game machine control method
EP2248063B1 (en) Method and apparatus for controlling system access during protected modes of operation
US9104894B2 (en) Hardware enablement using an interface
US7779273B2 (en) Booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7774616B2 (en) Masking a boot sequence by providing a dummy processor
US8046574B2 (en) Secure boot across a plurality of processors
US7594104B2 (en) System and method for masking a hardware boot sequence
JP6695805B2 (en) Integrated circuit in which components are activated based on essential features
US8108941B2 (en) Processor, memory, computer system, system LSI, and method of authentication
US20070288738A1 (en) System and method for selecting a random processor to boot on a multiprocessor system
US20090147945A1 (en) Configurable ASIC-embedded cryptographic processing engine
JP4242600B2 (en) Game machine control chip and game machine control method
JPH1040099A (en) Security chip having communication function
JP4226845B2 (en) Game machine control chip and game machine control method
JP4363829B2 (en) Game machine control chip
JP2004038409A (en) Chip for controlling game machine and method for controlling game machine
WO2007059701A1 (en) A system encrypting method adopting a multiple use supplementary single-chip microcomputer
JPH0231256A (en) External memory and information processor using the memory
JP2005160931A (en) Microcomputer for controlling game machine
US8909837B2 (en) Method for executing system management interrupt by using identifiers
JP2002099345A (en) Security chip having communication function
CN117633920A (en) Sensitive data transmission bus architecture, control logic circuit and transmission system
US20020078369A1 (en) Method and system for providing territory control in a computer system
JPH0554139B2 (en)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090603

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090603

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

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

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

Free format text: PAYMENT UNTIL: 20120828

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

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