(57)【要約】      （修正有）【課題】レジスタバンクの切り替えをより簡単に実現することができる遊技機を提供する。【解決手段】遊技機用プロセッサであって、第１のレジスタバンク１３３と、第２のレジスタバンク１３４と、を備え、第１のレジスタバンク１３３及び第２のレジスタバンク１３４それぞれが、スタックポインタレジスタを有する、遊技機用プロセッサであって、遊技機用プロセッサは、さらに、ユーザが使用可能な領域である記憶装置の使用領域内及びユーザが使用不可な領域である記憶装置の使用領域外を有し、使用領域内及び使用領域外それぞれにおいてプログラムを記憶した記憶装置を備え、第１のレジスタバンク１３３のスタックポインタレジスタは、使用領域内のプログラムで用いられ、第２のレジスタバンク１３４のスタックポインタレジスタは、使用領域外のプログラムで用いられる。【選択図】図１
2019141675.tif 000002
【特許請求の範囲】
【請求項１】
遊技機用プロセッサであって、
第１のレジスタバンクと、
第２のレジスタバンクと、
を備え、
前記第１のレジスタバンク及び前記第２のレジスタバンクそれぞれが、スタックポインタレジスタを有する、遊技機用プロセッサ。
【請求項２】
前記遊技機用プロセッサは、さらに、ユーザが使用可能な領域である記憶装置の使用領域内及び当該ユーザが使用不可な領域である記憶装置の使用領域外を有し、前記使用領域内及び前記使用領域外それぞれにおいてプログラムを記憶した記憶装置を備え、
前記第１のレジスタバンクのスタックポインタレジスタは、前記使用領域内のプログラムで用いられ、前記第２のレジスタバンクのスタックポインタレジスタは、前記使用領域外のプログラムで用いられる、請求項１に記載の遊技機用プロセッサ。
【請求項３】
現在利用されているレジスタバンクを示すＲＢレジスタをさらに備え、
前記使用領域外のプログラムを実行するとき、前記ＲＢレジスタの値を前記第２のレジスタバンクを示す値に変更し、前記使用領域外のプログラムから前記使用領域内のプログラムに実行を移すとき、前記ＲＢレジスタの値を前記第１のレジスタバンクを示す値に変更する、請求項１又は２に記載の遊技機用プロセッサ。
【請求項４】
ＮＭＩ割込みの許可又は禁止を示すフラグを記憶する回路をさらに備え、前記使用領域外のプログラムを実行するとき、前記回路に前記ＮＭＩ割込みの禁止を示すフラグを設定し、前記使用領域内のプログラムを実行するとき、前記回路に前記ＮＭＩ割込みの許可を示すフラグを設定する、請求項１ないし３のいずれか一つに記載の遊技機用プロセッサ。
【請求項５】
請求項１ないし４のいずれか一つに記載のプロセッサを用いた遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサに関する。
【背景技術】
【０００２】
複数のレジスタバンクを有するプロセッサが知られている。従来のプロセッサのレジスタバンクそれぞれは、スタックポインタ（ＳＰ）レジスタを有しておらず、複数のレジスタバンク全体で１つのＳＰレジスタが用いられている。
【０００３】
従来の２つのレジスタバンクを持つプロセッサにおいて、ＣＡＬＬ命令などの処理を実行するときに、ＣＡＬＬされた処理で第１のレジスタバンクから第２のレジスタバンクを選択してサブルーチンを実行し、ＣＡＬＬされた処理から元の呼び出し元の処理に戻るＲＥＴＵＲＮ命令を実行する直前で、第２のレジスタバンクから第１のレジスタバンクを選択して利用する。その際、ＣＡＬＬされた処理を開始するとき、ＳＰレジスタの値を他の記憶領域に退避し、ＲＥＴＵＲＮ命令を実行するときに、ＣＡＬＬ命令を開始したときに退避した値をＳＰレジスタに復帰させる必要がある。
【０００４】
ＳＰレジスタの値の退避及び復帰に関する処理は、プロセッサを利用するユーザであるプログラムの作成者が準備する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
レジスタバンクの切り替えをより簡単に実現する。
【課題を解決するための手段】
【０００６】
複数のレジスタバンクそれぞれがＳＰレジスタを有するプロセッサを提供する。
【０００７】
本発明によるプロセッサの実施例は、第１のレジスタバンクと、第２のレジスタバンクとを備え、前記第１のレジスタバンク及び前記第２のレジスタバンクそれぞれが、スタックポインタレジスタを有することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施例による装置を示す。
【図２】図２は、遊技機で用いられる記憶装置のメモリマップの例を示す。
【図３】図３は、従来のプロセッサコアによる処理フローを示す。
【図４】図４は、本発明による実施例のレジスタバンクを示す。
【図５】図５は、本発明のプロセッサコアによる処理フローを示す。
【図６】図６は、フラグＩＦＦ及びＮＭＩＥＮを用いたプロセッサコアの例を示す。
【発明を実施するための形態】
【０００９】
プロセッサコアの概要
図１は、本発明の実施例によるマイコンにおけるプロセッサコアの概要を示す。プロセッサコア１００は、外部入力ユニット１０５、状態制御ユニット１１０、中央制御ユニット１１５、レジスタユニット１２０、算術論理演算装置（ＡＬＵ）１４０、リードデータ（ＤＩ）１４５、ライトデータ（ＤＯ）１５０、データバス１５５を有する。外部入力ユニット１０５は、外部信号を受信し、状態制御ユニット１１０及び中央制御ユニット１１５に提供する。状態制御ユニット１１０は、中央制御ユニット１１５との情報入出力を制御する。中央制御ユニット１１５は、リードデータ（ＤＩ）１４５より入力されたオペコード（命令）を命令デコーダ１１７によってデコードした結果によりＡＬＵ１４０を制御する。中央制御ユニット１１５は、さらに、デコードした結果によりレジスタユニット１２０の各レジスタから必要な情報を取得や更新の制御を行う。
【００１０】
レジスタユニット１２０は、プログラムカウンタ（ＰＣ）レジスタ１２２、インタラプト（Ｉ）レジスタ１２４、リフレッシュ（Ｒ）レジスタ１２６、現在使用中のレジスタ群（レジスタバンク）を示すＲＢレジスタ１２８、宛先セレクタポート１３０、宛先バンクセレクタ１３２、第１のレジスタバンク１３３、第２のレジスタバンク１３４、送信元バンクレジスタ１３５、送信元セレクタポートＡ１３６、送信元セレクタポートＢ１３７及びアドレスポート１３８を有する。
【００１１】
遊技機におけるプロセッサコアについて
遊技機メーカであるユーザは、遊技機制御用プログラムを作成し、プロセッサコアを実装したマイクロコンピュータに記憶させる。これにより、遊技機は、プログラムに基づいて動作する。一方で、パチンコやパチスロなどの遊技機のマイクロコンピュータにおいて、遊技機における不正などを防止するために遊技機の検査が検査用プログラムを用いて実施される。
【００１２】
記憶装置は、ユーザが遊技機制御プログラムに使用可能なＲＯＭとワークエリアとして使用されるＲＡＭが含まれる使用可能領域（使用領域内）と、ユーザの検査用プログラム格納されるＲＯＭと検査用プログラムがワークエリアとして使用するＲＡＭが含まれ遊技機制御プログラムの使用が不可な使用領域外とに区別される。遊技機制御用プログラムは、使用領域外のＲＡＭを更新することがでない。検査用プログラムは、使用領域内のＲＡＭを更新することができない。(規則で定まっている)
上記遊技機制御プログラム、検査用プログラムのワークエリアにはプログラム実行時の演算のためのワークエリアの他にレジスタやサブルーチンＣＡＬＬ時の復帰アドレスを格納するスタックエリアも含まれる。
【００１３】
記憶装置は、図１において、図示されていないが、データバス１５５を含むバスを介してプロセッサコア１００に接続される。図２は、遊技機で用いられる記憶装置のメモリマップの例を示す。アドレス００００ｈからＸＸＸＸ1ｈまでのＹ1バイトは、ユーザプログラムエリア２０５であり、アドレスＸＸＸＸ2ｈからＸＸＸＸ3ｈまでのＹ2バイトは、ユーザデータエリア２１０である（下付文字が付されたＸは、１桁以上の整数及び／又は文字を意味し、例えば、１桁分の値は０−９及びＡ〜Ｆとすることができる。下付文字が付されたＹは、１桁以上の整数を意味し、例えば、Ｙは、０以上の整数とすることができる。以下、同様とする）。ユーザプログラムエリア２０５には、遊技機制御用プログラムが記憶され、ユーザデータエリア２１０には、遊技機制御用プログラムが参照するデータが記憶されている。ユーザプログラムエリア２０５及びユーザデータエリア２１０のメモリは、リードオンリーメモリである。
【００１４】
アドレスＸＸＸＸ7ｈからＸＸＸＸ8ｈまでのＹ4バイトは、第１のユーザＲＡＭのエリア２２５であり、アドレスＸＸＸＸ9ｈからＸＸＸＸ10ｈまでのＹ５バイトは、第２のユーザＲＡＭのエリア２３０である。第１のユーザＲＡＭのエリア２２５及び第２のユーザＲＡＭのエリア２３０は、遊技機制御用プログラムが実行されているときに用いられるワークエリアである。第１のユーザＲＡＭのエリア２２５及び第２のユーザＲＡＭのエリア２３０のメモリは、ランダムアクセスメモリである。
【００１５】
遊技機制御プログラムが実行されると、制御プログラムとともに、割込みプログラムも実行される。したがって、第１のユーザＲＡＭのエリア２２５及び第２のユーザＲＡＭのエリア２３０は、ワークエリアとして制御プログラムや、割込みプログラムに用いられるとともに、レジスタの情報の退避や、サブルーチン、割込み処理の復帰アドレスを一時的に記憶するスタックエリアとしても用いられる。ユーザプログラムエリア２０５、ユーザデータエリア２１０、第１のユーザＲＡＭのエリア２２５及び第２のユーザＲＡＭのエリア２３０は、遊技機制御プログラムによって用いられる使用領域内に対応する。
【００１６】
アドレスＸＸＸＸ5ｈからＸＸＸＸ6ｈまでのＹ9バイトは、外部プログラムエリア２２０である。外部プログラムエリア２２０には、遊技機における動作を検査する検査用プログラムが記憶されている。外部プログラムエリア２２０のメモリは、リードオンリーメモリである。
【００１７】
アドレスＸＸＸＸ11ｈからＸＸＸＸ12ｈまでのＹ6バイトは、外部ユーザＲＡＭのエリア２３５である。外部ユーザＲＡＭのエリア２３５は、検査用プログラムが実行されているときに用いられるワークエリアであり、レジスタの情報の退避や、サブルーチン、割込み処理の復帰アドレスを一時的に記憶するスタックエリアとしても用いられる。外部ユーザＲＡＭのエリア２３５のメモリは、ランダムアクセスメモリである。
【００１８】
外部プログラムエリア２２０及び外部ユーザＲＡＭのエリア２３５は、遊技機制御プログラムによって用いられず、検査用プログラムに用いられる使用領域外に対応する。
【００１９】
上記のとおり、使用領域内のメモリエリアと使用領域外のメモリエリアとを準備することによって、それぞれのエリアで使用領域を独立させることができる。すなわち、使用領域内において遊技機制御プログラムが実行され、使用領域外において検査用プログラムが実行され、遊技機制御プログラムと検査用プログラムは互いに干渉させない必要がある。これに関し、遊技機制御プログラムから検査用プログラムにプログラムの実行が移動したとき、スタックポインタの値を使用領域内に対応する値から使用領域外に対応する値に切り替える必要がある。切り替えを行わない場合、使用領域外で用いられるサブルーチンコールやレジスタの退避等のスタックを更新する操作によって、使用領域内に配置されているスタック領域や他のＲＡＭ領域が更新されてしまうからである。サブルーチンや割込み動作が規則正しく動作していれば、スタック以外の領域は更新されないが、プログラムミスや暴走によりスタックの領域以外のＲＡＭ領域が更新される可能性がある。
【００２０】
従来技術
図１に示したプロセッサコアは、本発明のものであり、従来のプロセッサコアは、レジスタユニット１２０のプログラムカウンタ（ＰＣ）レジスタ１２２、インタラプト（Ｉ）レジスタ１２４、リフレッシュ（Ｒ）レジスタ１２６及びＲＢレジスタ１２８と並んでスタックポインタレジスタを有する。以下、図３を用いて従来のプロセッサコアによる処理を説明する。
【００２１】
図３は、従来のプロセッサコアによる処理フローを示す。処理は、記憶装置の使用領域内を用いて実行される処理３０２と記憶装置の使用領域外を用いて実行される処理３５２とを含む。
【００２２】
まず、プロセッサコアによって実行される使用領域内を用いた処理３０２から開始する。始めに、アキュムレータレジスタＡ及びフラグレジスタＦが退避（セーブ）される（ステップ３０４）。命令としては、ＰＵＳＨ  ＡＦが実行される。（この命令を実行する意味は後のＬＤ  （ａａａ）、ＳＰを実行するとフラグレジスタＦの内容が変化するため、フラグレジスタＦの内容を退避する必要がある）割込みを禁止する（ステップ３０６）。命令としては、ＤＩが実行される。ＤＩ命令により、マスカブル割込み処理が禁止される。使用領域内を用いた処理３５２を呼び出す（ステップ３０８）。命令としては、ＣＡＬＬ  ｘｙｚ（ｘｙｚは記憶装置の領域外を用いて実行される処理、例えば、検査用プログラムによる処理）が実行される。これにより、使用領域外を用いて実行されるサブルーチンが呼び出され、サブルーチンに実行が移る。
【００２３】
処理の呼び出しに応じて、プロセッサコアによって実行される使用領域外を用いた処理３５２を開始する。スタックポインタが退避される（ステップ３５４）。命令としては、ＬＤ  （ａａａ）、ＳＰが実行される（ａａａは領域外の退避先のアドレスを示す）。使用領域外のアドレスを指定するスタックポインタを設定する（ステップ３５６）。命令としては、ＬＤ  ＳＰ、ｍｎが実行される（ｍｎは、使用領域外のアドレスを示す）。全てのレジスタ（ＢＣ、ＤＥ、ＨＬ、ＩＸ、ＩＹレジスタ）を退避する（ステップ３５８）。命令としては、ＰＵＳＨ  ＡＬＬが実行される。検査用プログラムなどによる処理が実行される（ステップ３６０）。ステップ３６０において、プロセッサコアは、記憶装置の使用領域外を用いて処理を実行する。その後、退避したレジスタの情報に基づいて全てのレジスタを復帰させる（ステップ３６２）。命令としては、ＰＯＰ  ＡＬＬが実行される。退避したスタックポインタの情報に基づいてスタックポインタを復帰させる（ステップ３６４）。ＬＤ  ＳＰ、（ａａａ）が実行される。ステップ３０８に処理を返す（ステップ３６６）。これにより、使用領域内を用いるプログラムの処理に復帰する。命令としては、ＲＥＴが実行される。
【００２４】
命令が返されると、割込みの許可を行う（ステップ３１０）。命令としては、ＥＩが実行される。ＥＩ命令により、ステップ３０６において禁止されていたマスカブル割込み処理が許可される。退避したＡレジスタ及びＦレジスタの情報に基づいて、それらレジスタを復帰させる（ステップ３１２）。命令としては、ＰＯＰ  ＡＦが実行される。処理が終了する（ステップ３１４）。
【００２５】
上記処理ではＤＩ命令を実行してもＮＭＩ処理は禁止できないため、ＮＭＩによる割込み処理は実行されてしまう。このため、スタックポインタの領域外への変更を行わないと割込み時のスタックは領域内のＲＡＭを使用することとなる。また、ＲＡＭエリアは限りがあるため、領域内の呼出し側の処理がサブルーチンのネストをしてスタック領域が少なくなった時点でＣＡＬＬ命令を実行すると呼びだされた領域外処理でさらにサブルーチンＣＡＬＬなどによりスタックのネストが深くなると、スタックの領域がオーバーしたり、プログラムの暴走により、領域内のスタックやワークエリアが更新されてしまう恐れがある。さらに、スタックに全てのレジスタをセーブするとスタックエリアを使うためスタック領域を多量に確保しておく必要があり、遊技機制御に使うワークエリアが少なくなる。
【００２６】
したがって、上記の処理フローによって、記憶装置の使用領域内及び使用領域外のワークエリアとスタックエリアを分離することにより、割込み処理による、各領域への影響を少なくしていた。
【００２７】
レジスタバンク
図４は、本発明による実施例のレジスタバンクを示す。図４には、図１に示した第１のレジスタバンク１３３及び第２のレジスタバンク１３４が示されている。第１のレジスタバンク１３３は、表レジスタ群４００と裏レジスタ群４２０を有する。表レジスタ群４００は、Ｑレジスタ４０１、Ｕレジスタ４０２、Ａレジスタ４０３、Ｆレジスタ４０４、Ｂレジスタ４０５、Ｃレジスタ４０６、Ｄレジスタ４０７、Ｅレジスタ４０８、Ｈレジスタ４０９、Ｌレジスタ４１０、ＩＸレジスタ４１１、ＩＹレジスタ４１２及びＳＰレジスタ４１３を有する。
【００２８】
裏レジスタ群４２０は、Ｑ’レジスタ４２１、Ｕ’レジスタ４２２、Ａ’レジスタ４２３、Ｆ’レジスタ４２４、Ｂ’レジスタ４２５、Ｃ’レジスタ４２６、Ｄ’レジスタ４２７、Ｅ’レジスタ４２８、Ｈ’レジスタ４２９、Ｌ’レジスタ４３０、ＩＸ’レジスタ４３１及びＩＹ’レジスタ４３２を有する。
【００２９】
第２のレジスタバンク１３４は、第１のレジスタバンク１３３と同様に、表レジスタ群４４０及び裏レジスタ群４６０を有する。表レジスタ群４４０及び裏レジスタ群４６０は、第１のレジスタバンク１３３の表レジスタ群４００及び裏レジスタ群４２０と同様の構成である。従来のプロセッサコアは、各レジスタバンクにスタックポインタレジスタを有しておらず、プロセッサコアに１つのスタックポインタレジスタを配置していた。本発明は、図４からも理解されるように、各レジスタバンクにおいてスタックポインタ４１３、４５３を備えている。
【００３０】
上記実施例において、２つのレジスタバンクを有する実施例を説明したが、他の実施例において、レジスタバンクは、３以上であってもよい。
【００３１】
本発明のプロセッサコアにより処理フロー
【００３２】
図５は、本発明のプロセッサコアによる処理フローを示す。処理は、記憶装置の使用領域内を用いて実行される処理５０２と記憶装置の使用領域外を用いて実行される処理５５２とを含む。
【００３３】
まず、プロセッサコアによって実行される使用領域内を用いた処理５０２から開始する。始めに、プロセッサコア１００は、使用するレジスタバンクを第１のレジスタバンク１３３から第２のレジスタバンク１３４に切り替える（ステップ５０４）。具体的には、プロセッサコア１００は、使用するレジスタバンクを示す情報を保持するＲＢレジスタ１２８の情報が第１のレジスタバンクから第２のレジスタバンクを示すように変更する。これにより、宛先バンクセレクタ１３２は、ＲＢレジスタ１２８の情報に基づいて、書き込み先のレジスタバンクが第１のレジスタバンク１３３であるか第２のレジスタバンク１３４であるかを決定する。送信元バンクレジスタ１３５は、宛先バンクセレクタ１３２と同様に、読み込み先のレジスタ群を決定する。
【００３４】
割込みを禁止する（ステップ５０６）。ＤＩ命令により、マスカブル割込み処理が禁止される。使用領域内を用いた処理５５２を呼び出す（ステップ５０８）。記憶装置の領域外を用いて実行される処理、例えば、検査用プログラムによる処理が実行される。これにより、使用領域外を用いて実行されるサブルーチンが呼び出され、サブルーチンに実行が移る。
【００３５】
処理の呼び出しに応じて、プロセッサコアによって実行される使用領域外を用いた処理５５２を開始する。使用領域外のアドレスを指定するスタックポインタを設定する（ステップ５５６）。命令としては、ＬＤ  ＳＰ、ｍｎが実行される（ｍｎは、使用領域外のアドレスを示す）。検査用プログラムなどによる処理が実行される（ステップ５６０）。ステップ５６０において、プロセッサコアは、記憶装置の使用領域外を用いて処理を実行する。ステップ５０８に処理を返す（ステップ５６６）。これにより、使用領域内を用いるプログラムの処理に復帰する。命令としては、ＲＥＴが実行される。
【００３６】
命令が返されると、割込みの許可を行う（ステップ５１０）。ＥＩ命令により、ステップ３０６において禁止されていたマスカブル割込み処理が許可される。プロセッサコア１００は、使用するレジスタバンクを第２のレジスタバンク１３４から第１のレジスタバンク１３３に切り替える（ステップ５１２）。具体的には、プロセッサコア１００は、ステップ５０４と同様に、使用するレジスタバンクを示す情報を保持するＲＢレジスタ１２８の情報が第１のレジスタバンクから第２のレジスタバンクを示すように変更する。処理が終了する（ステップ５１４）。
【００３７】
各レジスタバンクにスタックポインタを設けることによって、それぞれのレジスタを選択的に退避及び復帰させる必要がなくなる。さらに、レジスタバンクの切り替えによって、レジスタを、使用領域内を用いた処理及び使用領域外を用いた処理のそれぞれのために切り替えることができる。これにより、本発明は、プログラムの作成量を削減することができる。
【００３８】
割込み処理の制御
【００３９】
使用領域外のプログラムが実行されている場合、割込み処理の禁止を行う必要がある。使用領域外のプログラムが実行されているときに、使用領域内で記憶されている割込み処理のプログラムが実行されると、割込み処理のプログラムは、使用領域内のワークメモリにアクセスし、メモリを更新してしまうからである。例えば、プロセッサ装置としてよく用いられるＺ８０プロセッサのノンマスカブル割込み処理（ＮＭＩ割込み処理）が実行されると、００６６ｈ（図２において、アドレス「００６６ｈ」は、ユーザプログラムエリア２０５であると仮定する）のメモリ領域が参照されてしまうことから、使用領域外のプログラムの実行中に、ＮＭＩ割込み処理が実行されると、使用領域内であるユーザプログラムエリア２０５が参照されてしまう。
【００４０】
割込み処理は、図３及び５で示したとおり、従来技術及び本発明の実施例において、ＤＩ命令によって、マスク可能な割込み処理（ＩＮＴ割込み処理）の実行を禁止することができる。しかしながら、ＤＩ命令では、ＩＮＴ割込み処理の実行を禁止することはできるが、ノンマスカブル割込み処理（ＮＭＩ割込み処理）の実行を禁止することはできない。
【００４１】
割込み処理の制御の例としては、レジスタや記憶装置にノンマスカブル割込み許可フラグを設けてもよい。プロセッサコア１００は、許可フラグを確認し、ノンマスカブル割込み処理の実行を許可しているか否かを判定する。これにより、プロセッサコア１００は、ノンマスカブル割込み処理の実行の許可及び禁止を制御することができる。
【００４２】
割込み処理の制御の他の例としては、プロセッサコアの外部回路がＮＭＩの受付信号を制御することによって、ＮＭＩ割込み処理の実行を禁止することができる。
【００４３】
プロセッサ装置としてよく用いられるＺ８０プロセッサの割込み処理には割込みマスク可能な割込み処理（ＩＮＴ割込み処理）とノンマスカブル割込み処理（ＮＭＩ割込み処理）が実行可能である。ＩＮＴ割込み処理の実行の許可及び禁止を制御するために、割込み制御フラグＩＦＦ１とＩＦＦ２が用いられている。ＩＦＦ１はプロセッサのＩＮＴ割込み処理の禁止及び許可を制御するために用いられる。
【００４４】
ＩＦＦ２は、割込み処理の禁止命令（ＤＩ命令）及び許可命令（ＥＩ命令）が実行されると、ＩＦＦ１と同じ値が設定される。具体的には、ＤＩ命令により、ＩＦＦ１＝ＩＦＦ２＝０となり割込み処理の実行が禁止され、ＥＩ命令により、ＩＦＦ１＝ＩＦＦ２＝１となり割込み処理の実行が許可される。また、プロセッサのリセット及び割込み（ＩＮＴ割込み）処理が発生すると、ＩＦＦ１＝ＩＦＦ２＝０となり、割込み処理の実行が禁止される。
【００４５】
プロセッサのＮＭＩ割込み処理が発生したとき、ＩＦＦ１＝０となり割込み処理の実行が禁止され、ＩＦＦ２の状態は変化させない。これにより、ＩＦＦ２の値は、ＮＭＩ割込み処理前のＩＦＦ１の値を保持する。ＮＭＩ割込み処理が終了するとき、ＲＥＴＮ命令の実行によりＩＦＦ２の値をＩＦＦ１へコピーする操作が行われる。これにより、ＮＭＩ割込み処理が発生したときのプロセッサの割込み処理の状態が、ＩＮＴ割込み処理が禁止（ＩＦＦ１＝０）であるか、割込み処理が許可（ＩＦＦ１＝１）であることを示す値としてＩＦＦ２に保持される。ＮＭＩ割込み処理から復帰するとき、ＲＥＴＮ命令の実行により、ＩＦＦ１にＩＦＦ２の値がコピーされ、ＮＭＩ割込み処理の発生前の割込み状態へもどすことができる。
【００４６】
本発明による実施例は、ＩＮＴ割込み処理の禁止及び許可の制御に加え、ＮＭＩ割込み処理の禁止及び許可を制御するためのノンマスカブル割込み許可フラグ（ＮＭＩＥＮフラグ）を有する。
【００４７】
図６は、フラグＩＦＦ及びＮＭＩＥＮを用いたプロセッサコアの例を示す。図６は図１のプロセッサコアに示したものの割込み制御とレジスタバンク切替えの詳細である。
中央制御ユニット１１５は命令フェッチを行うと命令デコーダ１１７により命令を解析し、割込み制御に関する命令をデコードすると結果を外部入力ユニット１０５（６０５）内の割込み制御回路６４０に通知し、バンク切替えに関する命令をデコードするとレジスタユニット１２０内のRB制御回路６５５に結果を通知する。
割込み制御回路６４０は命令デコーダ１１７からの各命令のデコード結果（６４１〜６４７）を受けＩＦＦ１回路６２０及びＩＦＦ２回路６２５及び割込み制御回路６３５のセット／リセットを行う。制御回路６３５は、ノンマスカブル割込み許可フラグ（ＮＭＩＥＮフラグ）を有する。また、割込み制御回路６４０は、外部から割込み信号（ＩＮＴ信号及びＮＭＩ信号）を受信し、当該割込み信号に基づく割込み指示６４１を中央制御ユニット１１５に送信する。
外部入力ユニット１０５（６０５）は、さらに、ＩＮＴ用入力制御回路６１０、ＮＭＩ用入力制御回路６３０備える。ＩＮＴ用入力制御回路６１０は通過情報制御信号としてＩＦＦ１回路６２０に接続されＩＦＦ１回路６２０の状態によってＩＮＴ信号の入力に対し通過可否の制御を行う。またＮＭＩ用入力制御回路６３０は通過制御信号として割込み制御回路６３５に接続され、割込み制御回路６３５の状態によってＮＭＩ信号の入力に対して通過可否の制御を行う。
ＩＮＴ制御回路、ＮＭＩ制御回路は、例えば、トライステートバッファ等の回路で通過信号に対する制御信号（０／１）により通過信号を通過させる（制御信号＝１）か、通過させない（制御信号＝０）かの制御を行う。
ＩＦＦ１回路６２０、ＩＦＦ２回路６２５及び割込み制御回路６３５は、例えば、フリップフロップ回路とすることができるが、これは例示であり、少なくとも１ビットの情報を保持できる回路であればよい。
【００４８】
外部入力ユニット６０５は、中央制御ユニット１１５からＥＩ命令を受信し、ＩＦＦ１＝ＩＦＦ２＝１とすることにより、プロセッサコアをＩＮＴ割込み処理の許可状態にする。また、外部入力ユニット６０５は、中央制御ユニット１１５からＤＩ命令を受信し、ＩＦＦ１＝ＩＦＦ２＝０とすることにより、プロセッサコアをＩＮＴ割込み処理の不許可状態にする。外部入力ユニット６０５は、ＩＮＴ信号を受信すると、ＩＦＦ１回路６２０の値が「１」であることに応じて、中央制御ユニット１１５に割込み指示６４１を行う。ＩＮＴ用入力制御回路６１０は、ＩＮＴ信号及びＩＦＦ１フラグの値が共に「１」の場合に、ＩＮＴ割込みを受け付けるように制御する。中央制御ユニット１１５は、割込み指示６４１に応じて、ＩＮＴ割込み処理を行う。ＩＮＴ割込み処理が終了すると、中央制御ユニット１１５は、ＲＥＴＩ命令６４４を外部入力ユニット６０５に送信し、外部入力ユニット６０５はＩＮＴ割込み処理を終了する。外部入力ユニット６０５は、ＩＮＴ信号を受信しても、ＩＦＦ１回路６２０の値が「０」であることに応じて、中央制御ユニット１１５にＩＮＴ割込み処理の指示６４１を行わない。
【００４９】
外部入力ユニット６０５は、ＮＭＩ信号を受信すると、割込み制御回路６３５の値が「１」であることに応じて、中央制御ユニット１１５に割込み指示６４１を行う。ＮＭＩ用入力制御回路６３０は、ＮＭＩ信号及びＮＭＩＥＮフラグの値が共に「１」の場合に、ＮＭＩ割込みを受け付けるように制御する。中央制御ユニット１１５は、割込み指示６４１に応じて、ＮＭＩ割込み処理を行う。ＮＭＩ割込み処理が終了すると、中央制御ユニット１１５は、ＲＥＴＮ命令６４５を外部入力ユニット６０５に送信し、外部入力ユニット６０５はＮＭＩ割込み処理を終了する。外部入力ユニット６０５は、ＮＭＩ信号を受信しても、割込み制御回路６３５の値が「０」であることに応じて、中央制御ユニット１１５にＮＭＩ割込み処理の指示６４１を行わない。
【００５０】
レジスタバンクの切り替え及び割込み制御回路に関する命令
中央制御ユニット１１５によるレジスタバンクの切り替えに関する実施例をより具体的に説明する。中央制御ユニット１１５が、ＣＡＬＬＥＸ命令６４６をフェッチすると、命令の実行を使用領域内から使用領域外に移し、ＲＥＴＥＸ命令６４７をフェッチすると、命令の実行を使用領域外から使用領域内に移す。
【００５１】
図６を再度参照すると、中央制御ユニット１１５が命令コードをフェッチすると命令デコーダが解析しデコード結果（６４２〜６４７）を、外部入力ユニット６０５及びレジスタユニット１２０に送信する。外部入力ユニット６０５は、ＣＡＬＬＥＸ命令のデコード結果６４６を受信したことに応じて、割込み制御回路６３５の値を「０」に設定する。さらに、レジスタユニット１２０がＣＡＬＬＥＸ命令のデコード結果６４６を受信したことに応じて、ＲＢ制御回路６５５は、ＲＢレジスタの値を「１」に設定する。宛先バンクセレクタ１３２及び送信元バンクレジスタ１３５は、ＲＢレジスタの値が「１」であることに応じて、利用するレジスタバンクが第２のレジスタバンク１３４であることを特定する。これにより、記憶装置において、使用領域外が用いられるとき、第２のレジスタバンク１３４における各レジスタにおいて、情報の取得及び設定が行われる。
【００５２】
外部入力ユニット６０５は、ＲＥＴＥＸ命令のデコード結果６４７を受信したことに応じて、割込み制御回路６３５の値を「１」に設定する。レジスタユニット１２０がＲＥＴＥＸ命令６４７を受信したことに応じて、ＲＢ制御回路６５５は、ＲＢレジスタの値を「０」に設定する。宛先バンクセレクタ１３２及び送信元バンクレジスタ１３５は、ＲＢレジスタの値が「０」であることに応じて、利用するレジスタバンクが第１のレジスタバンク１３３であることを特定する。これにより、記憶装置において、使用領域内が用いられるとき、第１のレジスタバンク１３３における各レジスタにおいて、情報の取得及び設定が行われる。
【００５３】
各フラグなどが変更されるタイミング
下記表を用いて、プロセッサコアの動作によるフラグなどの変化を示す。下記表のフラグ等の値の意味について、以下にまとめる。
ＲＢレジスタの値が「０」のとき、第１のレジスタバンク１３３（使用領域内用）が参照され、ＲＢレジスタの値が「１」のとき、第２のレジスタバンク１３４（使用領域外用）が参照される。
ＩＦＦ１が「１」のとき、ＩＮＴ割込みの受付が許可され、ＩＦＦ１が「０」のとき、ＩＮＴ割込みの受付が禁止される。
ＩＦＦ２は、ＮＭＩ割込みなどを受け付けると、割込みを受け付ける前のＩＦＦ１の値を保持する。
ＮＭＩＥＮが「１」のとき、ＮＭＩ割込みの受付が許可され、ＮＭＩＥＮが「０」のとき、ＮＭＩ割込みの受付が禁止される。
【００５４】
＃１：プロセッサに電源が投入などされて、リセットが行われると、ＲＢレジスタの値は「０」、ＩＦＦ２フラグには「０」、ＩＦＦ１フラグには「０」、ＮＭＩＥＮには「１」が設定される。
＃２：ＤＩ命令が実行され、ＩＮＴ割込みが禁止されると、ＲＢレジスタの値は変化せず、ＩＦＦ２フラグには「０」及びＩＦＦ１フラグには「０」が設定され、ＮＭＩＥＮは変化しない。
＃３：ＥＩ命令が実行され、ＩＮＴ割込みが許可されると、ＲＢレジスタの値は変化せず、ＩＦＦ２フラグには「１」及びＩＦＦ１フラグには「１」が設定され、ＮＭＩＥＮは変化しない。
＃４：ＩＮＴ割込みを受け付け、ＩＮＴ割込み処理が実行されると、ＲＢレジスタの値は変化せず、ＩＦＦ２フラグには「０」及びＩＦＦ１フラグには「０」が設定され、ＮＭＩＥＮは変化しない。
＃５：ＮＭＩ割込みを受け付け、ＮＭＩ割込み処理が実行されると、ＲＢレジスタの値は変化せず、ＩＦＦ２フラグにはＮＭＩ割込みを受け付け時のＩＦＦ１フラグがコピーされてＩＦＦ１の前の値が保持され、ＩＦＦ１フラグには「０」が設定され、ＮＭＩＥＮには「０」が設定される。
＃６：ＲＥＴＩ命令により、ＩＮＴ割込み処理が終了しリターンが実行されると、ＲＢレジスタの値は変化せず、ＩＦＦ２フラグは変化せず前の値が保持され、ＩＦＦ１フラグにはＩＦＦ２フラグの値が設定され、ＮＭＩＥＮは変化しない。
＃７：ＲＥＴＮ命令により、ＮＭＩ割込み処理が終了しリターンが実行されると、ＲＢレジスタの値は変化せず、ＩＦＦ２フラグは変化せず前の値が保持され、ＩＦＦ１フラグにはＩＦＦ２フラグの値が設定され、ＮＭＩＥＮには「１」が設定される。
＃８：ＲＢレジスタの値が「０」のときにＣＡＬＬＥＸ命令が実行され、記憶装置の使用領域が使用領域内から使用領域外に変更されると、ＲＢレジスタには「１」が設定され、ＩＦＦ２フラグは変化せず前の値が保持され、ＩＦＦ１フラグには「１」が設定され、ＮＭＩＥＮには「０」が設定される。
＃９：ＲＢレジスタの値が「１」のときにＣＡＬＬＥＸ命令が実行され、記憶装置の使用領域外が用いられると（ＣＡＬＬＥＸ命令実行後に、ＲＥＴＥＸ命令が実行されず、さらに他のＣＡＬＬＥＸ命令が実行された場合）、ＲＢレジスタには「１」が設定され、ＩＦＦ２フラグ及びＩＦＦ１フラグは変化せず前の値が保持され、ＮＭＩＥＮには「０」が設定される。
＃１０：ＲＢレジスタの値が「１」のときにＲＥＴＥＸ命令が実行され、記憶装置の使用領域が使用領域外から使用領域内に変更されると、ＲＢレジスタには「０」が設定され、ＩＦＦ２フラグは変化せず前の値が保持され、ＩＦＦ１フラグにはＩＦＦ２フラグの値が設定され、ＮＭＩＥＮには「１」が設定される。
＃１１：ＲＢレジスタの値が「０」のときにＲＥＴＥＸ命令が実行され、記憶装置の使用領域内が用いられると(領域内実行中にＲＥＴＥＸ命令が実行された場合)、ＲＢレジスタには「０」が設定され、ＩＦＦ２フラグは変化せず前の値が保持され、ＩＦＦ１フラグにはＩＦＦ２フラグの値が設定され、ＮＭＩＥＮには「１」が設定される。
2019141675.tif 000003
【００５５】
各命令の具体的な例
記憶装置の使用領域外に記憶されたプログラムを実行するための命令の例として、ＣＡＬＬＥＸ命令を用いてもよい。ＣＡＬＬＥＸ命令は、機械語の命令として「ＣＡＬＬＥＸ  ｍｎ」及び「ＣＡＬＬＥＸ  Ｙｎ」の形態で用いられてもよい（ここで、Ｙは、ＣＡＬＬＥＸの呼び出し先のアドレスのうちの上位アドレスを示す文字列とする）。使用領域外のサブルーチンからのリターン命令、すなわち、「ＣＡＬＬＥＸ」命令のリターン命令は、機械語命令として「ＲＥＴＥＸ」の形態で用いられてもよい。
【００５６】
機械語命令とはアセンブラ言語プログラムを記述するためのニーモニックでありアセンブラプログラムで命令コード（実際にプロセッサが読込み実行する機械語コード）に変換され実行される。上記「ＣＡＬＬＥＸ  ｍｎ」は「命令コード１、ｎ、ｍ」に変換され、「ＣＡＬＬＥＸ  Ｙｎ」は「命令コード２、ｎ」に変換され、「ＲＥＴＥＸ」は「命令コード３」に変換される。ここで、命令コードは１からＮバイトの機械語コードで２進整数（００ｈ−ＦＦｈ）、ｍ、ｎは、それぞれ、１バイトの２進整数（００ｈ−ＦＦｈ）を示す変数である。これにより、「ＣＡＬＬＥＸ  ｍｎ」は、呼び出し先のアドレスを２バイトの情報を用いて指定することができる。「ＣＡＬＬＥＸ  Ｙｎ」は、「Ｙ」を上位１バイトの情報として固定値として指定し、「ｎ」については、ユーザが下位１バイトの情報を指定することができる。図２から理解されるとおり、外部プログラムエリア２２０は、アドレス「ＸＸＸＸ5ｈ」から始まるので、「ＣＡＬＬＥＸ  Ｙｎ」（例えば、ＸＸＸＸ5＝ａｂｃｄである場合、Ｙ＝ａｂとなる）は有用である。したがって、「ＣＡＬＬＥＸ  Ｙｎ」における「Ｙ」は、記憶装置におけるメモリマップに応じて異なる値が用いられてもよい。
【００５７】
以下、フローチャートを用いて、各命令の動作を説明する。フローチャートにおいて、各機械語命令の内部動作が示され、内部クロックに同期して各ステップが実行される。動作の説明では命令フェッチの動作は省略して説明してあるが、各命令は、メモリよりフェッチ後に実行されることは理解されるであろう。以下では、スタックポインタが１６ビットであり、スタックポインタの値のアドレスが示す先が８ビットであるプロセッサを例にして説明する。
【００５８】
１．ＣＡＬＬＥＸ  ｍｎ命令
プロセッサは、命令をフェッチすると、プログラムカウンタ（ＰＣ）は次の実行アドレス（メインルーチンでＣＡＬＬＥＸ命令がコールされたとき、メインルーチンで実行されていたプログラムの次の処理がＰＣに格納されている）を示しているので、ＲＢレジスタが示すレジスタバンクの現在のスタックポインタ（ＳＰ）から１減じたスタックポインタ（１つ前のスタックポインタ）の値のアドレスの示すスタックにプログラムカウンタの上位バイト(ＰＣH、２バイト中の上位１バイト)を格納する（ステップ７０２）。プロセッサは、続けて、現在のスタックポインタ（ＳＰ）から１減じたスタックポインタ（１つ前のスタックポインタ、ステップ７００のスタックポインタからみると、２減じた（２つ前の）スタックポインタ）の値のアドレスの示すスタックにプログラムカウンタの下位バイト(ＰＣL、２バイト中の下位１バイト)を格納する（ステップ７０４）。プロセッサは、プログラムカウンタ（ＰＣ）にｍｎを格納する。
【００５９】
プロセッサは、ＲＢレジスタの値を判定する（ステップ７０８）。プロセッサは、ＲＢレジスタの値が「０」である（ＣＡＬＬＥＸ命令実行時の記憶装置の領域が使用領域内である）場合、割込みフラグ１（ＩＦＦ1）に「０」を設定し、ＩＮＴ割込みを禁止する（ステップ７１０）。プロセッサは、ＲＢレジスタの値が「１」である（ＣＡＬＬＥＸ命令実行時の記憶装置の領域が使用領域外である）場合、ステップ７１０を実行しない。プロセッサは、ＲＢレジスタの値に「１」を設定し、記憶装置の使用領域として使用領域外を設定する（ステップ７１２）。プロセッサは、ノンマスカブル割込み許可フラグ（ＮＭＩＥＮ）に「０」を設定し、ＮＭＩ割込みを禁止する（ステップ７１４）。プロセッサは、次の命令としてプログラムカウンタ（ＰＣ）の命令をフェッチすることによりＣＡＬＬ先のプログラム（使用領域外に記憶されているプログラム）へ実行を移す（ステップ７１６）。ＣＡＬＬＥＸ  ｍｎ命令では、サブルーチン呼出しアドレスをｍｎの２バイトで示す値で指定でき、命令は命令コード＋２バイトの命令とすることができる。
【００６０】
２．ＣＡＬＬＥＸ  Ｙｎ命令
プロセッサは、命令をフェッチすると、プログラムカウンタ（ＰＣ）は次の実行アドレスを示しているので、ＲＢレジスタが示すレジスタバンクの現在のスタックポインタ（ＳＰ）から１減じたスタックポインタ（１つ前のスタックポインタ）の値のアドレスの示すスタックにプログラムカウンタの上位バイト(ＰＣH、２バイト中の上位１バイト)を格納する（ステップ７３２）。プロセッサは、続けて、現在のスタックポインタ（ＳＰ）から１減じたスタックポインタ（１つ前のスタックポインタ、ステップ７３０のスタックポインタからみると、２減じた（２つ前の）スタックポインタ）の値のアドレスの示すスタックにプログラムカウンタの下位バイト(ＰＣL、２バイト中の下位１バイト)を格納する（ステップ７３４）。プロセッサは、プログラムカウンタの上位バイト（ＰＣH）に２０ｈを格納し、プログラムカウンタの下位バイト（ＰＣL）にｎを格納する（ステップ７３６）。
【００６１】
プロセッサは、ＲＢレジスタの値を判定する（ステップ７３８）。プロセッサは、ＲＢレジスタの値が「０」である（ＣＡＬＬＥＸ命令実行時の記憶装置の領域が使用領域内である）場合、割込みフラグ１（ＩＦＦ1）に「０」を設定し、ＩＮＴ割込みを禁止する（ステップ７４０）。プロセッサは、ＲＢレジスタの値が「１」である（ＣＡＬＬＥＸ命令実行時の記憶装置の領域が使用領域外である）場合、ステップ７４０を実行しない。プロセッサは、ＲＢレジスタの値に「１」を設定し、記憶装置の使用領域として使用領域外を設定する（ステップ７４２）。プロセッサは、ノンマスカブル割込み許可フラグ（ＮＭＩＥＮ）に「０」を設定し、ＮＭＩ割込みを禁止する（ステップ７４４）。プロセッサは、次の命令としてプログラムカウンタ（ＰＣ）の命令をフェッチすることによりＣＡＬＬ先のプログラム（使用領域外に記憶されているプログラム）へ実行を移す（ステップ７４６）。ＣＡＬＬＥＸ  Ｙｎ命令では、サブルーチン呼出しアドレスをＸＸＸＸ5ｈ（Ｙ００ｈ）からＹｘｘｈ（ｘｘは、ｎで示される値であり、００ｈからＦＦｈの値となる）、すなわち、Ｙ００ｈから始まる２５６番地のうちの一つを指定できる。ＣＡＬＬＥＸ  Ｙｎ命令は、「ＣＡＬＬＥＸ  ｍｎ命令」で必要であった上位バイト「ｍ」を省略できることから、命令コードを最少の１バイトとすると、命令は、２バイト命令とすることができる。
【００６２】
３．ＲＥＴＥＸ命令
ＣＡＬＬＥＸ命令が実行された後、ＲＥＴＥＸ命令が実行されることにより、ＣＡＬＬＥＸ命令が呼び出されていたときに実行されていた処理に復帰することができる。プロセッサは、ＲＢレジスタの値に「１」を設定し、記憶装置の使用領域として使用領域内を設定する（ステップ７６２）。プロセッサは、現在のスタックポインタの値（ステップ７０４又は７３４で設定されたスタックポインタの値に相当）のアドレスが示すスタックをプログラムカウンタの下位バイト(ＰＣL、２バイト中の下位１バイト)にロードする（ステップ７６４）。プロセッサは、現在のスタックポインタを１加算したスタックポインタ（１つ後のスタックポインタ）の値（ステップ７０２又は７３２で設定されたスタックポインタの値に相当）が示すアドレスのスタックをプログラムカウンタ（PCH）にロードする（ステップ７６６）。プロセッサは、続けて、現在のスタックポインタ（ＳＰ）から１加算したスタックポインタ（１つ後のスタックポインタ、ステップ７６０のスタックポインタからみると、２加算した（２つ後の）スタックポインタ）の値を現在スタックポインタに格納する（ステップ７６８）。
【００６３】
プロセッサは、割込みフラグ２（ＩＦＦ２）を割込みフラグ１（ＩＦＦ１）にコピーし、ＩＮＴ割込みを許可又は禁止が設定される（ステップ７７０）。プロセッサは、さらに、ノンマスカブル割込み許可フラグ（ＮＭＩＥＮ）に「１」を設定し、ＮＭＩ割込みを許可する。プロセッサは、次の命令としてプログラムカウンタ（ＰＣ）の命令をフェッチすることによりＣＡＬＬされたプログラムへ復帰する。
【００６４】
その他
上記の各実施例において、示したプロセッサコアは、プロセッサに実装することができる。プロセッサは、遊技機用プロセッサであってもよい。遊技機用プロセッサは、遊戯用制御基板にプロセッサとして実装されてもよい。遊戯用制御基板は、遊技機に実装される。
【００６５】
上記の実施例において、ハードウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ソフトウエアで実現することができ、そして、ソフトウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ハードウエアで実現することができることは理解されるであろう。
【００６６】
以上に説明した処理又は処理順序において、ある処理において、その処理ではまだ利用することができないはずのデータを利用しているなどの処理又は処理順序上の矛盾が生じない限りにおいて、処理又は処理順序を自由に変更することができる。
【００６７】
以上に説明してきた各実施例に関し、各実施例の一部又は全部を組み合わせて一つの実施例として実現されてもよい。
【００６８】
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【００６９】
上記の各実施例において、本発明の実施例を用いたプロセッサで用いることができる命令を説明したが、以下にプロセッサで用いることができる命令をさらに示す。
【００７０】
2019141675.tif 000004
【００７１】
2019141675.tif 000005
【００７２】
2019141675.tif 000006
【００７３】
2019141675.tif 000007
【００７４】
2019141675.tif 000008
【００７５】
2019141675.tif 000009
【００７６】
2019141675.tif 000010
【００７７】
2019141675.tif 000011
【００７８】
2019141675.tif 000012
【００７９】
2019141675.tif 000013
【００８０】
2019141675.tif 000014
【００８１】
2019141675.tif 000015
【００８２】
2019141675.tif 000016
【００８３】
2019141675.tif 000017
【００８４】
2019141675.tif 000018
【００８５】
2019141675.tif 000019
【００８６】
2019141675.tif 000020
【００８７】
2019141675.tif 000021
【００８８】
2019141675.tif 000022
【００８９】
2019141675.tif 000023
【００９０】
2019141675.tif 000024
【００９１】
2019141675.tif 000025
【００９２】
2019141675.tif 000026
【００９３】
2019141675.tif 000027
【００９４】
2019141675.tif 000028
【００９５】
2019141675.tif 000029
【００９６】
2019141675.tif 000030
【００９７】
2019141675.tif 000031
【００９８】
2019141675.tif 000032
【００９９】
2019141675.tif 000033
【０１００】
2019141675.tif 000034
【０１０１】
2019141675.tif 000035
【０１０２】
2019141675.tif 000036
【０１０３】
2019141675.tif 000037
【０１０４】
2019141675.tif 000038
【０１０５】
2019141675.tif 000039
【０１０６】
2019141675.tif 000040
【０１０７】
2019141675.tif 000041
【０１０８】
2019141675.tif 000042
【０１０９】
2019141675.tif 000043
【０１１０】
2019141675.tif 000044
【０１１１】
2019141675.tif 000045
【０１１２】
2019141675.tif 000046
【０１１３】
2019141675.tif 000047
【０１１４】
2019141675.tif 000048
【０１１５】
2019141675.tif 000049
【０１１６】
2019141675.tif 000050
【０１１７】
2019141675.tif 000051
【０１１８】
2019141675.tif 000052
【０１１９】
2019141675.tif 000053
【０１２０】
2019141675.tif 000054
【０１２１】
2019141675.tif 000055
【０１２２】
2019141675.tif 000056
【０１２３】
2019141675.tif 000057
【０１２４】
2019141675.tif 000058
【０１２５】
2019141675.tif 000059
【０１２６】
2019141675.tif 000060
【０１２７】
2019141675.tif 000061
【０１２８】
2019141675.tif 000062
【０１２９】
2019141675.tif 000063
【０１３０】
2019141675.tif 000064
【０１３１】
2019141675.tif 000065
【０１３２】
2019141675.tif 000066
【０１３３】
2019141675.tif 000067
【０１３４】
2019141675.tif 000068
【０１３５】
2019141675.tif 000069
【符号の説明】
【０１３６】
１００      ：プロセッサコア
１０５      ：外部入力ユニット
１１０      ：状態制御ユニット
１１５      ：中央制御ユニット
１１７      ：命令デコーダ
１２０      ：レジスタユニット
１２２      ：プログラムカウンタ（ＰＣ）レジスタ
１２４      ：インタラプト（Ｉ）レジスタ
１２６      ：リフレッシュ（Ｒ）レジスタ
１２８      ：ＲＢレジスタ
１３０      ：宛先セレクタポート
１３２      ：宛先バンクセレクタ
１３３      ：第１のレジスタバンク
１３４      ：第２のレジスタバンク
１３５      ：送信元バンクレジスタ
１３８      ：アドレスポート
１４５      ：リード信号
１５０      ：ライト信号線
１５５      ：データバス
２０５      ：ユーザプログラムエリア
２１０      ：ユーザデータエリア
２２０      ：外部プログラムエリア
２２５      ：第１のユーザＲＡＭのエリア
２３０      ：第２のユーザＲＡＭのエリア
２３５      ：外部ユーザＲＡＭのエリア
４００      ：表レジスタ群
４０１      ：Ｑレジスタ
４０２      ：Ｕレジスタ
４０３      ：Ａレジスタ
４０４      ：Ｆレジスタ
４０５      ：Ｂレジスタ
４０６      ：Ｃレジスタ
４０７      ：Ｄレジスタ
４０８      ：Ｅレジスタ
４０９      ：Ｈレジスタ
４１０      ：Ｌレジスタ
４１１      ：ＩＸレジスタ
４１２      ：ＩＹレジスタ
４１３      ：スタックポインタレジスタ
４２０      ：裏レジスタ群
４２１      ：Ｑ’レジスタ
４２２      ：Ｕ’レジスタ
４２３      ：Ａ’レジスタ
４２４      ：Ｆ’レジスタ
４２５      ：Ｂ’レジスタ
４２６      ：Ｃ’レジスタ
４２７      ：Ｄ’レジスタ
４２８      ：Ｅ’レジスタ
４２９      ：Ｈ’レジスタ
４３０      ：Ｌ’レジスタ
４３１      ：ＩＸ’レジスタ
４３２      ：ＩＹ’レジスタ
４４０      ：表レジスタ群
４４１      ：Ｑレジスタ
４４２      ：Ｕレジスタ
４４３      ：Ａレジスタ
４４４      ：Ｆレジスタ
４４５      ：Ｂレジスタ
４４６      ：Ｃレジスタ
４４７      ：Ｄレジスタ
４４８      ：Ｅレジスタ
４４９      ：Ｈレジスタ
４５０      ：Ｌレジスタ
４５１      ：ＩＸレジスタ
４５２      ：ＩＹレジスタ
４５３      ：スタックポインタレジスタ
４６０      ：裏レジスタ群
４６１      ：Ｑ’レジスタ
４６２      ：Ｕ’レジスタ
４６３      ：Ａ’レジスタ
４６４      ：Ｆ’レジスタ
４６５      ：Ｂ’レジスタ
４６６      ：Ｃ’レジスタ
４６７      ：Ｄ’レジスタ
４６８      ：Ｅ’レジスタ
４６９      ：Ｈ’レジスタ
４７０      ：Ｌ’レジスタ
４７１      ：ＩＸ’レジスタ
４７２      ：ＩＹ’レジスタ
【図１】
2019141675.tif 000070
【図２】
2019141675.tif 000071
【図３】
2019141675.tif 000072
【図４】
2019141675.tif 000073
【図５】
2019141675.tif 000074
【図６】
2019141675.tif 000075
【図７】
2019141675.tif 000076
【手続補正書】
【提出日】令和1年5月8日(2019.5.8)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
2019141675.tif 000077
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８８
【補正方法】変更
【補正の内容】
【００８８】
2019141675.tif 000078
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
2019141675.tif 000079
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
2019141675.tif 000080
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
2019141675.tif 000081
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１０７
【補正方法】変更
【補正の内容】
【０１０７】
2019141675.tif 000082
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１０８
【補正方法】変更
【補正の内容】
【０１０８】
2019141675.tif 000083
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１０９
【補正方法】変更
【補正の内容】
【０１０９】
2019141675.tif 000084
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１１０
【補正方法】変更
【補正の内容】
【０１１０】
2019141675.tif 000085
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１１１
【補正方法】変更
【補正の内容】
【０１１１】
2019141675.tif 000086
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１１２
【補正方法】変更
【補正の内容】
【０１１２】
2019141675.tif 000087
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１１３
【補正方法】変更
【補正の内容】
【０１１３】
2019141675.tif 000088
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１１４
【補正方法】変更
【補正の内容】
【０１１４】
2019141675.tif 000089
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
2019141675.tif 000090
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０１１６
【補正方法】変更
【補正の内容】
【０１１６】
2019141675.tif 000091
【手続補正書】
【提出日】令和1年5月31日(2019.5.31)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
【図１】図１は、本発明の実施例による装置を示す。
【図２】図２は、遊技機で用いられる記憶装置のメモリマップの例を示す。
【図３】図３は、従来のプロセッサコアによる処理フローを示す。
【図４】図４は、本発明による実施例のレジスタバンクを示す。
【図５】図５は、本発明のプロセッサコアによる処理フローを示す。
【図６】図６は、フラグＩＦＦ及びＮＭＩＥＮを用いたプロセッサコアの例を示す。
【図７】図７は、各命令の動作を説明する。