(57)【特許請求の範囲】
【請求項１】
遊技機用データを記憶する不揮発性メモリと、
前記遊技機用データの種別に応じた複数の領域を有するキャッシュメモリと、
遊技機のホスト装置からのコマンドに基づき前記不揮発性メモリまたは前記キャッシュメモリに記憶された遊技機用データを読み出し、読み出された遊技機用データを前記ホスト装置に転送し、前記不揮発性メモリ内の前記遊技機用データを読み出すときに、前記遊技機用データの種別に基づき前記複数の領域のいずれかに読み出したデータを格納し、前記複数の領域毎に格納されたデータの置換の制御を行なう制御部と、
を具備し、
前記遊技機用データの種別は、遊技機の表示装置に表示する画像のデータである画像データと、前記遊技機の周辺機器を制御するためのプログラムの一部であるプログラムデータと、を含み、
前記複数の領域は、前記画像データを格納する領域と、前記プログラムデータを格納する領域と、を含み、
前記制御部は、前記画像データを前記複数の領域のうち第１領域に格納し、音声データを前記複数の領域のうち第２領域に格納し、前記第１領域において第１サイズ以下の画像データを前記第１サイズより大きい画像データより優先的に格納し、前記第２領域において前記第１サイズより小さい第２サイズ以下の音声データを前記第２サイズより大きい音声データより優先的に格納することを特徴とする遊技機用記憶装置。
【請求項２】
前記制御部は、前記読み出したデータの前記不揮発性メモリにおけるアドレスに基づき、前記複数の領域のいずれかに前記読み出したデータを格納することを特徴とする請求項１記載の遊技機用記憶装置。
【請求項３】
前記制御部は、ホスト装置から受信したデータを読み出すためのリードコマンドに付加された情報に基づき、前記複数の領域のいずれかに前記読み出したデータを格納することを特徴とする請求項１記載の遊技機用記憶装置。
【請求項４】
遊技機用データを記憶する不揮発性メモリと、
前記遊技機用データの種別に応じた複数の領域を有するキャッシュメモリと、
前記不揮発性メモリ内の前記遊技機用データを読み出すときに、前記遊技機用データの種別に基づき前記複数の領域のいずれかに読み出したデータを格納し、前記複数の領域毎に格納されたデータの置換の制御を行なう制御部と、
を具備し、
前記制御部は、前記不揮発性メモリ内に前記遊技機用データと関連付けて記憶された情報に基づき、前記複数の領域のいずれかに前記読み出したデータを格納することを特徴とする遊技機用記憶装置。
【請求項５】
前記制御部は、前記複数の領域毎に格納されたデータの置換の異なる制御を行なうことを特徴とする請求項１から４のいずれか一項記載の遊技機用記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遊技機用記憶装置に関し、例えば遊技機用データを記憶する不揮発性メモリを備える遊技機用記憶装置に関する。
【背景技術】
【０００２】
パチンコやパチスロ等の遊技機には、遊技機用データを記憶する不揮発性メモリが用いられている。例えば特許文献１には、遊技機のキャラクタデータをＮＡＮＤ型の不揮発性メモリに記憶することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１３７０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
遊技機には、例えば画像データ、音声データおよびプログラムデータ等の複数の種別のデータが用いられる。例えば画像データはアクセスが集中する時期がある。このため、アクセスが集中する時期にプログラムデータがキャッシュメモリの登録から外れてしまうことがある。このように、遊技機用データはデータ種別ごとにアクセス頻度およびアクセスが集中する時期が異なる。このような遊技機用データをキャッシュメモリに格納する場合、重要なデータがキャッシュに登録されていないことが生じてしまう。また、不揮発性メモリ内の同じデータが高頻度にアクセスされることが生じる。同じデータが高頻度にアクセスされると、例えばフラッシュメモリのリードディスターブのような問題が生じる場合がある。
【０００５】
本遊戯機用記憶装置は、遊技機用データを格納するキャッシュメモリを適切に制御することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、遊技機用データを記憶する不揮発性メモリと、前記遊技機用データの種別に応じた複数の領域を有するキャッシュメモリと、遊技機のホスト装置からのコマンドに基づき前記不揮発性メモリまたは前記キャッシュメモリに記憶された遊技機用データを読み出し、読み出された遊技機用データを前記ホスト装置に転送し、前記不揮発性メモリ内の前記遊技機用データを読み出すときに、前記遊技機用データの種別に基づき前記複数の領域のいずれかに読み出したデータを格納し、前記複数の領域毎に格納されたデータの置換の制御を行なう制御部と、を具備し、前記遊技機用データの種別は、遊技機の表示装置に表示する画像のデータである画像データと、前記遊技機の周辺機器を制御するためのプログラムの一部であるプログラムデータと、を含み、前記複数の領域は、前記画像データを格納する領域と、前記プログラムデータを格納する領域と、を含み、前記制御部は、前記画像データを前記複数の領域のうち第１領域に格納し、音声データを前記複数の領域のうち第２領域に格納し、前記第１領域において第１サイズ以下の画像データを前記第１サイズより大きい画像データより優先的に格納し、前記第２領域において前記第１サイズより小さい第２サイズ以下の音声データを前記第２サイズより大きい音声データより優先的に格納することを特徴とする遊技機用記憶装置。である。
【０００７】
上記構成において、前記制御部は、前記読み出したデータの前記不揮発性メモリにおけるアドレスに基づき、前記複数の領域のいずれかに前記読み出したデータを格納する構成とすることができる。
【０００８】
上記構成において、前記制御部は、ホスト装置から受信したデータを読み出すためのリードコマンドに付加された情報に基づき、前記複数の領域のいずれかに前記読み出したデータを格納する構成とすることができる。
【０００９】
本発明は、遊技機用データを記憶する不揮発性メモリと、前記遊技機用データの種別に応じた複数の領域を有するキャッシュメモリと、前記不揮発性メモリ内の前記遊技機用データを読み出すときに、前記遊技機用データの種別に基づき前記複数の領域のいずれかに読み出したデータを格納し、前記複数の領域毎に格納されたデータの置換の制御を行なう制御部と、を具備し、前記制御部は、前記不揮発性メモリ内に前記遊技機用データと関連付けて記憶された情報に基づき、前記複数の領域のいずれかに前記読み出したデータを格納することを特徴とする遊技機用記憶装置である。
【００１１】
上記構成において、前記制御部は、前記複数の領域毎に格納されたデータの置換の異なる制御を行なう構成とすることができる。
【発明の効果】
【００１３】
本遊戯機用記憶装置によれば、遊技機用データを格納するキャッシュメモリを適切に制御することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係る遊技機用記憶装置が用いられる遊技機を示すブロック図である。
【図２】図２は、実施例１に係る記憶装置を示すブロック図である。
【図３】図３（ａ）から図３（ｄ）は、比較例１における不揮発性メモリおよびキャッシュメモリ内のデータを示す模式図である。
【図４】図４は、比較例１および実施例１における時間に対する読み出されるデータを示す図である。
【図５】図５（ａ）から図５（ｄ）は、実施例１における不揮発性メモリおよびキャッシュメモリ内のデータを示す模式図である。
【図６】図６は、実施例１の変形例１におけるキャッシュメモリおよび不揮発性メモリ内を示す模式図である。
【図７】図７は、実施例１の変形例１における不揮発性メモリおよびキャッシュメモリ内の各領域のアドレスを示す図である。
【図８】図８は、実施例１の変形例１におけるキャッシュ制御部の制御を示すフローチャートである。
【図９】図９は、実施例１の変形例２におけるキャッシュメモリおよび不揮発性メモリ内を示す模式図である。
【図１０】図１０は、実施例１の変形例２における付加情報とキャッシュメモリ内の各領域のアドレスを示す図である。
【図１１】図１１は、実施例１の変形例２におけるキャッシュ制御部の制御を示すフローチャートである。
【図１２】図１２は、実施例１の変形例３におけるキャッシュメモリおよび不揮発性メモリ内を示す模式図である。
【図１３】図１３は、実施例１の変形例３におけるキャッシュ制御部の制御を示すフローチャートである。
【図１４】図１４（ａ）および図１４（ｂ）は、実施例１の変形例３においてデータを不揮発性メモリに記憶するときの処理を示すフローチャートである。
【図１５】図１５（ａ）および図１５（ｂ）は、データのサイズと転送時間との関係を説明する図である。
【図１６】図１６は、実施例１の変形例４におけるキャッシュ制御部の制御を示すフローチャートである。
【図１７】図１７（ａ)および図１７（ｂ）は、実施例１の変形例４における閾値ＳおよびＮの例を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照し本発明の実施例について説明する。
【実施例１】
【００１６】
図１は、実施例１に係る遊技機用記憶装置が用いられる遊技機を示すブロック図である。図１に示すように、遊技機１００は、記憶装置１０、周辺制御部１１、メイン制御部１２、払い出し制御部１３、音声出力装置１４、ランプ１５、表示装置１６、入賞センサ１７およびハンドル１８を備える。記憶装置１０は遊技機用データを記憶する。周辺制御部１１は記憶装置１０、音声出力装置１４、ランプ１５および表示装置１６等の周辺機器を制御する。メイン制御部１２は、記憶装置１０に記憶されたプログラムデータの一部を周辺制御部１１を介し取得する。メイン制御部１２は、入賞センサ１７およびハンドル１８からの信号に基づき、周辺制御部１１および払い出し制御部１３を制御する。例えば遊技機１００がパチスロ装置の場合、メイン制御部１２は抽選結果を図柄の停止位置で表示するリールを制御する。払い出し制御部１３は、メイン制御部１２の指示に基づき払い出しを制御する。例えば遊技機１００がパチスロ装置の場合、払い出し制御部１３はメイン制御部１２の指示に基づきホッパーにコインの払い出しを行なわせる。入賞センサ１７は入賞を検知する。メイン制御部１２は入賞センサ１７から入賞検知の情報を取得すると、払い出し制御部１３に払い出しを指示する。ハンドル１８はユーザのハンドル操作の信号を出力する。メイン制御部１２は、ハンドル１８からの信号に基づき、周辺制御部１１に音声出力装置１４、ランプ１５および表示装置１６を操作させる。
【００１７】
音声出力装置１４は例えばスピーカであり、記憶装置１０に記憶された音声データに基づき音声を出力する。ランプ１５は例えばＬＥＤ（Light Emitting Diode）であり、記憶装置１０に記憶された点灯データに基づき点灯する。表示装置１６は例えば液晶表示装置であり、記憶装置１０に記憶された画像データに基づき画像を表示する。周辺制御部１１は、記憶装置１０に記憶されたプログラムデータに基づき記憶装置１０から画像データ、点灯データおよび音声データを読み出す。
【００１８】
図２は、実施例１に係る記憶装置を示すブロック図である。図２に示すように、記憶装置１０は、キャッシュメモリ２０、不揮発性メモリ２１，ＲＡＭ（Random Access Memory）制御部２２、ＲＯＭ（Read Only Memory）制御部２３、キャッシュ制御部２４、プロセッサ２５およびＩ／Ｆ（インターフェース）制御部２６を備える。記憶装置１０はホスト装置２８と接続されている。ホスト装置２８は、例えば図１の周辺制御部１１である。キャッシュメモリ２０は、例えばＳＲＡＭ（Static ＲＡＭ）であり、不揮発性メモリ２１に記憶された遊技機データのうち、アクセス頻度の高いデータを格納する。不揮発性メモリ２１は、例えばＮＡＮＤ型フラッシュメモリ等のＲＯＭであり、遊技機用データを記憶する。
【００１９】
ＲＡＭ制御部２２は、キャッシュメモリ２０にデータの格納および読み出しを行なう。ＲＯＭ制御部２３は、不揮発性メモリ２１にデータの記憶および読み出しを行なう。Ｉ／Ｆ制御部２６は、ホスト装置２８から出力されたコマンドをプロセッサ２５またはキャッシュ制御部２４に出力する。Ｉ／Ｆ制御部２６は、キャッシュ制御部２４から出力されたデータをホスト装置２８に出力する。プロセッサ２５は、ホスト装置２８からのコマンドに基づきキャッシュ制御部２４にコマンドを出力する。キャッシュ制御部２４は、プロセッサ２５が出力したコマンドまたはＩ／Ｆ制御部２６が出力したコマンドを受信する。キャッシュ制御部２４は、ＲＯＭ制御部２３を用い不揮発性メモリ２１からデータの読み出し、ＲＡＭ制御部２２を用いキャッシュメモリ２０にデータの格納および読み出しを行なう。
【００２０】
まず、比較例の課題について説明する。図３（ａ）から図３（ｄ）は、比較例１における不揮発性メモリおよびキャッシュメモリ内のデータを示す模式図である。図３（ａ）に示すように、不揮発性メモリ２１内に画像データ３０、音声データ３１およびプログラムデータ３２が記憶されている。画像データ３０は、表示装置１６に表示される画像のデータである。画像データ３０は、例えば表示する画像内の部品ごとに記憶されている。音声データ３１は、音声出力装置１４から出力される音声のデータである。プログラムデータ３２は、メイン制御部１２および周辺制御部１１において実行されるＯＳ（Operating System）またはアプリケーションのプログラムの一部である。すなわち、プログラムデータ３２は、ホスト装置２８を制御するためのデータである。このように、データの種別はデータの種類により区別されたものである。
【００２１】
図３（ｂ）に示すように、ＬＦＵ（Least Frequently Used）制御では、キャッシュメモリ２０内にはアクセス頻度の高いデータが格納され、アクセス頻度の低いデータと置き換わる。ＬＲＵ（Least Recently Used）制御では、最も長くアクセスされていないデータが新しいデータに置き換わる。キャッシュメモリ２０内はデータの種別に分かれておらず、画像データ３０、音声データ３１およびプログラムデータ３２が混在して格納されている。画像データ３０は例えば数バイトから３２Ｍバイトである。音声データ３１は例えば数バイトから５Ｋバイトである。プログラムデータ３２は例えば数バイトである。図３（ｂ）では、データの大きさに関係なくデータを同じ大きさで図示している。
【００２２】
図４は、比較例１および実施例１における時間に対する読み出されるデータを示す図である。図４では、読み出されるデータの大きさに関係なく同じ大きさで図示している。図４に示すように、プログラムデータ３２は時間によらずほぼ一定量のデータが読み出される。画像データ３０および音声データ３１は、時間により読み出されるデータ量が大きく異なる。遊技機１００では、遊技機１００の制御は期間に関係なく行なわれるため、プログラムデータ３２は周期的に読み出される。一方、入賞またはリーチ等の特別な期間３５において、表示装置１６に多くの画像を表示し、音声出力装置１４より音声を出力する。このため、特別な期間３５では、多くの画像データ３０および音声データ３１を用いる。例えば、特別な期間３５では同じ部品（例えば星の画像）の画像データ３０が何度も読み出される。また、異なる部品（例えば大きさや色の異なる星の画像）の画像データ３０が多く読み出される。
【００２３】
図３（ｃ）に示すように、特別な期間３５において、キャッシュメモリ２０内のプログラムデータ３２が画像データ３０および音声データ３１で置換されてしまう。特にデータサイズの大きい画像データ３０は少ない個数でキャッシュメモリ２０を占めてしまう。よって、プログラムデータ３２はキャッシュメモリ２０から追い出されやすくなる。図３（ｄ）に示すように、特別な期間３５が過ぎると、プログラムデータ３２が読み出されるため、キャッシュメモリ２０内を占めていた画像データ３０および音声データ３１の一部はプログラムデータ３２に置換される。しかしながら、図３（ｃ）から図３（ｄ）に移行するときに、プログラムデータ３２がキャッシュメモリ２０に格納されておらず、高頻度でアクセスされるプログラムデータ３２のホスト装置２８への転送が遅くなってしまう。また、高頻度でアクセスされるプログラムデータ３２が不揮発性メモリ２１内にアクセスされることが多くなる。これにより、不揮発性メモリ２１内の同じデータが高頻度でアクセスすることになる。このため、例えばフラッシュメモリにおいて生じるリードディスターブ（電気ストレスにより保持データが変化する現象）のような問題が生じる。
【００２４】
図３（ａ）から図４での説明は一例であり、遊技機では、データ種別により、データサイズが大きく異なる。また、データ種別によりアクセスの多い特別な期間がある。このため、キャッシュメモリ２０のデータの置換の制御が適切に行なわれないことがある。
【００２５】
図５（ａ）から図５（ｄ）は、実施例１における不揮発性メモリおよびキャッシュメモリ内のデータを示す模式図である。図５（ａ）は、図３（ａ）と同じであり説明を省略する。
【００２６】
図５（ｂ）から図５（ｄ）に示すように、キャッシュメモリ２０は、複数の領域４０から４２を備える。領域４０には画像データ３０が格納され、領域４１には音声データ３１が格納され、領域４２にはプログラムデータ３２が格納されている。キャッシュ制御部２４は、領域４０から４２ごとにデータの置換の制御を行なう。
【００２７】
図５（ｂ）では領域４０から４２にそれぞれ画像データ３０、音声データ３１およびプログラムデータ３２として、データ”１”から“４”が格納されている。図５（ｃ）では、領域４０のデータ”１“および”３”がデータ“５”および”７”に置換されている。領域４１のデータ“１”および”４”がデータ”６”および”９”に置換されている。領域４２のデータ”３“がデータ“５”に置換されている。図５（ｄ）では、領域４０のデータ“４”および”７”がデータ“１”および“３”に置換されている。領域４１のデータ”６“および”９”がデータ“１”および”５”に置換されている。領域４２のデータ“１”、“４”および”５“がデータ”６“、”７”および”８”に置換されている。このデータの置換の制御は領域４０から４２毎に行なう。
【００２８】
このように、キャッシュ制御部２４（制御部）は、不揮発性メモリ２１内のデータを読み出すときに、データの種別に基づき複数の領域４０から４２のいずれかに読み出したデータを格納する。そして、複数の領域４０から４２毎に格納されたデータの置換の制御を行なう。これにより、キャッシュメモリ２０のデータの置換を適切に行なうことができる。例えば、比較例１のように、プログラムデータ３２がキャッシュメモリ２０から占め出されることを抑制できる。これにより、リードディスターブのような問題を抑制できる。
【００２９】
また、データの種別ごとに異なる方式の置換制御を行なうことができる。例えば、データの種別によって、ＬＲＵ制御またはＬＦＵ制御を行なうことができる。また、画像データ３０は１６Ｋバイト以下のデータのアクセス頻度が高く、音声データ３１は４ＫＢ以下のデータのアクセス頻度が高い場合を考える。この場合、キャッシュ制御部２４は、画像データ３０に対しては１６Ｋバイト以下のデータを優先的にキャッシュメモリ２０に格納し、音声データ３１は４Ｋバイト以下のデータを優先的にキャッシュメモリ２０に格納することができる。このように、データの種別ごとにサイズの異なる閾値を設け、データサイズが閾値以下の場合、キャッシュメモリ２０にデータを格納することもできる。
【００３０】
キャッシュ制御部２４は、画像データとプログラムデータとをキャッシュメモリ２０の異なる領域４０および４２に格納する。これにより、図４の特別な期間３５の画像データに大量にアクセスされ、図３（ｃ）のように、キャッシュメモリ２０からプログラムデータが追い出されてしまうことを抑制できる。
【００３１】
［実施例１の変形例１］
以下、キャッシュ制御部２４の制御の具体例を実施例１の変形例として説明する。実施例１の変形例１は不揮発性メモリ２１内の領域をデータの種別に対応させる例である。図６は、実施例１の変形例１におけるキャッシュメモリおよび不揮発性メモリ内を示す模式図である。図６に示すように、キャッシュメモリ２０は複数の領域４０から４２が設けられている。不揮発性メモリ２１には複数の領域４５から４８が設けられている。キャッシュメモリ２０の領域４０から４２には、それぞれ画像データ３０、音声データ３１およびプログラムデータ３２が格納されている。不揮発性メモリ２１の領域４５から４７には、それぞれ画像データ３０、音声データ３１およびプログラムデータ３２が記憶されている。領域４８には、キャッシュメモリ２０に格納しないキャッシュ対象外のデータ３３が記憶されている。
【００３２】
図７は、実施例１の変形例１における不揮発性メモリおよびキャッシュメモリ内の各領域のアドレスを示す図である。図７に示すように、画像データ３０、音声データ３１、プログラムデータ３２およびキャッシュ対象外のデータ３３記憶される不揮発性メモリ２１の領域４５から４８のアドレスは００００＿００００ｈから２ＦＦＦ＿ＦＦＦＦ、３０００＿００００ｈから７ＦＦＦ＿ＦＦＦＦ、８０００＿００００ｈから８ＦＦＦ＿ＦＦＦＦ、および９０００＿００００ｈからＦＦＦＦ＿ＦＦＦＦである。このように、データの種別に応じ、不揮発性メモリ２１内のアドレスを設定しておく。画像データ３０、音声データ３１およびプログラムデータ３２を格納するキャッシュメモリ２０の領域４０から４２のアドレスは００００＿００００ｈから０３ＦＦ＿ＦＦＦＦ、０４００＿００００ｈから０７ＦＦ＿ＦＦＦＦ、および０８００＿００００ｈから０ＦＦＦ＿ＦＦＦＦである。
【００３３】
図８は、実施例１の変形例１におけるキャッシュ制御部の制御を示すフローチャートである。図８に示すように、キャッシュ制御部２４は、不揮発性メモリ２１内のデータを読み出すリードコマンドを受け付ける（ステップＳ１０）。例えば、プロセッサ２５がＩ／Ｆ制御部２６からホスト装置２８が出力したリードコマンドを受け付けると、プロセッサ２５はキャッシュ制御部２４に不揮発性メモリ２１内のデータを読み出させるコマンドを出力する。キャッシュ制御部２４は、読み出すデータの不揮発性メモリ２１内のアドレスを取得する（ステップＳ１２）。例えば、キャッシュ制御部２４は、Ｉ／Ｆ制御部２６またはプロセッサ２５からアドレスを取得する。
【００３４】
キャッシュ制御部２４は、読み出すデータの不揮発性メモリ２１内のアドレスに基づき、読み出すデータがキャッシュ対象のデータかを判断する（ステップＳ１４）。例えば、読み出すデータが図６の領域４８内に記憶されているとき、キャッシュ制御部２４はＮｏと判断する。読み出すデータが領域４８内に記憶されたデータＤ−１またはＤ−２のとき、キャッシュ制御部２４はＮｏと判断する。読み出すデータが領域４５から４７に記憶されているとき、キャッシュ制御部２４はＹｅｓと判断する。読み出すデータが領域４５内に記憶されているデータＡ−１からＡ−５、領域４６内のデータＢ−１からＢ−５、領域４７内のデータＣ−１からＣ−３のとき、キャッシュ制御部２４はＹｅｓと判断する。
【００３５】
Ｎｏの場合、キャッシュ制御部２４は不揮発性メモリ２１からデータを読み出す（ステップＳ１６）。例えば、キャッシュ制御部２４は、ＲＯＭ制御部２３に不揮発性メモリ２１内の指定されたアドレスからデータ（例えばデータＤ−１）を読み出させる。キャッシュ制御部２４は読み出したデータ（例えばデータＤ−１）をＩ／Ｆ制御部２６を介しホスト装置２８に転送する（ステップＳ１８）。その後終了する。
【００３６】
ステップＳ１４においてＹｅｓの場合、キャッシュ制御部２４は、読み出すアドレスに基づきキャッシュ領域を選択する（ステップＳ２０）。例えば、読み出すデータ（例えばデータＡ−２）が図６の不揮発性メモリ２１内の領域４５内に記憶されているとき、キャッシュ制御部２４はキャッシュ領域として領域４０を選択する。読み出すデータ（例えばデータＢ−１またはＣ−３）が図６の領域４６または４７に記憶されているとき、キャッシュ制御部２４はキャッシュ領域として領域４１または４２を選択する。
【００３７】
キャッシュ制御部２４は、読み出すデータがキャッシュメモリ２０に登録済みかを判断する（ステップＳ２２）。Ｙｅｓの場合、キャッシュ制御部２４はキャッシュメモリ２０内のデータをホスト装置に転送する（ステップＳ２４）。例えば、キャッシュ制御部２４はＲＡＭ制御部２２にデータ（例えばデータＡ−２）をキャッシュメモリ２０内の選択した領域４０から４２（例えば領域４０）から読み出させ、読み出したデータをＩ／Ｆ制御部２６を介しホスト装置２８に転送する。その後終了する。
【００３８】
ステップＳ２２においてＮｏの場合、キャッシュ制御部２４は不揮発性メモリ２１からデータ（例えばデータＢ−１）を読み出す（ステップＳ２６）。キャッシュ制御部２４は読み出したデータ（例えばデータＢ−１）をホスト装置２８に転送する（ステップＳ２８）。キャッシュ制御部２４は、読み出したデータ（例えばデータＢ−１）をキャッシュメモリ２０内の選択された領域４０から４２（例えば領域４１）に登録する（ステップＳ３０）。例えば、キャッシュ制御部２４は読み出したデータと置換する選択した領域４０から４２（例えば領域４１）内のデータを選択する。キャッシュ制御部２４はＲＡＭ制御部２２に選択したデータを選択した領域４０から４２（例えば領域４１）から消去させる。キャッシュ制御部２４はＲＡＭ制御部２２に選択した領域４０から４２（例えば領域４１）に読み出したデータ（例えばデータＢ−１）を格納させる。ステップＳ２６とＳ２８の順番は逆でもよく、ステップＳ２８とＳ３０は同時に実行してもよい。その後終了する。
【００３９】
このような制御により、図６に示すように、不揮発性メモリ２１内の領域４５内のデータＡ−２およびＡ−５は、キャッシュメモリ２０内の領域４０に格納される。不揮発性メモリ２１内の領域４６内のデータＢ−１およびＢ−３は、キャッシュメモリ２０内の領域４１に格納される。不揮発性メモリ２１内の領域４７内のデータＣ−３は、キャッシュメモリ２０内の領域４２に格納される。
【００４０】
実施例１の変形例１によれば、不揮発性メモリ２１内に複数の領域４５から４７を設け、データの種別により記憶する領域４５から４７を定めておく。図８のステップＳ２０およびＳ３０のようにキャッシュ制御部２４は、読み出したデータの不揮発性メモリ２１におけるアドレスに基づき、複数の領域４０から４２のいずれかに読み出したデータを格納する。これにより、データの種別に応じキャッシュ制御を行なうことができる。実施例１の変形例２および３のように付加情報を付加しなくともよいため、キャッシュ制御部２４の制御が容易となる。
【００４１】
［実施例１の変形例２］
実施例１の変形例２はリードコマンドにデータの種類を示す付加情報を付加する例である。図９は、実施例１の変形例２におけるキャッシュメモリおよび不揮発性メモリ内を示す模式図である。図９に示すように、不揮発性メモリ２１は複数の領域が分割されておらず、画像データ３０、音声データ３１、プログラムデータ３２およびキャッシュ対象外のデータ３３がランダムに格納されている。
【００４２】
図１０は、実施例１の変形例２における付加情報とキャッシュメモリ内の各領域のアドレスを示す図である。図１０に示すように、データの種別を示す付加情報を定義する。例えば、画像データ、音声データおよびプログラムデータを示す付加情報をそれぞれＡからＣとする。キャッシュ対象外のデータの付加情報をＤとする。
【００４３】
図１１は、実施例１の変形例２におけるキャッシュ制御部の制御を示すフローチャートである。図１１に示すように、ステップＳ１０の後、キャッシュ制御部２４は、ホスト装置２８から読み出すデータの付加情報を取得する（ステップＳ３２）。例えば、付加情報はホスト装置２８が出力するリードコマンドに付加されている。キャッシュ制御部２４は、Ｉ／Ｆ制御部２６またはプロセッサ２５からリードコマンドに付加された付加情報を取得する。
【００４４】
ステップＳ１４において、キャッシュ制御部２４は、付加情報に基づき、読み出すデータがキャッシュ対象のデータかを判断する（ステップＳ１４）。例えば、キャッシュ制御部２４は、付加情報がＡからＣのときＹｅｓと判断し、付加情報がＤのときＮｏと判断する。ステップＳ２０において、キャッシュ制御部２４は、付加情報に基づきキャッシュ領域を選択する。付加情報がＡからＣのとき、キャッシュ制御部２４はキャッシュ領域としてそれぞれ領域４０から４２を選択する。その他の構成および制御は、実施例１の変形例１と同じであり説明を省略する。
【００４５】
実施例１の変形例２によれば、ホスト装置２８から受信したデータを読み出すためのリードコマンドに付加された付加情報（情報）に基づき、キャッシュメモリ２０内の複数の領域４０から４２のいずれかに不揮発性メモリ２１から読み出したデータを格納する。これにより、データの種別に応じキャッシュ制御を行なうことができる。実施例１の変形例１では不揮発性メモリ２１内の領域４５から４８が固定されているため、不揮発性メモリ２１の領域を有効に使えない場合もある。また、実施例１の変形例２では不揮発性メモリ２１内に付加情報を記憶することなり、不揮発性メモリ２１内のデータを記憶する容量が減少する。実施例１の変形例２では、不揮発性メモリ２１に記憶するデータ量の減少を抑制できる。
【００４６】
［実施例１の変形例３］
実施例１の変形例３は不揮発性メモリ２１に付加情報を記憶させる例である。図１２は、実施例１の変形例３におけるキャッシュメモリおよび不揮発性メモリ内を示す模式図である。図１２に示すように、不揮発性メモリ２１にデータに関連付けて付加情報３４が記憶されている。付加情報３４は不揮発性メモリ２１内の冗長領域３６またはユーザデータ領域３７に記憶されている。
【００４７】
図１３は、実施例１の変形例３におけるキャッシュ制御部の制御を示すフローチャートである。図１３に示すように、ステップＳ１０の後、キャッシュ制御部２４は、不揮発性メモリ２１から読み出すデータの付加情報を取得する（ステップＳ３４）。例えば、キャッシュ制御部２４は、Ｉ／Ｆ制御部２６またはプロセッサ２５から読み出すデータの不揮発性メモリ２１内のアドレスを取得する。キャッシュ制御部２４は、アドレスに基づき、ＲＯＭ制御部２３に読み出すデータの付加情報を不揮発性メモリ２１から読み出させる。
【００４８】
ステップＳ１４において、キャッシュ制御部２４は、不揮発性メモリ２１から読み出した付加情報に基づき、読み出すデータがキャッシュ対象のデータかを判断する（ステップＳ１４）。ステップＳ２０において、キャッシュ制御部２４は、読み出した付加情報に基づきキャッシュ領域を選択する。付加情報がＡからＣのとき、キャッシュ制御部２４はキャッシュ領域としてそれぞれ領域４０から４２を選択する。その他の構成および制御は実施例１の変形例２と同じであり説明を省略する。
【００４９】
図１４（ａ）および図１４（ｂ）は、実施例１の変形例３においてデータを不揮発性メモリに記憶するときの処理を示すフローチャートである。図１４（ａ）は、ライターが行なう処理のフローチャートであり、図１４（ｂ）は、図１４（ａ）のステップＳ４４に対応しキャッシュ制御部２４が行なう処理のフローチャートである。ライターは、不揮発性メモリ２１にデータを書き込むコンピュータまたはプロセッサである。
【００５０】
図１４（ａ）に示すように、ライターは、不揮発性メモリ２１に書き込むデータを準備する（ステップＳ４０）。書き込むデータには、画像データ３０、音声データ３１、プログラムデータ３２およびキャッシュ対象外のデータ３３が含まれる。ライターは、書き込むデータに対応する付加情報を作成する（ステップＳ４２）。ライターは記憶装置１０にデータの書き込みを指示する（ステップＳ４４）。ライターは終了するか判断する（ステップＳ４６）。例えば、ライターは、書き込むデータが最後のときＹｅｓ、書き込むデータが残っているときＮｏと判断する。Ｙｅｓのとき終了し、ＮｏのときステップＳ４０に戻る。
【００５１】
図１４（ｂ）に示すように、キャッシュ制御部２４はライターからライトコマンドを受け付ける（ステップＳ５０）。例えば、プロセッサ２５がＩ／Ｆ制御部２６からライターが出力したライトコマンドを受け付けると、プロセッサ２５はキャッシュ制御部２４に不揮発性メモリ２１内にデータを書き込ませるコマンドを出力する。キャッシュ制御部２４は、書き込むデータの付加情報を取得する（ステップＳ５２）。例えば、付加情報はライターが出力するライトコマンドに付加されている。キャッシュ制御部２４は、Ｉ／Ｆ制御部２６またはプロセッサ２５からライトコマンドに付加された付加情報を取得する。
【００５２】
キャッシュ制御部２４は不揮発性メモリ２１にデータを書き込む（ステップＳ５４）。例えば、キャッシュ制御部２４は、ＲＯＭ制御部２３に指定されたアドレスにデータを書き込ませる。キャッシュ制御部２４は不揮発性メモリ２１に付加情報を書き込ませる（ステップＳ５６）。例えば、キャッシュ制御部２４はＲＯＭ制御部２３に指定されたアドレスに付加情報を書き込ませる。その後終了する。
【００５３】
実施例１の変形例３によれば、キャッシュ制御部２４は、不揮発性メモリ２１内にデータと関連付けて記憶された付加情報３４（情報）に基づき、キャッシュメモリ２０内の複数の領域４０から４２のいずれかに読み出したデータを格納する。これにより、データの種別に応じキャッシュ制御を行なうことができる。実施例１の変形例２では、ホスト装置２８がデータを読み出すときに、毎回リードコマンドに付加情報を付加する。実施例１の変形例３では、リードコマンドへの付加情報の付加が不要となる。
【００５４】
［実施例１の変形例４］
実施例１の変形例４は、データ種別ごとに異なるキャッシュ制御を行なう例である。
【００５５】
遊技機用データでは、同じデータ種別内にサイズの異なるデータが混在する。例えば、画像データ３０では、背景の画像データのサイズが大きい。背景の画像データはアクセス頻度が低い。一方、背景の上に表示されている小さな画像パーツの動画用の画像データのサイズは小さい。画像パーツは、フレームごと（例えば１／６０秒ごと）にアクセスされる場合が多い。このため、画像パーツはアスセス頻度が高い。音声データ３１では、背景に再生する音声データはサイズが大きくかつアクセス頻度が低い、効果音の音声データはサイズが小さくかつアクセス頻度が高い。このように、サイズの大きいデータはアクセス頻度が低く、サイズの小さいデータはアクセス頻度が高い。
【００５６】
領域４０から４２内で、大きいサイズのデータがキャッシュメモリ２０に格納されると、複数の小さいサイズのデータがキャッシュメモリ２０から消去される。この後、小さいデータにアクセスする場合、データを不揮発性メモリ２１にアクセスすることになる。このように、アクセス頻度の高い小さいサイズのデータを頻繁に不揮発性メモリ２１にアクセスすることにより、不揮発性メモリ２１のリード制限回数を短時間で超過することがある。例えばフラッシュメモリにおいて生じるリードディスターブのような問題が生じる。
【００５７】
また、キャッシュメモリ２０内において、複数の小さなサイズのデータが１個の大きなサイズのデータに置き換わると、データの転送が遅くなる。以下に説明する。
【００５８】
図１５（ａ）および図１５（ｂ）は、データのサイズと転送時間との関係を説明する図である。横軸は時間である。図１５（ａ）は、小さいサイズのデータ６２と大きいサイズのデータ６０を不揮発性メモリ２１から読み出す場合を比較している。ＮＡＮＤフラッシュメモリ等の不揮発性メモリ２１にアクセスするときは、レイテンシ６５に要する時間が長い。例えば時間ｔ０にホスト装置２８が記憶装置１０にリードコマンドを送信する。記憶装置１０からホスト装置２８へのデータ転送が始まる時間はｔ１である。時間ｔ１以降のデータ転送時間は、データ６０および６２のサイズにほぼ比例する。例えばデータ６２では時間ｔ２にホスト装置２８へのデータ転送が終了する。データ６０では時間ｔ３にデータ転送が終了する。
【００５９】
図１５（ｂ）は、４個のサイズの小さいデータ６２と１個のサイズの大きさデータ６０を転送する場合を示している。データ６０のサイズがデータ６２の４倍とすると、４個のデータ６２と１個のデータ６０を転送する時間は同じである。キャッシュメモリ２０にアクセスするときにはレイテンシに要する時間は非常に短く、ほぼ無視できるとする。データ６０がキャッシュメモリ２０に格納され、データ６２が不揮発性メモリ２１に記憶されている場合、４個のデータ６２を転送する前にそれぞれレイテンシ６５の時間を要する。データ６２がキャッシュメモリ２０に格納され、データ６０が不揮発性メモリ２１に記憶されている場合、レイテンシ６５の時間はデータ６０の転送の前の１回である。１個のデータ６０が４個のデータ６２に置き換わると、同じデータのサイズである４個のデータ６２と１個のデータ６０を転送時間は、３回のレイテンシ６５に相当する時間Ｔ０遅くなる。このように、大きなサイズのデータ６０がキャッシュメモリ２０に格納され、複数の小さなサイズのデータ６２に置換されると、データの転送が遅くなってしまう。
【００６０】
さらに、画像データ３０は音声データ３１に比べデータのサイズが大きい。また、データサイズとアクセス頻度の相関も画像データ３０と音声データ３１とで異なる。このように、データ種別により、データサイズおよび／またはアクセス頻度の傾向が異なる場合、データ種別ごとに異なるキャッシュ制御することが好ましい。
【００６１】
図１６は、実施例１の変形例４におけるキャッシュ制御部の制御を示すフローチャートである。図１６に示すように、実施例１の変形例１から３のステップＳ２０において、キャッシュ制御部２４はキャッシュ領域を選択する。ステップＳ２８の後、キャッシュ制御部２４は、不揮発性メモリ２１から読み出したデータのサイズが閾値Ｓ以上か判定する（ステップＳ６０）。Ｎｏのとき、キャッシュ制御部２４は読み出したデータをキャッシュ登録する（ステップＳ３０）。
【００６２】
Ｙｅｓのとき、キャッシュ制御部２４は、キャッシュメモリ２０に登録するサイズが閾値Ｓ以上のデータの個数を閾値Ｎに制限し、読み出したデータをキャッシュ登録する（ステップＳ６２）。例えば、キャッシュ制御部２４は、キャッシュメモリ２０に格納されたサイズが閾値Ｓ以上のデータの個数が閾値Ｎ未満のとき、読み出されたデータのサイズに関係なくＬＦＵ制御またはＬＲＵ制御等のキャッシュ制御を行なう。キャッシュメモリ２０に格納されたサイズが閾値Ｓ以上のデータの個数が閾値Ｎのとき、キャッシュ制御部２４は、サイズが閾値Ｓ以上のデータ内でＬＦＵ制御またはＬＲＵ制御等のキャッシュ制御を行なう。例えば、キャッシュ制御部２４は読み出したサイズが閾値Ｓ以上のデータと置換するキャッシュメモリ２０内のサイズが閾値Ｓ以上のデータを選択する。キャッシュ制御部２４はＲＡＭ制御部２２に選択したデータをキャッシュメモリ２０から消去させる。キャッシュ制御部２４はＲＡＭ制御部２２にキャッシュメモリ２０に読み出したデータを格納させる。
【００６３】
図１７（ａ)および図１７（ｂ）は、実施例１の変形例４における閾値ＳおよびＮの例を示す図である。図１７（ａ）に示すように、データ種別が画像データ３０のとき、閾値Ｓを１６Ｋバイトとする。ステップＳ６２の動作は行なわない。すなわち、キャッシュ制御部２４は、画像データ３０の領域４０のキャッシュ制御において、データサイズが１６Ｋバイト以上のデータはキャッシュ登録しない。データ種別が音声データ３１のとき、閾値Ｓを４Ｋバイトとする。ステップＳ６２の動作は行なわない。すなわち、キャッシュ制御部２４は、音声データ３１の領域４１のキャッシュ制御において、データサイズが４Ｋバイト以上のデータはキャッシュ登録しない。データ種別がプログラムデータ３２のとき、閾値Ｓおよび閾値Ｎを設けない。このとき、キャッシュ制御部２４は、プログラムデータ３２の領域４２のキャッシュ制御において、データサイズに基づく制御は行なわない。
【００６４】
このように、図１７（ａ）の例では、大きなサイズのデータが領域４０および４１に登録されないため、不揮発性メモリ２１のリード制限回数を短時間で超過すること、および／またはデータ転送が遅くなってしまうことを抑制できる。さらに、画像データ３０の閾値Ｓを音声データ３１より大きくしている。このため、データ種別ごとに適切なキャッシュ制御を行なうことができる。
【００６５】
図１７（ｂ）に示すように、データ種別が画像データ３０のとき、閾値Ｓを１６Ｋバイト、閾値Ｎを４個とする。このとき、キャッシュ制御部２４は、画像データ３０の領域４０のキャッシュ制御において、データサイズが１６Ｋバイト以上のデータを４個以上領域４０に格納しない。データ種別が音声データ３１のとき、閾値Ｓを４Ｋバイト、閾値Ｎを１６個とする。このとき、キャッシュ制御部２４は、音声データ３１の領域４１のキャッシュ制御において、データサイズが４ＫＢ以上のデータを１６個以上領域４１に格納しない。データ種別がプログラムデータ３２のときは図１７（ａ）の例と同じである。
【００６６】
このように、図１７（ｂ）の例では、大きなサイズのデータが所定個数以上領域４０および４１に登録されないため、不揮発性メモリ２１のリード制限回数を短時間で超過すること、および／またはデータ転送が遅くなってしまうことを抑制できる。また、大きなサイズのデータのうち、アクセス頻度の高いデータをキャッシュメモリ２０に格納できる。このため、データ転送速度を向上できる。遊技機用データにおいては、画像データ３０のサイズは音声データ３１より大きい。図１７（ａ）および図１７（ｂ）では、画像データ３０の閾値ＳおよびＮを音声データ３１より大きくしている。これにより、画像データ３０および音声データ３１ごとに適切なキャッシュ制御を行なうことができる。
【００６７】
実施例１の変形例４によれば、キャッシュ制御部２４は、複数の領域４０から４２毎に格納されたデータの置換の異なる制御を行なう。これにより、データ種別ごとに適切なキャッシュ制御を行なうことができる。
【００６８】
実施例１の変形例４では、キャッシュ制御部２４が複数の領域４０から４２毎にデータサイズに基づきキャッシュ制御を行なう例を説明したが、キャッシュ制御部２４は、複数の領域４０から４２毎にＬＦＵ制御およびＬＲＵ制御等を異ならせてもよい。
【００６９】
また、キャッシュ制御部２４は、領域４０（第１領域）において閾値Ｓ（第１サイズ）以下の画像データを閾値Ｓ(第１サイズ)より大きい画像データより優先的に格納し、領域に４１（第２領域）において閾値Ｓ（第２サイズ）以下の音声データを閾値Ｓ（第２サイズ）より大きい画像データより優先的に格納する。これにより、遊技機様データにおける画像データ３０および音声データ３１を適切にキャッシュ制御することができる。
【００７０】
実施例１およびその変形例においては、不揮発性メモリ２１に例としてフラシュメモリを例に説明したが不揮発性メモリ２１はフラッシュメモリ以外のメモリでもよい。不揮発性メモリ２１がフラッシュメモリの場合、同じデータが高頻度にアクセスすることにより生じるリードディスターブを抑制できる。データの種別として画像データ、音声データおよびプログラムデータを例に説明したが、データの種別はこれらに限られない。
【００７１】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７２】
１０        記憶装置
２０        キャッシュメモリ
２１        不揮発性メモリ
３０        画像データ
３１        音声データ
３２        プログラムデータ
４０−４２、４５−４８  領域
【図１】
0006757127.tif 000002
【図２】
0006757127.tif 000003
【図３】
0006757127.tif 000004
【図４】
0006757127.tif 000005
【図５】
0006757127.tif 000006
【図６】
0006757127.tif 000007
【図７】
0006757127.tif 000008
【図８】
0006757127.tif 000009
【図９】
0006757127.tif 000010
【図１０】
0006757127.tif 000011
【図１１】
0006757127.tif 000012
【図１２】
0006757127.tif 000013
【図１３】
0006757127.tif 000014
【図１４】
0006757127.tif 000015
【図１５】
0006757127.tif 000016
【図１６】
0006757127.tif 000017
【図１７】
0006757127.tif 000018