(57)【特許請求の範囲】
【請求項１】
所定の容量で規定される複数のブロックで構成され、前記ブロックには固有のアドレスが付されているデータ記憶部と、
それぞれの制御方式にしたがって、アドレスを指定することによって前記データ記憶部の所定のブロックに対してアクセスを行う複数のアクセス制御部と、
前記データ記憶部に不良ブロックが存在する場合、当該不良ブロックの先頭アドレスと、当該不良ブロックを代替する正常なブロックの先頭アドレスとが対応付けて構成されるアドレス対を記憶するアドレス記憶部と、
前記複数のアクセス制御部のいずれかによって所定のアドレスが指定されて前記データ記憶部の所定のブロックに対してアクセスが行われたときに、当該ブロックが不良ブロックであった場合、前記アドレス対を参照して当該不良ブロックに代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックに前記アクセス制御部をアクセスさせるアクセス実行部を備える電子機器。
【請求項２】
請求項１記載の電子機器であって、
前記アクセス実行部は、前記複数のアクセス制御部のいずれかによって所定のアドレスが指定されて前記データ記憶部の所定のブロックに対してアクセスが行われたときに、当該所定のブロックに対して前記アクセス制御部をアクセスさせ、前記アクセス制御部にアクセスさせてから、所定時間内に応答がないことを条件として、当該所定のブロックを不良ブロックであると判断する電子機器。
【請求項３】
請求項１記載の電子機器であって、
前記データ記憶部は、前記複数のブロックで構成されるデータブロック領域と、当該データブロック領域のブロックが不良ブロックとなった場合に、当該不良ブロックに記憶されていたデータを代替して記憶する複数の予備ブロックで構成される予備ブロック領域とから構成される不揮発性メモリである電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリを有する電子機器に関する。
【背景技術】
【０００２】
近年、例えば、携帯電話等の電子機器は、データを記憶する記憶媒体として、アドレスが付されたブロックという記憶単位でデータの管理を行うフラッシュメモリが使用されることが多い。
【０００３】
ここで、特許文献１には、どのような種類のフラッシュメモリ（例えば、ＮＡＮＤフラッシュメモリ）に対しても対応可能な制御部を提供する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１５８９９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、フラッシュメモリ内には、例えば、ハードウェアの欠陥等によってデータを正常に書き込んだり読み込んだりすることができない、不良ブロック（バッドブロック）と呼ばれるブロックが発生することがある。バッドブロックになってしまったブロックは、二度と正しいアクセス（データの読み込み、書き込み、消去）ができなくなる。
【０００６】
したがって、アプリケーションプログラム等が、バッドブロックを有するフラッシュメモリにアクセスする場合、バッドブロックを避けてデータの書き込みや読み出しを行わなければならないため、当該アプリケーションプログラムによる処理が煩雑になってしまうという問題があった。
【０００７】
本発明では、バッドブロックを有する不揮発性メモリにアクセスする場合であっても、アプリケーションプログラム等がバッドブロックを意識せずにデータの書き込みや読み出しを効率的に行うことができる電子機器を提供することを一つの目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る電子機器は、上記課題を解決するために、所定の容量で規定される複数のブロックで構成され、前記ブロックには固有のアドレスが付されているデータ記憶部と、それぞれの制御方式にしたがって、アドレスを指定することによって前記データ記憶部の所定のブロックに対してアクセスを行う複数のアクセス制御部と、前記データ記憶部に不良ブロックが存在する場合、当該不良ブロックの先頭アドレスと、当該不良ブロックを代替する正常なブロックの先頭アドレスとが対応付けて構成されるアドレス対を記憶するアドレス記憶部と、前記複数のアクセス制御部のいずれかによって所定のアドレスが指定されて前記データ記憶部の所定のブロックに対してアクセスが行われたときに、当該ブロックが不良ブロックであった場合、前記アドレス対を参照して当該不良ブロックに代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックに前記アクセス制御部をアクセスさせるアクセス実行部を備える。
【０００９】
また、電子機器では、前記アクセス実行部は、前記複数のアクセス制御部のいずれかによって所定のアドレスが指定されて前記データ記憶部の所定のブロックに対してアクセスが行われたときに、当該所定のブロックに対して前記アクセス制御部をアクセスさせ、前記アクセス制御部にアクセスさせてから、所定時間内に応答がないことを条件として、当該所定のブロックを不良ブロックであると判断することが好ましい。
【００１０】
また、電子機器は、前記データ記憶部は、前記複数のブロックで構成されるデータブロック領域と、当該データブロック領域のブロックが不良ブロックとなった場合に、当該不良ブロックに記憶されていたデータを代替して記憶する複数の予備ブロックで構成される予備ブロック領域とから構成される不揮発性メモリであることが好ましい。
【発明の効果】
【００１１】
本発明によれば、バッドブロックを有する不揮発性メモリにアクセスする場合であっても、アプリケーションプログラム等がバッドブロックを意識せずにデータの書き込みや読み出しを効率的に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】携帯電話装置の外観斜視図である。
【図２】携帯電話装置の機能を示す機能ブロック図である。
【図３】携帯電話装置にアクセス実行部が備えられていない場合と、備えられている場合における対比についての説明に供する図である。
【図４】システム全体におけるアクセス実行部の位置付けについての説明に供する図である。
【図５】アドレステーブルの構成を模式的に示す図である。
【図６】起動時に不揮発性メモリから揮発性メモリへデータがコピーされる動作についての説明に供する図である。
【図７】不揮発性メモリに対してデータの読み出しと書き込みを行う際の処理の流れについての説明に供するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について説明する。図１は、本発明に係る電子機器の一例である携帯電話装置１の外観斜視図を示す。なお、図１は、いわゆる折り畳み型の携帯電話装置の形態を示しているが、本発明に係る携帯電話装置の形態としては特にこれに限られない。例えば、両筐体を重ね合わせた状態から一方の筐体を一方向にスライドさせるようにしたスライド式や、重ね合せ方向に沿う軸線を中心に一方の筐体を回転させるようにした回転式（ターンタイプ）や、操作部と表示部とが一つの筐体に配置され、連結部を有さない形式（ストレートタイプ）でも良い。
【００１４】
携帯電話装置１は、操作部側筐体部２と、表示部側筐体部３を備えて構成される。操作部側筐体部２は、表面部１０に、操作部１１と、携帯電話装置１の使用者が通話時に発した音声が入力されるマイク１２を備えて構成される。操作部１１は、各種設定や電話帳機能やメール機能等の各種機能を作動させるための機能設定操作キー１３と、電話番号の数字やメール等の文字等を入力するための入力操作キー１４と、各種操作における決定やスクロール等を行う決定操作キー１５から構成されている。
また、表示部側筐体部３は、表面部２０に、各種情報を表示するためのＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）表示部２１と、通話の相手側の音声を出力するスピーカ２２を備えて構成されている。
【００１５】
また、操作部側筐体部２の上端部と表示部側筐体部３の下端部とは、ヒンジ機構４を介して連結されている。また、携帯電話装置１は、ヒンジ機構４を介して連結された操作部側筐体部２と表示部側筐体部３とを相対的に回転することにより、操作部側筐体部２と表示部側筐体部３とを互いに開いた状態（開放状態）にしたり、操作部側筐体部２と表示部側筐体部３とを折り畳んだ状態（折畳み状態）にしたりできる。
【００１６】
また、図２は、携帯電話装置１の機能を示す機能ブロック図である。携帯電話装置１は、図２に示すように、操作部１１と、マイク１２と、メインアンテナ４０と、ＲＦ回路部４１と、ＬＣＤ制御部４２と、音声処理部４３と、メモリ４４と、制御部４５が操作部側筐体部２に備えられ、ＬＣＤ表示部２１と、スピーカ２２と、ＬＣＤドライバ２３が表示部側筐体部３に備えられている。
【００１７】
メインアンテナ４０は、第１の使用周波数帯（例えば、８００ＭＨｚ）で基地局等と通信を行い、ＧＰＳ通信のための第２の使用周波数帯（例えば、１．５ＧＨｚ）に対応できるデュアルバンド対応構成である。なお、本実施の形態では、第１の使用周波数帯として、８００ＭＨｚとしたが、これ以外の周波数帯であっても良い。また、メインアンテナ４０は、第１の使用周波数帯で外部装置と通信を行い、ＧＰＳ通信のための第２の使用周波数帯に対応できるアンテナを別途設けても良い。
【００１８】
ＲＦ回路部４１は、メインアンテナ４０によって受信した信号を復調処理し、処理後の信号を制御部４５に供給する。そして、制御部４５から供給された信号を変調処理し、メインアンテナ４０を介して外部装置（基地局）に送信する。また、その一方で、メインアンテナ４０によって受信している信号の強度を制御部４５に通知する。
【００１９】
ＬＣＤ制御部４２は、制御部４５の制御にしたがって、所定の画像処理を行い、処理後の画像データをＬＣＤドライバ２３に出力する。ＬＣＤドライバ２３は、ＬＣＤ制御部４２から供給された画像データをフレームメモリに蓄え、所定のタイミングでＬＣＤ表示部２１又はサブＬＣＤ表示部３０に出力する。
音声処理部４３は、制御部４５の制御にしたがって、ＲＦ回路部４１から供給された信号に対して所定の音声処理を行い、処理後の信号をスピーカ２２に出力する。スピーカ２２は、音声処理部４３から供給された信号を外部に出力する。
【００２０】
また、音声処理部４３は、制御部４５の制御にしたがって、マイク１２から入力された信号を処理し、処理後の信号をＲＦ回路部４１に出力する。ＲＦ回路部４１は、音声処理部４３から供給された信号に所定の処理を行い、処理後の信号をメインアンテナ４０に出力する。
【００２１】
メモリ４４は、揮発性メモリ４４ａ（例えば、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）である。）と、不揮発性メモリ４４ｂ（データ記憶部）（例えば、ＮＡＮＤ型フラッシュメモリや、ＮＯＲ型フラッシュメモリである。）を含んで構成されている。また、揮発性メモリ４４ａは、制御部４５による演算処理に利用されるワーキングメモリとしての機能を有する。不揮発性メモリ４４ｂは、複数のアプリケーションや当該アプリケーションが必要とする各種のテーブル等が記憶されている。また、不揮発性メモリ４４ｂには、各種アプリケーションが記憶されている。ここで、各種アプリケーションとは、例えば、地上波デジタル放送を視聴するアプリケーション（以下、ワンセグアプリという。）Ａ１や、メールの作成・送信・受信等を行うメールアプリケーション（以下、メールアプリという。）Ａ２や、ランニングチェンジ等のために利用される保守アプリケーション（以下、保守アプリという。）Ａ３が該当する。
制御部４５は、携帯電話装置１の全体を制御しており、中央処理装置（ＣＰＵ）等を用いて構成される。
【００２２】
ここで、不揮発性メモリ４４ｂの構造について説明する。不揮発性メモリ４４ｂは、フローティング・ゲートの絶縁部の消耗により、メモリセルの書き込みが規定時間で完了しなくなることがある。このようなブロックは、プログラムの実行を行ってもエラーとなるため、不良ブロック（バッドブロック）として以降のメモリ管理対象から除外される必要がある。また、バッドブロックが発生した時点では、そのブロックの中に有効なデータがまだ格納されている場合がある。この場合には、有効なデータを正常なブロックに移動したうえで、バッドブロックをメモリ管理対象から除外する。
【００２３】
なお、ＮＯＲ型フラッシュメモリは、ＮＡＮＤ型フラッシュメモリと比較して、データ耐久性の信頼性が高いため、バッドブロックに対する対応策を図らなくても良いように思える。しかし、ＮＯＲ型フラッシュメモリも不慮の事故によって、あるブロックが使用不能になることがある。よって、本実施形態では、ＮＯＲ型フラッシュメモリに対しても、バッドブロックの対応策を考慮する。
【００２４】
また、不揮発性メモリ４４ｂに格納されているアプリケーションは、バッドブロックに対する処理も行っている。本実施形態に係る携帯電話装置１では、不揮発性メモリ４４ｂにバッドブロックが発生しても、各アプリケーションのバッドブロックに対する処理負担を軽減しつつ、バッドブロックの発生による不具合を解消することが可能な機能を有している。
【００２５】
ここで、上述した機能を発揮するための具体的な構成と動作について詳細に説明する。携帯電話装置１は、図２に示すように、アドレス記憶部５１と、データ記憶部５２と、アクセス制御部４５ａと、アクセス実行部４５ｂを備える。なお、本実施の形態では、アドレス記憶部５１とデータ記憶部５２とは、不揮発性メモリ４４ｂとして一体的に構成されているものとする。
【００２６】
不揮発性メモリ４４ｂは、所定の容量で規定されるブロック単位で管理され、ブロックには固有のアドレスが付されており、データが書き込まれる複数のブロックで構成されるデータブロック領域と、当該データブロック領域のブロックが不良ブロックとなった場合に、当該不良ブロックに記憶されていたデータを代わりに記憶する複数の予備ブロックで構成される予備ブロック領域とから構成される。
【００２７】
アクセス制御部４５ａは、アドレスを指定することによって不揮発性メモリ４４ｂの所定のブロックに対してアクセスを行う機能を有する。また、本実施形態では、アクセス制御部４５ａは、制御方式の異なる複数のアクセス制御部を一括りにした概念である。例えば、アクセス制御部４５ａは、ＯＳ（ｏｐｅｒａｔｉｏｎ  ｓｙｓｔｅｍ）が完全に起動した後に利用可能なファイルシステム（ｆｉｌｅ  ｓｙｓｔｅｍ）１００と、ＯＳが完全に起動していなくても利用可能なダウンローダ（ｄｏｗｎｌｏａｄｅｒ）１０１とにより構成されるものとして説明する。
【００２８】
揮発性メモリ４４ａ（アドレス記憶部）は、不揮発性メモリ４４ｂに不良ブロックが存在する場合、当該不良ブロックの先頭アドレスと、当該不良ブロックを代替する正常なブロックの先頭アドレスとが対応付けて構成されるアドレス対（アドレステーブル）ＡＴを記憶する。
【００２９】
アクセス実行部４５ｂは、複数のアクセス制御部４５ａのいずれかによって所定のアドレスが指定されて不揮発性メモリ４４ｂの所定のブロックに対してアクセスが行われたときに、当該ブロックが不良ブロックであった場合、アドレステーブルＡＴを参照して当該ブロックに代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックにアクセス制御部４５ａをアクセスさせる。
【００３０】
ここで、アクセス実行部４５ｂの概念について説明する。アクセス実行部４５ｂは、クライアントＣ（ワンセグアプリＡ１等の各種のアプリケーションに相当する概念）がバッドブロックを意識することなく不揮発性メモリ４４ｂへのアクセスを実現するためのバッドブロックの管理システムを実現する。
【００３１】
クライアントＣは、不揮発性メモリ４４ｂに直接アクセスする場合には、不揮発性メモリ４４ｂのバッドブロックに対する処理を自ら実行する必要がある（図３（ａ）を参照）。
本実施形態に係る携帯電話装置１は、アクセス実行部４５ｂがクライアントＣと不揮発性メモリ４４ｂとの間に介在する構成になっている。アクセス実行部４５ｂは、クライアントＣから指示されたアドレスに対応するブロックがバッドブロックの場合には、代替するブロックに対してアクセスするように適宜アドレス変換を行う。よって、クライアントＣは、見かけ上、常に正常なブロック（グッドブロック）にアクセスしていると認識するので、自らバッドブロックに対する処理を実行する必要がない（図３（ｂ）を参照）。
このようにして、携帯電話装置１では、クライアントＣにバッドブロックを意識させることなく、不揮発性メモリ４４ｂへのアクセスを実現することができる。
【００３２】
また、携帯電話装置１の構成を物理層Ｌ１、ドライバ層Ｌ２、サービス層Ｌ３及びアプリケーション層Ｌ４として表現した場合には、アクセス実行部４５ｂは、図４に示すように、サービス層Ｌ３とドライバ層Ｌ２の中間位置に相当する。
【００３３】
例えば、所定の操作によって起動されたアプリケーション層Ｌ４に属するワンセグアプリＡ１は、サービス層Ｌ３に属するプロトコル１０３と、ドライバ層Ｌ２に属するＲＦドライバ２０１を介して、物理層Ｌ１に属するメインアンテナ４０を利用して地上波デジタル放送の受信を行う。また、ワンセグアプリＡ１は、サービス層Ｌ３に属する描画サービス部１０２と、ドライバ層Ｌ２に属するＬＣＤドライバ２３を介して、物理層Ｌ１に属するＬＣＤ表示部２１にチューニングしたチャンネルの表示画像を表示させる。また、ワンセグアプリＡ１は、サービス層Ｌ３に属するファイルシステム１００と、アクセス実行部４５ｂと、ドライバ層Ｌ２に属するメモリドライバ２００を介して、物理層Ｌ１に属する不揮発性メモリ４４ｂの所定のブロックに、画像データ等を保存する。
【００３４】
また、アプリケーション層Ｌ４に属する保守アプリＡ２は、ＯＳの起動状態に応じて、サービス層Ｌ３に属するファイルシステム１００又はダウンローダ１０１と、アクセス実行部４５ｂと、ドライバ層Ｌ２に属するメモリドライバ２００を介して、物理層Ｌ１に属する不揮発性メモリ４４ｂの所定のブロックに保守データを記憶する。なお、保守アプリＡ２は、ＯＳの起動状態に応じて、サービス層Ｌ３に属するファイルシステム１００又はダウンローダ１０１を利用する。
【００３５】
また、所定の操作によって起動されたアプリケーション層Ｌ４に属するメールアプリＡ３は、サービス層Ｌ３に属するプロトコル１０３と、ドライバ層Ｌ２に属するＲＦドライバ２０１を介して、物理層Ｌ１に属するメインアンテナ４０を利用してメールの送受信を行う。また、メールアプリＡ３は、サービス層Ｌ３に属する描画サービス部１０２と、ドライバ層Ｌ２に属するＬＣＤドライバ２３を介して、物理層Ｌ１に属するＬＣＤ表示部２１にメールの本文等を表示させる。また、メールアプリＡ３は、サービス層Ｌ３に属するファイルシステム１００と、アクセス実行部４５ｂと、ドライバ層Ｌ２に属するメモリドライバ２００を介して、物理層Ｌ１に属する不揮発性メモリ４４ｂの所定のブロックにメールを保存する。
【００３６】
また、アクセス実行部４５ｂは、ドライバ層Ｌ２に属するメモリドライバ２００を介して、不揮発性メモリ４４ｂに格納されているアドレステーブルＡＴを参照することにより、正常なブロックに対してアクセス制御部４５ａをアクセスさせる。ここで、アドレステーブルＡＴは、例えば、図５に示すように、退避元のアドレス（バッドブロックのアドレス）と、退避先のアドレス（予備ブロックのアドレス）が関連付けられて構成される。なお、本実施形態では、アドレステーブルＡＴは、不揮発性メモリ４４ｂに格納されるものとして説明するが、格納場所はこれに限られない。
【００３７】
また、アクセス実行部４５ｂは、図６に示すように、電源が供給されてＯＳが起動するときに、不揮発性メモリ４４ｂの所定のブロックに格納されているプログラムが揮発性メモリ４４ａのプログラムエリアに読み出されて展開されることによって、その機能を発揮する。また、同様に、不揮発性メモリ４４ｂの所定のブロックに格納されているアドレステーブルＡＴは、図６に示すように、電源が供給されてＯＳが起動するときに、揮発性メモリ４４ａのワーキングエリアにコピーされる。
【００３８】
また、アクセス実行部４５ｂは、複数のアクセス制御部４５ａのいずれかによって所定のアドレスが指定されて不揮発性メモリ４４ｂの所定のブロックに対してアクセスが行われたときに、当該所定のブロックに対してアクセス制御部４５ａをアクセスさせ、所定時間内に応答がないことを条件として、当該所定のブロックを不良ブロックであると判断する。
【００３９】
ここで、不揮発性メモリ４４ｂがＮＡＮＤ型フラッシュメモリにより構成される場合には、各ブロックにはデータの誤り検出をし、検出したデータの誤りを訂正する（ＥＣＣ、Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）ためのスペア領域が存在する。よって、アクセス実行部４５ｂは、アクセスしたブロックに対して、ＥＣＣを実行して、データの誤りを発見し、その誤りを訂正できない場合（例えば、２ビット以上の誤りがある場合）には、当該ブロックをバッドブロックと判定することができる。
【００４０】
一方、不揮発性メモリ４４ｂがＮＯＲ型フラッシュメモリにより構成される場合には、ＮＡＮＤ型フラッシュメモリと異なり、ＥＣＣためのスペア領域が存在しない。そこで、アクセス実行部４５ｂは、ＮＯＲ型フラッシュメモリの所定のブロックに対してアクセスを実行し、所定時間内に応答がなかった場合、すなわち、タイムアウトした場合には、アクセスしたブロックがバッドブロックであると判断する。
【００４１】
このように構成されることにより、携帯電話装置１は、不揮発性メモリ４４ｂがＮＡＮＤ型フラッシュメモリで構成されていても、ＮＯＲ型フラッシュメモリで構成されていても、バッドブロックの判定を行うことができる。
【００４２】
また、携帯電話装置１は、クライアントＣから指示されたアドレスに係るブロックがバッドブロックであるか否かの判定をアクセス実行部４５ｂが行い、バッドブロックである場合には、アドレステーブルＡＴを参照し、代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックにアクセスを実行する。
【００４３】
したがって、携帯電話装置１は、クライアントＣとしてのアプリケーションがバッドブロックを意識せずに、不揮発性メモリ４４ｂに対して、データの書き込みや読み出しを効率的に行うことができる。
【００４４】
次に、不揮発性メモリ４４ｂからデータを読み出す場合及びデータを書き込む場合の処理について、図７に示すフローチャートを用いて説明する。
【００４５】
ステップＳＴ１において、制御部４５は、排他処理（排他ロック）を行う。なお、この処理は、ＯＳが起動されるときのみ実行される。
【００４６】
ステップＳＴ２において、制御部４５は、起動されたＯＳ又はプログラムから特定のアドレスにアクセスしたいという旨の要求を受け付ける。当該要求を受け付けたら、制御部４５は、特定のアドレス（ブロックアドレス）が、アドレステーブルＡＴに記憶されているか否かを確認（チェック）する。
【００４７】
ステップＳＴ３において、制御部４５は、ステップＳＴ２の工程において、アドレステーブルＡＴが揮発性メモリ４４ａのワーキングエリアに存在するか否かを確認する。なお、揮発性メモリ４４ａのワーキングエリアにアドレステーブルＡＴが存在しない場合とは、例えば、アドレステーブルＡＴが不慮の事故等により壊れてしまった場合である。アドレステーブルＡＴが存在しない場合（Ｎｏ）には、異常終了となり、ステップＳＴ１１に進み、アドレステーブルＡＴが存在する場合（Ｙｅｓ）には、ステップＳＴ４に進む。
【００４８】
ステップＳＴ４において、制御部４５は、アドレステーブルＡＴを参照することによってアクセス要求されたアドレスへページ単位でアクセスする。
【００４９】
ステップＳＴ５において、制御部４５は、ステップＳＴ４の工程によりアクセス要求されたアドレスに基づいて正しいデータへアクセスできたか否かを確認（チェック）する。正しいデータへアクセスできた場合（Ｙｅｓ）には、ステップＳＴ１２に進み、正しいデータへアクセスできなかった場合（Ｎｏ）には、ステップＳＴ６に進む。
【００５０】
ここで、「正しいデータへアクセスできた場合」とは、アクセス要求されたアドレスがバッドブロック上のページアドレスを指し、且つアドレステーブルＡＴに退避先アドレスと退避元のアドレスのアドレス対が記憶されている場合をいう。この場合には、制御部４５は、バッドブロックに対応した予備ブロックへ正しくアクセスできるため、正常にアクセス要求されたデータにアクセスできたとして処理を終了し、ステップＳＴ１２に進む。
【００５１】
なお、アクセス要求されたページアドレスが示すページが存在するブロックが、バッドブロックではない正常なブロックである場合には、アドレステーブルＡＴによるアドレス変換を行わずとも、制御部４５は、正しいデータへアクセスできるため、「正しいデータへアクセスできた場合」と同様に、正常にアクセス要求されたデータにアクセスできたとして処理を終了し、ステップＳＴ１２に進む。
【００５２】
また、「正しいデータへアクセスできなかった場合」とは、前述した２つのパターン以外の場合、つまり、正常なブロックのページのアドレスだと思ってアクセスしてみたら、アクセス先のブロックがバッドブロックになっていた場合をいう。また、換言すれば、「正しいデータへアクセスできなかった場合」とは、アクセスしてみたら新たにバッドブロック生じていた場合をいう。
【００５３】
ステップＳＴ６において、制御部４５は、アクセスしたページがバッドブロックの先頭ページであるかどうかを確認する。アクセスしたページがバッドブロックの先頭ページであった場合（Ｙｅｓ）には、ステップＳＴ７に進み、アクセスしたページがバッドブロックの先頭ページではなかった場合（Ｎｏ）には、ステップＳＴ８に進む。
【００５４】
ステップＳＴ７において、制御部４５は、新たな予備ブロックを確保する。そして、制御部４５は、確保された予備ブロックのアドレスとバッドブロックのアドレスとを、それぞれ退避先アドレスと退避元アドレスとしてアドレス対を作成し、アドレステーブルＡＴに記憶する。
【００５５】
また、ステップＳＴ８において、制御部４５は、新たな予備ブロックを確保する。そして、制御部４５は、確保された予備ブロックに、バッドブロックの中身のデータをコピーする。そして、制御部４５は、確保された予備ブロックのアドレスとバッドブロックのアドレスとを、それぞれ退避先アドレスと退避元アドレスとしてアドレス対を作成し、アドレステーブルＡＴに記憶する。
【００５６】
ここで、ステップＳＴ６の工程における「アクセスしたページがバッドブロックの先頭ページではなかった場合」とは、すでにバッドブロックには、いくつかのデータが書き込まれている場合を意味する。したがって、ステップＳＴ７の工程のように、バッドブロックのアドレスだけを抽出してアドレステーブルＡＴに加えるだけでは、バッドブロックに既に書き込まれていたデータが使えなくなってしまう。
【００５７】
よって、アクセスしたページがバッドブロックの先頭ページではなかった場合には、制御部４５は、新たな予備ブロックを確保し、確保された予備ブロックに、バッドブロックの中身のデータをコピーし、確保された予備ブロックのアドレスとバッドブロックのアドレスとを、それぞれ退避先アドレスと退避元アドレスとしてアドレス対を作成し、アドレステーブルＡＴに記憶する。
【００５８】
また、ステップＳＴ９において、制御部４５は、ステップＳＴ７の工程又はステップＳＴ８の工程の処理が成功（正常に終了）したか否かを確認する。処理が正常に終了していない場合（Ｎｏ）には、ステップＳＴ３の工程の「アドレステーブルＡＴが存在しない場合（Ｎｏ）」と同様に、ステップＳＴ１１に進み、処理が正常に終了した場合（Ｙｅｓ）には、ステップＳＴ１０に進む。
なお、ステップＳＴ５の工程により、正しいデータへアクセスできなかった場合から、後述するステップＳ１０の工程までの一連の処理が、新たにバッドブロックが見つかったときの処理となる。
【００５９】
ステップＳＴ１０において、制御部４５は、新たに確保した予備ブロックがバッドブロックであるか否かを判定する。新たに確保した予備ブロックがバッドブロックである場合（Ｙｅｓ）には、ステップＳＴ２へ戻り、新たに確保した予備ブロックがバッドブロックではない場合（Ｎｏ）、すなわち、バッドブロックの退避先の予備ブロックが正常なブロックであった場合には、ステップＳＴ１２に進む。
【００６０】
ここで、制御部４５は、新たに確保した予備ブロックがバッドブロックであったならば（Ｙｅｓ）、当該予備ブロックの退避先である予備ブロック（すなわち、予備ブロックに対する予備ブロック）を新たに作成しなければならない。よって、制御部４５は、ステップＳＴ１０の工程により新たに確保した予備ブロックがバッドブロックである場合（Ｙｅｓ）には、ステップＳＴ２へ戻り、予備ブロックに対する予備ブロックの確保、又はアドレステーブルＡＴへの追記等を行う。なお、この予備ブロックに対する予備ブロックを確保する動作は、際限なく繰り返すのではなく、仕様で最大値（例えば４２回）を設定しても良い。
【００６１】
また、ステップＳＴ１１において、制御部４５は、ステップＳＴ３の工程により、アドレステーブルＡＴが存在しないと判断された場合、又はステップＳＴ９の工程により、処理が正常に終了していないと判断された場合には、異常終了となり、エラーコードを設定して処理を終了する。
【００６２】
ステップＳＴ１２においては、制御部４５は、ステップＳＴ１の工程により排他ロックが行われていた場合には、当該排他ロックを解除する。
【００６３】
ここで、携帯電話装置１により発揮される主な効果について以下に列挙する。
１．携帯電話装置１では、不揮発性メモリ４４ｂ（ＮＡＮＤ型フラッシュメモリ等）のバッドブロックを擬似的に上位システム（アプリケーション層Ｌ４）に対して意識させないようにすることができる。このことにより、上位システム（アプリケーション層Ｌ４）は、領域を分ける毎に１領域に全てのバッドブロックが存在することを想定する処理が不要となる。
２．従来の携帯電話装置では、サービス層Ｌ３に属するファイルシステムが直接不揮発性メモリにアクセスするため、対応するドライバを包含する必要があったが、本実施形態に係る携帯電話装置１は、アクセス実行部４５ｂを備えるので、サービス層Ｌ３に属するファイルシステム自身が直接不揮発性メモリ４４ｂにアクセスしない。よって、携帯電話装置１では、サービス層Ｌ３に属するファイルシステムを自由に設計することができる。
３．携帯電話装置１は、ＮＯＲ型フラッシュメモリでは実現できていたＲＯＭライターにおけるファイルシステムのメモリ単体への書き込みを、ＮＡＮＤ型フラッシュメモリに対しても可能とした。
【符号の説明】
【００６４】
１  携帯電話装置
４４  メモリ
４４ａ  揮発性メモリ
４４ｂ  不揮発性メモリ
４５  制御部
４５ａ  アクセス制御部
４５ｂ  アクセス実行部
５１  アドレス記憶部
５２  データ記憶部
【図１】
0005474588.tif 000002
【図２】
0005474588.tif 000003
【図３】
0005474588.tif 000004
【図４】
0005474588.tif 000005
【図５】
0005474588.tif 000006
【図６】
0005474588.tif 000007
【図７】
0005474588.tif 000008