【課題】コンテンツデータの容量に対して不揮発性メモリが大容量となった場合であっても、データの書き込みに要する時間を増大させることなく、不揮発性メモリの誤り検出に必要なデータを出力する。
【解決手段】メモリコントローラ46は、記憶部42内の一部をデータの読み書きを実行する使用領域に設定し、残部をデータの読み書きを実行しない不使用領域に設定する使用領域設定部62と、ROMチェッカ70Aから、記憶部に記憶されたデータのリード要求を取得した場合に、リード要求に係る論理アドレスが使用領域内の論理アドレスであるか否かを判定する領域判定部64と、リード要求に係る論理アドレスが不使用領域内の論理アドレスであった場合に、リード要求に対する応答として、予め定められたダミーデータを出力する不使用領域データ出力部66と、を備える。
【発明を実施するための形態】
【0010】
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
以下、本発明の実施形態を詳細に説明する。
【0011】
〔第一の実施形態〕
<情報処理装置>
本発明の実施形態に係る情報処理装置の構成について説明する。
図1は、本発明の実施形態に係る情報処理装置の構成を説明するための機能ブロック図である。
情報処理装置1は、データ処理プロセッサ10、補助記憶装置(不揮発性記憶装置)40、を備えている。
図1に示す上位CPU2は、遊技機等を構成する情報処理装置1に対して上位に配置されたCPUである。
【0012】
<<データ処理プロセッサ>>
データ処理プロセッサ10は、画像、音声、発光等のデータを処理するプロセッサであり、CPU12、RAM13、画像処理部14、表示出力部16、サウンド処理部18、サウンド出力部20、発光処理部22、発光出力部24、データバス26、レジスタバス28を備えている。
CPU12は、データ処理プロセッサ10の全体を制御する。
RAM13は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ワークメモリとして利用可能である。
画像処理部14は、表示すべき画像を処理するものであり、補助記憶装置40に格納されたデータをデータバス26を介して取得して復号し、画像として描画することで画像データを生成する。
表示出力部16は、画像処理部14が生成した画像データをディスプレイ30等の表示部に出力する。ディスプレイ30は、LCD等の表示デバイスである。
【0013】
サウンド処理部18は、出力すべき音声信号を処理するものであり、補助記憶装置40に格納されたデータをデータバス26を介して取得して復号し、サウンドデータを生成する。
サウンド出力部20は、生成されたサウンドデータに基づき、スピーカ32等に音声信号を出力する。
発光処理部22は、演出に基づき、補助記憶装置40に格納されたデータをデータバス26を介して取得して復号し、LED34等の発光体を駆動するためのデータを生成する。
発光出力部24は、発光処理部が生成したデータに基づき、LED等の発光体を駆動する。
LED(light emitting diode)34は、順方向に電圧を加えた際に発光する半導体素子であり、発光体の一例である。
I/F制御部35は、補助記憶装置40とのインターフェースを制御する。
【0014】
<<補助記憶装置>>
補助記憶装置40は、記憶部(フラッシュメモリ)42、一時記憶部(DRAM)44、メモリコントローラ46、バス48を備えている。
補助記憶装置40は、いわゆるNANDフラッシュメモリを含むSSD(Solid State Drive)である。ただし、通常のSSDでは一時記憶部44が書込み用のキャッシュメモリとして用いられるが、本発明において用いるSSDはSSDのファームウェアを変更し、一時記憶部44を読み出し用のキャッシュメモリとして利用している。なお、通常のSSDで用いられている書込み用DRAMを読み出し用に変更せず、読み出し用として別途DRAMを用意しても良い。
記憶部42は、例えば、NANDフラッシュメモリアレイからなる不揮発性のメモリである。
一時記憶部44は、例えば、DDR DRAMからなる揮発性のメモリであって、読み出しデータをキャッシュする。
【0015】
メモリコントローラ46は、全体制御部50、シーケンス制御部52、ECC(Error Check and Correct)制御部54、ホストI/F制御部56、メモリI/F制御部58、領域制御部60を備え、補助記憶装置40を制御する。
全体制御部50は、RAM、ROM等を内蔵し(図示省略)、メモリコントローラ46全体を制御する。また、全体制御部50は、記憶部42にデータを書き込むデータ書込手段(データ書込部)、記憶部42からデータを読み込むデータ読込手段(データ読出部)として機能する。
シーケンス制御部52は、メモリコントローラ46から記憶部42に与えられる内部コマンド信号に基づき、記憶部42の動作を制御する。
ECC制御部54は、読み出しデータに付加されたエラーコレクションコードに基づき、読み出したデータに含まれる誤りを検出し、且つ誤りを検出した場合に当該データの誤りを訂正する。
ホストI/F制御部56は、ホスト(データ処理プロセッサ10等)との間のインターフェースを制御する。
メモリI/F制御部58は、記憶部42であるNANDアレイや一時記憶部44であるDRAM等とのインターフェースを制御する。
【0016】
領域制御部60は、使用領域設定部62、領域判定部64、不使用領域データ出力部66、設定情報管理部68とを備えている。領域制御部60の詳細構成については後述する。
メモリコントローラ46の各構成は、メモリコントローラ46のマイクロプロセッサにより実現する。
また、データバス26とバス48との接続は、シリアル高速通信バスや、PCIe(PCIエクスプレス)等を利用することができる。
【0017】
<<<記憶部の詳細構成>>>
図2は、記憶部の概略構成を示す図である。
記憶部42は、ユーザデータ領域422と、システム領域421と、を備える。
ユーザデータ領域422は、ユーザデータ、即ち、遊技機のコンテンツデータが格納される領域である。ユーザデータ領域422は、複数のページ423,423…から構成されている。各ページ423の大きさは例えば4kiB(キビバイト)等、所定の大きさに設定される。なお、1KiBは1024バイトである。
各ページ423,423…には、それぞれ固有のアドレスである物理アドレスが割り当てられており、各ページ423,423…は物理アドレスによって特定される。ユーザデータ領域422は、所定容量の複数のページ423,423…に分割して管理されている。
システム領域421には、プロセスが使用する論理アドレスと、物理アドレスとを対応付けた論理アドレス−物理アドレス変換テーブル(以下、単に「論物テーブル」と言う。
図3参照)が格納される。システム領域421には、全ての物理アドレスに係る論物テーブルを格納可能な容量が確保される。
【0018】
図3は、記憶部のシステム領域に格納される論理アドレス−物理アドレス変換テーブルを示す図である。
論物テーブルには、論理アドレスに対して物理アドレスとビット属性とが対応付けて記憶されている。論理アドレスは、外部装置のCPU(例えば
図1に示す上位CPU2、CPU12等)がリード要求又はライト要求の対象となるデータの格納場所を指定する際に使用する仮想的なアドレスである。物理アドレスは、データが実際に格納される各ページの場所を直接的に示す固定されたアドレスである。ビット属性は、各物理アドレスが示すページに格納されているデータが有効か無効かを示す情報である。ビット属性が「無効」とは当該物理アドレスに格納されているデータが、いわゆる論理削除されていることを示す。ビット属性が「無効」の場合は、当該物理アドレスに格納されているデータは削除されているとみなして取り扱われる。論理アドレスによって間接的に示されるページ423に何らかのデータが書き込まれたときに、ビット属性は「有効」に変更される。
【0019】
なお、メモリセル(記憶素子)に書き換え回数の制限があるフラッシュメモリを使用した補助記憶装置40においては、データの消失を防止して補助記憶装置40の信頼性を高めるために、データの書き換えを可能な限り各メモリセルに均等に分散させるウェアレベリングが実施される。また、破損したメモリセルはデータの書き込みに使用されないため、当該メモリセルを含むページの物理アドレスは論物テーブルから除外される。従って、論物テーブルにおいて連続する論理アドレスに対して、物理アドレスが連続するように順次対応づけられているとは限らない。
【0020】
<<<領域制御部の詳細構成>>>
領域制御部60を構成する各部の詳細について説明する。
使用領域設定部62は、記憶部42のユーザデータ領域422中に使用領域を設定する。使用領域は、外部装置のCPU等によるデータの書き込み対象、及び読み込み対象になる領域である。記憶部42のユーザデータ領域422のうち、使用領域以外の領域は不使用領域となる。不使用領域は、外部装置のCPU等によるデータの書き込み対象、及び読み込み対象にはならない領域である。使用領域設定部62が記憶部42のユーザデータ領域422に使用領域を設定することにより、ユーザデータ領域422の残部は不使用領域に設定される。
使用領域設定部62は、連続する論理アドレスによって表現される1つのまとまった領域を使用領域として設定する(
図3参照)。
使用領域設定部62は、少なくとも使用領域と不使用領域との境界を示す論理アドレスを保持する。ユーザデータ領域422の全体が使用領域となる場合、使用領域設定部62は、ユーザデータ領域422の論理アドレスの最大値を少なくとも保持する。
使用領域の論理アドレスの下限値(下限論理アドレス)が、論物テーブル中の最小の論理アドレスである場合、使用領域設定部62は少なくとも使用領域の論理アドレスの上限値(上限論理アドレス)を保持する。
図3の例では、論理アドレスL000からL031までの32Gbit分が使用領域に設定されている。この場合、使用領域設定部62は使用領域の上限論理アドレスである論理アドレスL031を少なくとも保持する。なお、使用領域設定部62は、使用領域の論理アドレスの下限値と上限値の双方を保持してもよい。また、使用領域の論理アドレスの下限値は、論物テーブル中の最小の論理アドレスでなくても構わない。
【0021】
一度使用された補助記憶装置40を再利用することも可能である。
図3では、全体容量128Gbitのうち、48Gbit分の領域が過去に使用されたことのある補助記憶装置40を再利用する例を示している。既に使用された48Gbit分の論理アドレスには物理アドレスが割り当てられているが、残りの80Gbit分の論理アドレスには物理アドレスが割り当てられていない。
使用領域設定部62が不使用領域に設定した領域のデータは書き込み対象にも読み込み対象にもならないから、該部位に含まれる論理アドレスのビット属性は有効のままでもよいし、無効に変更されてもよい。また、不使用領域に対応する各ページに既存のデータが格納されていても構わない。
【0022】
領域判定部64は、外部装置のCPUが発行するリード要求又はライト要求の対象となっている論理アドレスが、使用領域内の論理アドレスであるか否かを判定する。即ち、領域判定部64は、外部装置から出力された要求に係る論理アドレスの値が、使用領域を示す論理アドレスの下限値と上限値との間にあるか否かを判定する。
領域判定部64は、リード要求に係る論理アドレスが使用領域の論理アドレスであった場合に、全体制御部50に対して当該論理アドレスに係るデータを記憶部42の該当するページから読み出して外部装置に出力するように要求する。領域判定部64は、リード要求に係る論理アドレスが不使用領域の論理アドレスであった場合に、不使用領域データ出力部66に対してダミーデータを出力するように要求する。
領域判定部64は、ライト要求に係る論理アドレスが使用領域の論理アドレスであった場合に、全体制御部50に対してライト要求に係るデータを当該論理アドレスによって示されるページに書き込むように要求する。領域判定部64が、ライト要求に係る論理アドレスが不使用領域の論理アドレスであると判定した場合、ライト要求に係るデータは記憶部42に書き込まれない。この場合、領域判定部64は、当該要求に対して応答しない(ライト要求を無視する)、エラーが発生した旨の応答を返す、正常処理済みの応答を返す、の何れかの処理を実行することができる。
【0023】
不使用領域データ出力部66は、リード要求に係る論理アドレスが不使用領域の論理アドレスであった場合に、リード要求に対する応答として予め定められたダミーデータを出力する。不使用領域データ出力部66は、ダミーデータを保持する。
ここでダミーデータは、不使用領域データ出力部66が規定するデフォルトの値とすることができる。デフォルトの値には、例えば1又は0を用いることができる。或いは、ダミーデータは、ユーザデータ領域422中に使用領域を設定する際にユーザが指定した任意の値でもよい。
なお、補助記憶装置40の全領域におけるデータの誤り検出にチェックサム値を用いる場合には、計算を容易にして処理を高速化するために、不使用領域データ出力部66が出力するデータは1又は0に設定されることが望ましい。記憶部42の各メモリセルが2ビット以上の値を記憶可能な場合であっても、ユーザが指定可能なダミーデータは、1又は0に制限されるようにしてもよい。
設定情報管理部68は、外部装置からの要求に応じて、使用領域の上限論理アドレス、下限論理アドレス、及び、ダミーデータ等、領域制御部60に関わる各種の設定値を外部装置に出力する。
【0024】
<<ROMチェッカ/ROMライタ>>
図4は、補助記憶装置とROMチェッカ、ROMライタの機能構成を示すブロック図である。ROMチェッカとROMライタは、補助記憶装置に接続される外部装置の一例である。
ROMチェッカ70Aは、補助記憶装置40に格納されたコンテンツデータの正常性を検査する手段である。ROMチェッカ70Aは、チェックサム値、或いは他の誤り検出方式を利用してコンテンツデータの正常性を検査する。
ROMチェッカ70Aは、CPU72、ROM74、RAM76、入力回路78、表示回路80、及びI/F制御部82を備え、これらがバス84を介して接続された構成を有する。
CPU72は、ROMチェッカ70Aの全体を制御する。ROM74は、制御プログラム等を格納する不揮発性のメモリである。RAM76は、CPU72のワークメモリとして機能する揮発性の記憶手段である。I/F制御部82は、補助記憶装置40等の外部装置とのインターフェースを制御する。
入力回路78は、キーやスイッチ等を備えた入力装置86から入力された値や指示等を受け付けてCPU72に出力する。表示回路80はCPU72からの命令に基づいて、各種の情報を表示装置88に表示する。
【0025】
ROMライタ70Bは、補助記憶装置40の記憶部42に遊技用のコンテンツデータを書き込ませる手段である。ROMライタ70Bは、補助記憶装置40の記憶部42に格納する遊技用のコンテンツデータ等が記憶されたHDD(Hard Disk Drive)90等の記憶媒体が接続される点で、ROMチェッカ70Aと異なるが、基本的な構成はROMチェッカ70Aと同様である。ROMライタ70Bは、HDD90からコンテンツデータを読み出すと共に、読み出したコンテンツデータと書き込み先を示す論理アドレスとを含むライト要求を補助記憶装置40に出力する。
【0026】
<初期設定手順>
図5は、初期設定手順の一例を示すフローチャートである。
遊技機メーカが補助記憶装置40の記憶部42に遊技用のコンテンツデータを書き込む場合には、補助記憶装置40にROMライタ70Bが接続される。ROMライタ70Bは補助記憶装置40に対して、各種の要求とコンテンツデータを出力する。補助記憶装置40はROMライタ70Bからの要求に基づき動作する。記憶部42へのコンテンツデータの書き込みに先立って、使用領域とダミーデータを領域制御部60に設定する初期設定が実行される。
【0027】
ステップS1において、使用領域設定部62は、ROMライタ70Bからの使用領域設定要求に基づき使用領域を設定する。使用領域設定部62は、ROMライタ70Bから下限論理アドレスと上限論理アドレスが入力された場合に、下限論理アドレスから上限論理アドレスまでを使用領域に設定する。使用領域設定部62は、ROMライタ70Bから上限論理アドレスのみが入力された場合に、論物テーブル中の最小の論理アドレスを使用領域の下限論理アドレスとみなして、下限論理アドレスから上限論理アドレスまでを使用領域に設定する。使用領域設定部62は、ROMライタ70Bから下限論理アドレスと上限論理アドレスの何れも入力されなかった場合に、ユーザデータ領域422の全体を使用領域に設定する。使用領域設定部62は、少なくとも使用領域と不使用領域との境界を示す論理アドレスを保持する。使用領域が設定された後、ステップS3が実行される。
【0028】
ステップS3において、全体制御部50は、論物テーブル中、使用領域範囲内にある全ての論理アドレスに係るビット属性を「無効」に変更する。この処理により、使用領域範囲内の論理アドレスに対応する物理アドレス(ページ)に記憶されているユーザデータが論理削除される。なお、使用領域に設定された論理アドレスのうち、物理アドレスが割り当てられていない論理アドレスが存在する場合、当該論理アドレスに係るビット属性の変更処理は省略される。
【0029】
ステップS5において、不使用領域データ出力部66は、ROMライタ70Bからのダミーデータ設定要求に基づきダミーデータを設定する。不使用領域データ出力部66は、ROMライタ70Bからダミーデータ用の値を入力された場合に、入力された値をダミーデータ用の値として設定し、これを保持する。不使用領域データ出力部66は、ROMライタ70Bからダミーデータ用の値を入力されなかった場合に、ダミーデータ用に用意されたデフォルト値(例えば1)をダミーデータ用の値として設定し、これを保持する。
なお、上記各ステップは入れ替えて実施可能である。例えば、ステップS1よりも先にステップS3が実行される場合、全体制御部50は、論物テーブル中の全ての論理アドレスに係るビット属性を「無効」に変更する。
【0030】
<コンテンツデータの書き込み手順>
図6は、コンテンツデータの書き込み手順を示したフローチャートである。
ステップS11において、領域判定部64は、ROMライタ70Bからのライト要求に係る論理アドレスが使用領域の論理アドレスであるか否かを判定する。ライト要求に係る論理アドレスが使用領域の論理アドレスであった場合は、ステップS13が実行される。ライト要求に係る論理アドレスが不使用領域の論理アドレスであった場合、ライト要求に係るデータは記憶部42に書き込まれない。
ステップS13において、全体制御部50は、ライト要求と共にROMライタ70Bから出力されたコンテンツデータを、ライト要求に係る論理アドレスが示すページ423に書き込む。
ステップS15において、全体制御部50は、ライト要求に係る論理アドレスのビット属性を「有効」に変更する。
【0031】
<コンテンツデータの読み込み手順>
図7は、コンテンツデータの読み込み手順を示したシーケンスチャートである。なお、本例には、補助記憶装置40に対して外部装置としてROMチェッカ70Aを接続した例を示しているが、外部装置はROMチェッカ70A以外の装置でもよい。
ステップS21において、ROMチェッカ70AのCPU72は、論理アドレスを指定したリード要求を補助記憶装置40に出力する。
【0032】
ステップS23において、領域判定部64は、リード要求に含まれる論理アドレスが、使用領域のものであるか不使用領域のものであるかを判定する。即ち、領域判定部64は、取得した論理アドレスが、下限論理アドレス以上、且つ上限論理アドレス以下であるか否かを確認する。取得した論理アドレスが使用領域内のものである場合はステップS25以下の処理が実行され、取得した論理アドレスが使用領域外のものである場合はステップS29以下の処理が実行される。
【0033】
ステップS25において、領域判定部64は、全体制御部50に対して、リード要求に基づくデータの読み出しを要求する。
ステップS27において、全体制御部50は、リード要求に係る論理アドレスに対応する物理アドレスに格納されたデータを読み出す。なお、読み出されたデータは順次一時記憶部42にキャッシュされ、所定のタイミングでROMチェッカ70Aに出力される。
【0034】
ステップS29において、領域判定部64は、不使用領域データ出力部66にダミーデータの出力を要求する。
ステップS31において、不使用領域データ出力部66は、予め定められた所定のダミーデータをROMチェッカ70Aに出力する。
【0035】
このように、本実施形態においては、リード要求に係る論理アドレスが不使用領域のものであった場合に、記憶部42へのアクセスが発生しない。また、不使用領域データ出力部66は不使用領域のデータとしてダミーデータを出力するため、記憶部42の全領域を対象とした誤り検出にチェックサム値を利用する場合であっても、誤り検出は問題なく実行される。
【0036】
<コンテンツデータの書き込み時における従来例との比較>
以下、コンテンツデータの書き込み時における記憶部42へのアクセス量について、従来例と本実施形態とを比較する。なお、以下においては、512Gbitの記憶容量を有するユーザデータ領域422に128Gbitのコンテンツデータを書き込む場合、且つ、予め512Gbit分の論理アドレスの全てに物理アドレスが割り当てられている(論物テーブルが作成されている)ものとして説明する。また、本実施形態ではユーザデータ領域422のうちの128Gbit分を使用領域に設定しているものとする。
【0037】
<<ケース1>>
表1は、ケース1の手順におけるアクセス量の比較例を示している。
【0039】
ケース1では、コンテンツデータを書き込む場合に、
(工程1)全ての論理アドレスのビット属性を無効化する。
(工程2)全ユーザデータ領域にデータ1(又は0)を書き込む。
(工程3)ユーザデータ領域にコンテンツデータを書き込む。
(工程4)リードベリファイを行う。
の順番で記憶部42に対するアクセスが発生する。
【0040】
なお、実施形態における工程1は
図5のステップS3に対応する。実施形態の工程1においてビット属性の無効化の対象となる「全ての論理アドレス」は、使用領域に設定された全ての論理アドレスである。各論理アドレスのビット属性は、従来手順では工程2において有効化され、実施形態の手順では工程3において有効化される。
【0041】
記憶部42の全領域を対象とした誤り検出にチェックサム値を利用する場合、従来例ではコンテンツデータが格納された領域以外の領域にも何らかのデータを書き込む必要があった。以上の理由から、従来例では工程1、2、4で夫々512Gbit分のアクセスが発生し、工程3で128Gbit分のアクセスが発生するため、アクセス量の合計は1664Gbit分となる。
一方、本発明の実施形態では、使用領域に対してのみアクセスが発生する。工程2はコンテンツデータが格納された領域以外の領域にも何らかのデータを書き込むことを目的とした工程であるから、本例では省略される。不使用領域へのデータの書き込みが行われないため、工程4では不使用領域に対するリードベリファイは実行されない。以上より、本例では、工程1、3、4で夫々128Gbit分のアクセスが発生し、合計384Gbit分のアクセスが発生する。これは、上記従来例の約23%であり、本発明の実施形態ではアクセス量が大幅に削減されている。
【0042】
<<ケース2>>
表2は、ケース2の手順におけるアクセス量の比較例を示している。
【0044】
ケース2では、コンテンツデータを書き込む場合に、
(工程1)全ての論理アドレスのビット属性を無効化する。
(工程2)ユーザデータ領域にコンテンツデータを書き込む。
(工程3)残りのユーザデータ領域にデータ1(又は0)を書き込む。
(工程4)リードベリファイを行う。
の順番で記憶部42に対するアクセスが発生する。
【0045】
なお、実施形態における工程1は
図5のステップS3に対応する。実施形態の工程1においてビット属性の無効化の対象となる「全ての論理アドレス」は、使用領域に設定された全ての論理アドレスである。各論理アドレスのビット属性は、従来手順では工程2及び工程3において有効化され、実施形態の手順では工程2において有効化される。
【0046】
ケース2では、先にコンテンツデータを書き込んだ後に、残領域にデータ1(又は0)を書き込むため、従来例におけるアクセス量の合計は1536Gbit分となる。
一方、本発明の実施形態では、使用領域に対してのみアクセスが発生するため、ケース1と同様に工程3は省略される。本例では、工程1、2、4で夫々128Gbit分のアクセスが発生し、合計384Gbit分のアクセスが発生する。これは、ケース2に係る従来例の25%であり、本発明の実施形態ではアクセス量が大幅に削減されている。
【0047】
<効果>
以上のように本実施形態によれば、コンテンツデータを格納する使用領域以外の領域にはデータを書き込む必要がなく、不使用領域に設定された論理アドレスに係るページに対してアクセスが発生しないため、補助記憶装置40に対するデータの書き込み時間を大幅に短縮できる。
また、不使用領域に対するリード要求に対しては、予め設定されたダミーデータを出力するので、記憶部42の全領域を対象とした誤り検出にチェックサム値を利用する場合であっても、誤り検出は問題なく実行される。
また、本実施形態においては、コンテンツデータの格納に必要な容量分のページのみをデータの書き換え対象とすることができる。NAND型のフラッシュメモリは書き換え回数に制限があるが、本実施形態においては各ページの書き換え回数を低減することができるため、NAND型のフラッシュメモリを利用した補助記憶装置40の再利用回数を増大させることができる。
【0048】
〔本発明の実施態様例と作用、効果のまとめ〕
<第一の実施態様>
本態様に係るメモリコントローラ46は、不揮発性メモリ(記憶部42)へのデータの書き込み及び読み出しを制御する。メモリコントローラは、不揮発性メモリ内の第一の領域をデータの読み書きを実行する使用領域に設定し、第一の領域とは異なる第二の領域をデータの読み書きを実行しない不使用領域に設定する使用領域設定部62と、外部装置(ROMチェッカ70A等)から、不揮発性メモリに記憶されたデータのリード要求を取得した場合に、リード要求に係る論理アドレスが使用領域内の論理アドレスであるか否かを判定する領域判定部64と、リード要求に係る論理アドレスが不使用領域内の論理アドレスであった場合に、リード要求に対する応答として、予め定められたダミーデータを出力するデータ出力部(不使用領域データ出力部66)と、を備えることを特徴とする。
【0049】
本態様において、遊技機の演出に使用される各種のコンテンツデータは、使用領域に格納される。不使用領域はデータの読み書き対象とはならないので、外部装置から不使用領域を対象としたデータのリード要求及びライト要求が発行された場合であっても、不使用領域に対するアクセスは発生しない。
従来、不揮発性メモリの全領域を対象とした誤り検出にチェックサム値を利用する場合には、コンテンツデータを格納した領域以外の領域をチェックサム用のデータで埋める必要があった。
本態様においては、不使用領域に対するリード要求への応答として、予め設定されたダミーデータを出力するため、不使用領域にデータが書き込まれていなくても、不揮発性メモリの全領域を対象とするチェックサム値を利用した誤り検出を実行可能となる。また、不使用領域にデータを書き込む必要がないので、コンテンツデータの容量に対して不揮発性メモリが大容量となった場合であっても、不揮発性メモリに対するコンテンツデータの書き込み時間は増大しない。
【0050】
本態様によれば、誤り検出用のデータを書き込む必要がないため、コンテンツデータの容量に対して不揮発性メモリが大容量となった場合であっても、データの書き込みに要する時間が増大しない。また、不使用領域に対するリード要求への応答用にダミーデータを設定するため、不揮発性メモリの誤り検出に必要なデータを出力可能となる。
本態様によれば、チェックサム値を利用した誤り検出が行われる場合であっても不使用領域にデータを書き込む必要がなく、メモリセルの寿命を長くすることが可能となる。また、遊技機の検定機関で用いられる機器、例えば、ROMチェッカ、ROMライタのソフトウェアを変更することなく、コンテンツデータを格納した不揮発性メモリの検査を行うことができる。
なお、メモリコントローラは、不揮発性メモリからデータを読み出して外部装置に出力するデータ読出部(全体制御部50)を備えている。リード要求に係る論理アドレスが使用領域内の論理アドレスであった場合に、データ読出部が、該論理アドレスが示す不揮発性メモリ内の領域からデータを読み出してリード要求に対する応答として出力する。
【0051】
<第二の実施態様>
本態様に係るメモリコントローラ46において、データ出力部(不使用領域データ出力部66)は、外部装置(ROMチェッカ70A等)に対して1又は0を出力することを特徴とする。
NAND型のフラッシュメモリ(記憶部42の一例)の中には、各メモリセルが2ビット以上の値を記憶可能なものが存在する。このような場合であっても、記憶部の全領域に対する誤り検出にチェックサム値を用いる場合には、データ出力部は計算を容易にする値を出力することが望ましい。
本実施形態によれば、データ出力部が1又は0を出力するので、誤り検出時の計算が容易となり、誤り検出処理が高速化される。
【0052】
<第三の実施態様>
本態様に係る不揮発性記憶装置(補助記憶装置40)は、メモリコントローラ46と、不揮発性メモリ(記憶部42)と、を備えることを特徴とする。
本態様に係る不揮発性記憶装置は、第一、及び第二の実施態様に示した効果を享受する。