説明

電子機器

【課題】アプリケーションプログラムがバッドブロックを意識せずにデータの書き込みや読み出しを効率的に行うことができる電子機器を提供すること。
【解決手段】不揮発性メモリ44bと、不揮発性メモリ44bの所定のブロックに対してアクセスを行う複数のアクセス制御部45aと、不良ブロックの先頭アドレスと、当該不良ブロックを代替する正常なブロックの先頭アドレスとが対応付けて構成されるアドレス対を記憶する揮発性メモリ44aと、複数のアクセス制御部45aのいずれかによって所定のアドレスが指定されて不揮発性メモリ44bの所定のブロックに対してアクセスが行われたときに、当該ブロックが不良ブロックであった場合、アドレス対を参照して当該ブロックに代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックにアクセスを実行するアクセス実行部45bを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のメモリを有する電子機器に関する。
【背景技術】
【0002】
近年、例えば、携帯電話等の電子機器は、データを記憶する記憶媒体として、アドレスが付されたブロックという記憶単位でデータの管理を行うフラッシュメモリが使用されることが多い。
【0003】
ここで、特許文献1には、どのような種類のフラッシュメモリ(例えば、NANDフラッシュメモリ)に対しても対応可能な制御部を提供する技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−158991号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、フラッシュメモリ内には、例えば、ハードウェアの欠陥等によってデータを正常に書き込んだり読み込んだりすることができない、不良ブロック(バッドブロック)と呼ばれるブロックが発生することがある。バッドブロックになってしまったブロックは、二度と正しいアクセス(データの読み込み、書き込み、消去)ができなくなる。
【0006】
したがって、アプリケーションプログラム等が、バッドブロックを有するフラッシュメモリにアクセスする場合、バッドブロックを避けてデータの書き込みや読み出しを行わなければならないため、当該アプリケーションプログラムによる処理が煩雑になってしまうという問題があった。
【0007】
本発明では、バッドブロックを有する不揮発性メモリにアクセスする場合であっても、アプリケーションプログラム等がバッドブロックを意識せずにデータの書き込みや読み出しを効率的に行うことができる電子機器を提供することを一つの目的とする。
【課題を解決するための手段】
【0008】
本発明に係る電子機器は、上記課題を解決するために、所定の容量で規定される複数のブロックで構成され、前記ブロックには固有のアドレスが付されているデータ記憶部と、それぞれの制御方式にしたがって、アドレスを指定することによって前記データ記憶部の所定のブロックに対してアクセスを行う複数のアクセス制御部と、前記データ記憶部に不良ブロックが存在する場合、当該不良ブロックの先頭アドレスと、当該不良ブロックを代替する正常なブロックの先頭アドレスとが対応付けて構成されるアドレス対を記憶するアドレス記憶部と、前記複数のアクセス制御部のいずれかによって所定のアドレスが指定されて前記データ記憶部の所定のブロックに対してアクセスが行われたときに、当該ブロックが不良ブロックであった場合、前記アドレス対を参照して当該不良ブロックに代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックに前記アクセス制御部をアクセスさせるアクセス実行部を備える。
【0009】
また、電子機器では、前記アクセス実行部は、前記複数のアクセス制御部のいずれかによって所定のアドレスが指定されて前記データ記憶部の所定のブロックに対してアクセスが行われたときに、当該所定のブロックに対して前記アクセス制御部をアクセスさせ、前記アクセス制御部にアクセスさせてから、所定時間内に応答がないことを条件として、当該所定のブロックを不良ブロックであると判断することが好ましい。
【0010】
また、電子機器は、前記データ記憶部は、前記複数のブロックで構成されるデータブロック領域と、当該データブロック領域のブロックが不良ブロックとなった場合に、当該不良ブロックに記憶されていたデータを代替して記憶する複数の予備ブロックで構成される予備ブロック領域とから構成される不揮発性メモリであることが好ましい。
【発明の効果】
【0011】
本発明によれば、バッドブロックを有する不揮発性メモリにアクセスする場合であっても、アプリケーションプログラム等がバッドブロックを意識せずにデータの書き込みや読み出しを効率的に行うことができる。
【図面の簡単な説明】
【0012】
【図1】携帯電話装置の外観斜視図である。
【図2】携帯電話装置の機能を示す機能ブロック図である。
【図3】携帯電話装置にアクセス実行部が備えられていない場合と、備えられている場合における対比についての説明に供する図である。
【図4】システム全体におけるアクセス実行部の位置付けについての説明に供する図である。
【図5】アドレステーブルの構成を模式的に示す図である。
【図6】起動時に不揮発性メモリから揮発性メモリへデータがコピーされる動作についての説明に供する図である。
【図7】不揮発性メモリに対してデータの読み出しと書き込みを行う際の処理の流れについての説明に供するフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について説明する。図1は、本発明に係る電子機器の一例である携帯電話装置1の外観斜視図を示す。なお、図1は、いわゆる折り畳み型の携帯電話装置の形態を示しているが、本発明に係る携帯電話装置の形態としては特にこれに限られない。例えば、両筐体を重ね合わせた状態から一方の筐体を一方向にスライドさせるようにしたスライド式や、重ね合せ方向に沿う軸線を中心に一方の筐体を回転させるようにした回転式(ターンタイプ)や、操作部と表示部とが一つの筐体に配置され、連結部を有さない形式(ストレートタイプ)でも良い。
【0014】
携帯電話装置1は、操作部側筐体部2と、表示部側筐体部3を備えて構成される。操作部側筐体部2は、表面部10に、操作部11と、携帯電話装置1の使用者が通話時に発した音声が入力されるマイク12を備えて構成される。操作部11は、各種設定や電話帳機能やメール機能等の各種機能を作動させるための機能設定操作キー13と、電話番号の数字やメール等の文字等を入力するための入力操作キー14と、各種操作における決定やスクロール等を行う決定操作キー15から構成されている。
また、表示部側筐体部3は、表面部20に、各種情報を表示するためのLCD(Liquid Crystal Display)表示部21と、通話の相手側の音声を出力するスピーカ22を備えて構成されている。
【0015】
また、操作部側筐体部2の上端部と表示部側筐体部3の下端部とは、ヒンジ機構4を介して連結されている。また、携帯電話装置1は、ヒンジ機構4を介して連結された操作部側筐体部2と表示部側筐体部3とを相対的に回転することにより、操作部側筐体部2と表示部側筐体部3とを互いに開いた状態(開放状態)にしたり、操作部側筐体部2と表示部側筐体部3とを折り畳んだ状態(折畳み状態)にしたりできる。
【0016】
また、図2は、携帯電話装置1の機能を示す機能ブロック図である。携帯電話装置1は、図2に示すように、操作部11と、マイク12と、メインアンテナ40と、RF回路部41と、LCD制御部42と、音声処理部43と、メモリ44と、制御部45が操作部側筐体部2に備えられ、LCD表示部21と、スピーカ22と、LCDドライバ23が表示部側筐体部3に備えられている。
【0017】
メインアンテナ40は、第1の使用周波数帯(例えば、800MHz)で基地局等と通信を行い、GPS通信のための第2の使用周波数帯(例えば、1.5GHz)に対応できるデュアルバンド対応構成である。なお、本実施の形態では、第1の使用周波数帯として、800MHzとしたが、これ以外の周波数帯であっても良い。また、メインアンテナ40は、第1の使用周波数帯で外部装置と通信を行い、GPS通信のための第2の使用周波数帯に対応できるアンテナを別途設けても良い。
【0018】
RF回路部41は、メインアンテナ40によって受信した信号を復調処理し、処理後の信号を制御部45に供給する。そして、制御部45から供給された信号を変調処理し、メインアンテナ40を介して外部装置(基地局)に送信する。また、その一方で、メインアンテナ40によって受信している信号の強度を制御部45に通知する。
【0019】
LCD制御部42は、制御部45の制御にしたがって、所定の画像処理を行い、処理後の画像データをLCDドライバ23に出力する。LCDドライバ23は、LCD制御部42から供給された画像データをフレームメモリに蓄え、所定のタイミングでLCD表示部21又はサブLCD表示部30に出力する。
音声処理部43は、制御部45の制御にしたがって、RF回路部41から供給された信号に対して所定の音声処理を行い、処理後の信号をスピーカ22に出力する。スピーカ22は、音声処理部43から供給された信号を外部に出力する。
【0020】
また、音声処理部43は、制御部45の制御にしたがって、マイク12から入力された信号を処理し、処理後の信号をRF回路部41に出力する。RF回路部41は、音声処理部43から供給された信号に所定の処理を行い、処理後の信号をメインアンテナ40に出力する。
【0021】
メモリ44は、揮発性メモリ44a(例えば、SDRAM(Synchronous DRAM)である。)と、不揮発性メモリ44b(データ記憶部)(例えば、NAND型フラッシュメモリや、NOR型フラッシュメモリである。)を含んで構成されている。また、揮発性メモリ44aは、制御部45による演算処理に利用されるワーキングメモリとしての機能を有する。不揮発性メモリ44bは、複数のアプリケーションや当該アプリケーションが必要とする各種のテーブル等が記憶されている。また、不揮発性メモリ44bには、各種アプリケーションが記憶されている。ここで、各種アプリケーションとは、例えば、地上波デジタル放送を視聴するアプリケーション(以下、ワンセグアプリという。)A1や、メールの作成・送信・受信等を行うメールアプリケーション(以下、メールアプリという。)A2や、ランニングチェンジ等のために利用される保守アプリケーション(以下、保守アプリという。)A3が該当する。
制御部45は、携帯電話装置1の全体を制御しており、中央処理装置(CPU)等を用いて構成される。
【0022】
ここで、不揮発性メモリ44bの構造について説明する。不揮発性メモリ44bは、フローティング・ゲートの絶縁部の消耗により、メモリセルの書き込みが規定時間で完了しなくなることがある。このようなブロックは、プログラムの実行を行ってもエラーとなるため、不良ブロック(バッドブロック)として以降のメモリ管理対象から除外される必要がある。また、バッドブロックが発生した時点では、そのブロックの中に有効なデータがまだ格納されている場合がある。この場合には、有効なデータを正常なブロックに移動したうえで、バッドブロックをメモリ管理対象から除外する。
【0023】
なお、NOR型フラッシュメモリは、NAND型フラッシュメモリと比較して、データ耐久性の信頼性が高いため、バッドブロックに対する対応策を図らなくても良いように思える。しかし、NOR型フラッシュメモリも不慮の事故によって、あるブロックが使用不能になることがある。よって、本実施形態では、NOR型フラッシュメモリに対しても、バッドブロックの対応策を考慮する。
【0024】
また、不揮発性メモリ44bに格納されているアプリケーションは、バッドブロックに対する処理も行っている。本実施形態に係る携帯電話装置1では、不揮発性メモリ44bにバッドブロックが発生しても、各アプリケーションのバッドブロックに対する処理負担を軽減しつつ、バッドブロックの発生による不具合を解消することが可能な機能を有している。
【0025】
ここで、上述した機能を発揮するための具体的な構成と動作について詳細に説明する。携帯電話装置1は、図2に示すように、アドレス記憶部51と、データ記憶部52と、アクセス制御部45aと、アクセス実行部45bを備える。なお、本実施の形態では、アドレス記憶部51とデータ記憶部52とは、不揮発性メモリ44bとして一体的に構成されているものとする。
【0026】
不揮発性メモリ44bは、所定の容量で規定されるブロック単位で管理され、ブロックには固有のアドレスが付されており、データが書き込まれる複数のブロックで構成されるデータブロック領域と、当該データブロック領域のブロックが不良ブロックとなった場合に、当該不良ブロックに記憶されていたデータを代わりに記憶する複数の予備ブロックで構成される予備ブロック領域とから構成される。
【0027】
アクセス制御部45aは、アドレスを指定することによって不揮発性メモリ44bの所定のブロックに対してアクセスを行う機能を有する。また、本実施形態では、アクセス制御部45aは、制御方式の異なる複数のアクセス制御部を一括りにした概念である。例えば、アクセス制御部45aは、OS(operation system)が完全に起動した後に利用可能なファイルシステム(file system)100と、OSが完全に起動していなくても利用可能なダウンローダ(downloader)101とにより構成されるものとして説明する。
【0028】
揮発性メモリ44a(アドレス記憶部)は、不揮発性メモリ44bに不良ブロックが存在する場合、当該不良ブロックの先頭アドレスと、当該不良ブロックを代替する正常なブロックの先頭アドレスとが対応付けて構成されるアドレス対(アドレステーブル)ATを記憶する。
【0029】
アクセス実行部45bは、複数のアクセス制御部45aのいずれかによって所定のアドレスが指定されて不揮発性メモリ44bの所定のブロックに対してアクセスが行われたときに、当該ブロックが不良ブロックであった場合、アドレステーブルATを参照して当該ブロックに代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックにアクセス制御部45aをアクセスさせる。
【0030】
ここで、アクセス実行部45bの概念について説明する。アクセス実行部45bは、クライアントC(ワンセグアプリA1等の各種のアプリケーションに相当する概念)がバッドブロックを意識することなく不揮発性メモリ44bへのアクセスを実現するためのバッドブロックの管理システムを実現する。
【0031】
クライアントCは、不揮発性メモリ44bに直接アクセスする場合には、不揮発性メモリ44bのバッドブロックに対する処理を自ら実行する必要がある(図3(a)を参照)。
本実施形態に係る携帯電話装置1は、アクセス実行部45bがクライアントCと不揮発性メモリ44bとの間に介在する構成になっている。アクセス実行部45bは、クライアントCから指示されたアドレスに対応するブロックがバッドブロックの場合には、代替するブロックに対してアクセスするように適宜アドレス変換を行う。よって、クライアントCは、見かけ上、常に正常なブロック(グッドブロック)にアクセスしていると認識するので、自らバッドブロックに対する処理を実行する必要がない(図3(b)を参照)。
このようにして、携帯電話装置1では、クライアントCにバッドブロックを意識させることなく、不揮発性メモリ44bへのアクセスを実現することができる。
【0032】
また、携帯電話装置1の構成を物理層L1、ドライバ層L2、サービス層L3及びアプリケーション層L4として表現した場合には、アクセス実行部45bは、図4に示すように、サービス層L3とドライバ層L2の中間位置に相当する。
【0033】
例えば、所定の操作によって起動されたアプリケーション層L4に属するワンセグアプリA1は、サービス層L3に属するプロトコル103と、ドライバ層L2に属するRFドライバ201を介して、物理層L1に属するメインアンテナ40を利用して地上波デジタル放送の受信を行う。また、ワンセグアプリA1は、サービス層L3に属する描画サービス部102と、ドライバ層L2に属するLCDドライバ23を介して、物理層L1に属するLCD表示部21にチューニングしたチャンネルの表示画像を表示させる。また、ワンセグアプリA1は、サービス層L3に属するファイルシステム100と、アクセス実行部45bと、ドライバ層L2に属するメモリドライバ200を介して、物理層L1に属する不揮発性メモリ44bの所定のブロックに、画像データ等を保存する。
【0034】
また、アプリケーション層L4に属する保守アプリA2は、OSの起動状態に応じて、サービス層L3に属するファイルシステム100又はダウンローダ101と、アクセス実行部45bと、ドライバ層L2に属するメモリドライバ200を介して、物理層L1に属する不揮発性メモリ44bの所定のブロックに保守データを記憶する。なお、保守アプリA2は、OSの起動状態に応じて、サービス層L3に属するファイルシステム100又はダウンローダ101を利用する。
【0035】
また、所定の操作によって起動されたアプリケーション層L4に属するメールアプリA3は、サービス層L3に属するプロトコル103と、ドライバ層L2に属するRFドライバ201を介して、物理層L1に属するメインアンテナ40を利用してメールの送受信を行う。また、メールアプリA3は、サービス層L3に属する描画サービス部102と、ドライバ層L2に属するLCDドライバ23を介して、物理層L1に属するLCD表示部21にメールの本文等を表示させる。また、メールアプリA3は、サービス層L3に属するファイルシステム100と、アクセス実行部45bと、ドライバ層L2に属するメモリドライバ200を介して、物理層L1に属する不揮発性メモリ44bの所定のブロックにメールを保存する。
【0036】
また、アクセス実行部45bは、ドライバ層L2に属するメモリドライバ200を介して、不揮発性メモリ44bに格納されているアドレステーブルATを参照することにより、正常なブロックに対してアクセス制御部45aをアクセスさせる。ここで、アドレステーブルATは、例えば、図5に示すように、退避元のアドレス(バッドブロックのアドレス)と、退避先のアドレス(予備ブロックのアドレス)が関連付けられて構成される。なお、本実施形態では、アドレステーブルATは、不揮発性メモリ44bに格納されるものとして説明するが、格納場所はこれに限られない。
【0037】
また、アクセス実行部45bは、図6に示すように、電源が供給されてOSが起動するときに、不揮発性メモリ44bの所定のブロックに格納されているプログラムが揮発性メモリ44aのプログラムエリアに読み出されて展開されることによって、その機能を発揮する。また、同様に、不揮発性メモリ44bの所定のブロックに格納されているアドレステーブルATは、図6に示すように、電源が供給されてOSが起動するときに、揮発性メモリ44aのワーキングエリアにコピーされる。
【0038】
また、アクセス実行部45bは、複数のアクセス制御部45aのいずれかによって所定のアドレスが指定されて不揮発性メモリ44bの所定のブロックに対してアクセスが行われたときに、当該所定のブロックに対してアクセス制御部45aをアクセスさせ、所定時間内に応答がないことを条件として、当該所定のブロックを不良ブロックであると判断する。
【0039】
ここで、不揮発性メモリ44bがNAND型フラッシュメモリにより構成される場合には、各ブロックにはデータの誤り検出をし、検出したデータの誤りを訂正する(ECC、Error Check and Correct)ためのスペア領域が存在する。よって、アクセス実行部45bは、アクセスしたブロックに対して、ECCを実行して、データの誤りを発見し、その誤りを訂正できない場合(例えば、2ビット以上の誤りがある場合)には、当該ブロックをバッドブロックと判定することができる。
【0040】
一方、不揮発性メモリ44bがNOR型フラッシュメモリにより構成される場合には、NAND型フラッシュメモリと異なり、ECCためのスペア領域が存在しない。そこで、アクセス実行部45bは、NOR型フラッシュメモリの所定のブロックに対してアクセスを実行し、所定時間内に応答がなかった場合、すなわち、タイムアウトした場合には、アクセスしたブロックがバッドブロックであると判断する。
【0041】
このように構成されることにより、携帯電話装置1は、不揮発性メモリ44bがNAND型フラッシュメモリで構成されていても、NOR型フラッシュメモリで構成されていても、バッドブロックの判定を行うことができる。
【0042】
また、携帯電話装置1は、クライアントCから指示されたアドレスに係るブロックがバッドブロックであるか否かの判定をアクセス実行部45bが行い、バッドブロックである場合には、アドレステーブルATを参照し、代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックにアクセスを実行する。
【0043】
したがって、携帯電話装置1は、クライアントCとしてのアプリケーションがバッドブロックを意識せずに、不揮発性メモリ44bに対して、データの書き込みや読み出しを効率的に行うことができる。
【0044】
次に、不揮発性メモリ44bからデータを読み出す場合及びデータを書き込む場合の処理について、図7に示すフローチャートを用いて説明する。
【0045】
ステップST1において、制御部45は、排他処理(排他ロック)を行う。なお、この処理は、OSが起動されるときのみ実行される。
【0046】
ステップST2において、制御部45は、起動されたOS又はプログラムから特定のアドレスにアクセスしたいという旨の要求を受け付ける。当該要求を受け付けたら、制御部45は、特定のアドレス(ブロックアドレス)が、アドレステーブルATに記憶されているか否かを確認(チェック)する。
【0047】
ステップST3において、制御部45は、ステップST2の工程において、アドレステーブルATが揮発性メモリ44aのワーキングエリアに存在するか否かを確認する。なお、揮発性メモリ44aのワーキングエリアにアドレステーブルATが存在しない場合とは、例えば、アドレステーブルATが不慮の事故等により壊れてしまった場合である。アドレステーブルATが存在しない場合(No)には、異常終了となり、ステップST11に進み、アドレステーブルATが存在する場合(Yes)には、ステップST4に進む。
【0048】
ステップST4において、制御部45は、アドレステーブルATを参照することによってアクセス要求されたアドレスへページ単位でアクセスする。
【0049】
ステップST5において、制御部45は、ステップST4の工程によりアクセス要求されたアドレスに基づいて正しいデータへアクセスできたか否かを確認(チェック)する。正しいデータへアクセスできた場合(Yes)には、ステップST12に進み、正しいデータへアクセスできなかった場合(No)には、ステップST6に進む。
【0050】
ここで、「正しいデータへアクセスできた場合」とは、アクセス要求されたアドレスがバッドブロック上のページアドレスを指し、且つアドレステーブルATに退避先アドレスと退避元のアドレスのアドレス対が記憶されている場合をいう。この場合には、制御部45は、バッドブロックに対応した予備ブロックへ正しくアクセスできるため、正常にアクセス要求されたデータにアクセスできたとして処理を終了し、ステップST12に進む。
【0051】
なお、アクセス要求されたページアドレスが示すページが存在するブロックが、バッドブロックではない正常なブロックである場合には、アドレステーブルATによるアドレス変換を行わずとも、制御部45は、正しいデータへアクセスできるため、「正しいデータへアクセスできた場合」と同様に、正常にアクセス要求されたデータにアクセスできたとして処理を終了し、ステップST12に進む。
【0052】
また、「正しいデータへアクセスできなかった場合」とは、前述した2つのパターン以外の場合、つまり、正常なブロックのページのアドレスだと思ってアクセスしてみたら、アクセス先のブロックがバッドブロックになっていた場合をいう。また、換言すれば、「正しいデータへアクセスできなかった場合」とは、アクセスしてみたら新たにバッドブロック生じていた場合をいう。
【0053】
ステップST6において、制御部45は、アクセスしたページがバッドブロックの先頭ページであるかどうかを確認する。アクセスしたページがバッドブロックの先頭ページであった場合(Yes)には、ステップST7に進み、アクセスしたページがバッドブロックの先頭ページではなかった場合(No)には、ステップST8に進む。
【0054】
ステップST7において、制御部45は、新たな予備ブロックを確保する。そして、制御部45は、確保された予備ブロックのアドレスとバッドブロックのアドレスとを、それぞれ退避先アドレスと退避元アドレスとしてアドレス対を作成し、アドレステーブルATに記憶する。
【0055】
また、ステップST8において、制御部45は、新たな予備ブロックを確保する。そして、制御部45は、確保された予備ブロックに、バッドブロックの中身のデータをコピーする。そして、制御部45は、確保された予備ブロックのアドレスとバッドブロックのアドレスとを、それぞれ退避先アドレスと退避元アドレスとしてアドレス対を作成し、アドレステーブルATに記憶する。
【0056】
ここで、ステップST6の工程における「アクセスしたページがバッドブロックの先頭ページではなかった場合」とは、すでにバッドブロックには、いくつかのデータが書き込まれている場合を意味する。したがって、ステップST7の工程のように、バッドブロックのアドレスだけを抽出してアドレステーブルATに加えるだけでは、バッドブロックに既に書き込まれていたデータが使えなくなってしまう。
【0057】
よって、アクセスしたページがバッドブロックの先頭ページではなかった場合には、制御部45は、新たな予備ブロックを確保し、確保された予備ブロックに、バッドブロックの中身のデータをコピーし、確保された予備ブロックのアドレスとバッドブロックのアドレスとを、それぞれ退避先アドレスと退避元アドレスとしてアドレス対を作成し、アドレステーブルATに記憶する。
【0058】
また、ステップST9において、制御部45は、ステップST7の工程又はステップST8の工程の処理が成功(正常に終了)したか否かを確認する。処理が正常に終了していない場合(No)には、ステップST3の工程の「アドレステーブルATが存在しない場合(No)」と同様に、ステップST11に進み、処理が正常に終了した場合(Yes)には、ステップST10に進む。
なお、ステップST5の工程により、正しいデータへアクセスできなかった場合から、後述するステップS10の工程までの一連の処理が、新たにバッドブロックが見つかったときの処理となる。
【0059】
ステップST10において、制御部45は、新たに確保した予備ブロックがバッドブロックであるか否かを判定する。新たに確保した予備ブロックがバッドブロックである場合(Yes)には、ステップST2へ戻り、新たに確保した予備ブロックがバッドブロックではない場合(No)、すなわち、バッドブロックの退避先の予備ブロックが正常なブロックであった場合には、ステップST12に進む。
【0060】
ここで、制御部45は、新たに確保した予備ブロックがバッドブロックであったならば(Yes)、当該予備ブロックの退避先である予備ブロック(すなわち、予備ブロックに対する予備ブロック)を新たに作成しなければならない。よって、制御部45は、ステップST10の工程により新たに確保した予備ブロックがバッドブロックである場合(Yes)には、ステップST2へ戻り、予備ブロックに対する予備ブロックの確保、又はアドレステーブルATへの追記等を行う。なお、この予備ブロックに対する予備ブロックを確保する動作は、際限なく繰り返すのではなく、仕様で最大値(例えば42回)を設定しても良い。
【0061】
また、ステップST11において、制御部45は、ステップST3の工程により、アドレステーブルATが存在しないと判断された場合、又はステップST9の工程により、処理が正常に終了していないと判断された場合には、異常終了となり、エラーコードを設定して処理を終了する。
【0062】
ステップST12においては、制御部45は、ステップST1の工程により排他ロックが行われていた場合には、当該排他ロックを解除する。
【0063】
ここで、携帯電話装置1により発揮される主な効果について以下に列挙する。
1.携帯電話装置1では、不揮発性メモリ44b(NAND型フラッシュメモリ等)のバッドブロックを擬似的に上位システム(アプリケーション層L4)に対して意識させないようにすることができる。このことにより、上位システム(アプリケーション層L4)は、領域を分ける毎に1領域に全てのバッドブロックが存在することを想定する処理が不要となる。
2.従来の携帯電話装置では、サービス層L3に属するファイルシステムが直接不揮発性メモリにアクセスするため、対応するドライバを包含する必要があったが、本実施形態に係る携帯電話装置1は、アクセス実行部45bを備えるので、サービス層L3に属するファイルシステム自身が直接不揮発性メモリ44bにアクセスしない。よって、携帯電話装置1では、サービス層L3に属するファイルシステムを自由に設計することができる。
3.携帯電話装置1は、NOR型フラッシュメモリでは実現できていたROMライターにおけるファイルシステムのメモリ単体への書き込みを、NAND型フラッシュメモリに対しても可能とした。
【符号の説明】
【0064】
1 携帯電話装置
44 メモリ
44a 揮発性メモリ
44b 不揮発性メモリ
45 制御部
45a アクセス制御部
45b アクセス実行部
51 アドレス記憶部
52 データ記憶部

【特許請求の範囲】
【請求項1】
所定の容量で規定される複数のブロックで構成され、前記ブロックには固有のアドレスが付されているデータ記憶部と、
それぞれの制御方式にしたがって、アドレスを指定することによって前記データ記憶部の所定のブロックに対してアクセスを行う複数のアクセス制御部と、
前記データ記憶部に不良ブロックが存在する場合、当該不良ブロックの先頭アドレスと、当該不良ブロックを代替する正常なブロックの先頭アドレスとが対応付けて構成されるアドレス対を記憶するアドレス記憶部と、
前記複数のアクセス制御部のいずれかによって所定のアドレスが指定されて前記データ記憶部の所定のブロックに対してアクセスが行われたときに、当該ブロックが不良ブロックであった場合、前記アドレス対を参照して当該不良ブロックに代替する正常なブロックのアドレスを取得し、取得した当該アドレスが付されているブロックに前記アクセス制御部をアクセスさせるアクセス実行部を備える電子機器。
【請求項2】
請求項1記載の電子機器であって、
前記アクセス実行部は、前記複数のアクセス制御部のいずれかによって所定のアドレスが指定されて前記データ記憶部の所定のブロックに対してアクセスが行われたときに、当該所定のブロックに対して前記アクセス制御部をアクセスさせ、前記アクセス制御部にアクセスさせてから、所定時間内に応答がないことを条件として、当該所定のブロックを不良ブロックであると判断する電子機器。
【請求項3】
請求項1記載の電子機器であって、
前記データ記憶部は、前記複数のブロックで構成されるデータブロック領域と、当該データブロック領域のブロックが不良ブロックとなった場合に、当該不良ブロックに記憶されていたデータを代替して記憶する複数の予備ブロックで構成される予備ブロック領域とから構成される不揮発性メモリである電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−154572(P2011−154572A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2010−16067(P2010−16067)
【出願日】平成22年1月27日(2010.1.27)
【出願人】(000006633)京セラ株式会社 (13,660)
【Fターム(参考)】