(57)【要約】【課題】書き込みサスペンド機能を持ったフラッシュメモリに高速に読み出し処理を行なうメモリシステム及びメモリの読出し方法並びにプログラムを提供する。【解決手段】書込み処理の期間にサスペンドコマンドを受けると、書込み処理を中断して読出し処理を行なうフラッシュメモリ部（７）と、ＣＰＵ（１）と、デバイスドライバ（６）を含むＯＳ（５）と、アドレス変換のためのページテーブルをもつＴＬＢ（２）と、ＣＰＵ及びＯＳの制御下において、読出し命令を受けるとデバイスドライバにＴＬＢの設定要求を行い、デバイスドライバが設定要求に応じてＴＬＢのページテーブルから読み出したアドレス情報を取得し、これを用いてデバイスドラバを用いることなくアプリケーションプログラムが直接にフラッシュメモリ部に対して読出しを行なうアプリケーションプログラム（４）をもつメモリシステム。【選択図】    図１
2009087028.tif 000002
【特許請求の範囲】
【請求項１】
書込み処理の期間にサスペンドコマンドを受けると前記書込み処理を中断し、読出し処理を行なうことができるフラッシュメモリ部と、
ＣＰＵと、
デバイスドライバを含むＯＳと、
仮想アドレスから物理アドレスへの変換のためのページテーブルをもつＴＬＢと、
前記ＣＰＵ及び前記ＯＳの制御下において、読出し命令を受けると、アプリケーションプログラムは、前記デバイスドライバに前記ＴＬＢの設定要求を行い、前記デバイスドライバが前記設定要求に応じて前記ＴＬＢの前記ページテーブルから読み出したアドレス情報を取得し、前記取得したアドレス情報を用いて前記デバイスドラバを用いることなくアプリケーションプログラムが直接に前記フラッシュメモリ部に対して読出しを行なうアプリケーションプログラムと、を具備することを特徴とするメモリシステム。
【請求項２】
前記ＯＳは、前記アプリケーションプログラムが前記フラッシュメモリ部に対して読出しを行なう際に、前記ＣＰＵが発生したＴＬＢエラーを検出すると、前記サスペンドコマンドを発生してこれを前記フラッシュメモリ部に供給することで、前記フラッシュメモリ部が行なっている書込み処理を中断させることを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記ＯＳは、前記フラッシュメモリ部が書込み処理中に前記アプリケーションプログラムが読出しを行なう場合、前記ＣＰＵがＴＬＢエラーを発生することとなるように、書込み命令を受けて書込み処理を行う際に前記ＴＬＢの読出し専用領域についてオフを設定することを特徴とする請求項２記載のメモリシステム。
【請求項４】
前記フラッシュメモリ部は、ＮＯＲ型のフラッシュメモリ装置であることを特徴とする請求項１記載のメモリシステム。
【請求項５】
書込み処理の期間にサスペンドコマンドを受けると前記書込み処理を中断し、読出し処理を行なうことができるフラッシュメモリを対象とするメモリの読出し方法であって、
ＣＰＵ、デバイスドライバを含むＯＳ、仮想アドレスから物理アドレスへの変換のためのページテーブルをもつＴＬＢ、アプリケーションプログラムを用意して、
前記ＣＰＵ及び前記ＯＳの制御下において、読出し命令を受けると、
前記アプリケーションプログラムにより、前記デバイスドライバに前記ＴＬＢの設定要求を行い、
前記デバイスドライバは、前記設定要求に応じて前記ＴＬＢの前記ページテーブルから読み出したアドレス情報を取得し、
前記アプリケーションプログラムは、前記取得したアドレス情報を用いて前記デバイスドラバを用いることなく、前記フラッシュメモリ部に対して直接に読出しを行なうことを特徴とするメモリの読出し方法。
【請求項６】
前記ＯＳは、前記アプリケーションプログラムが前記フラッシュメモリに対して読出しを行なう際に、前記ＣＰＵが発生したＴＬＢエラーを検出すると、前記サスペンドコマンドを発生してこれを前記フラッシュメモリに供給することで、前記フラッシュメモリが行なっている書込み処理を中断させることを特徴とする請求項５記載のメモリの読出し方法。
【請求項７】
前記ＯＳは、前記フラッシュメモリが書込み処理中に前記アプリケーションプログラムが読出しを行なう場合、前記ＣＰＵがＴＬＢエラーを発生することとなるように、書込み命令を受けて書込み処理を行う際に前記ＴＬＢの読出し専用領域についてオフを設定することを特徴とする請求項６記載のメモリの読出し方法。
【請求項８】
前記フラッシュメモリは、ＮＯＲ型のフラッシュメモリであることを特徴とする請求項５記載のメモリの読出し方法。
【請求項９】
メモリシステム上で実行されるプログラムであって、
前記メモリシステムは、ＣＰＵと、仮想アドレスから物理アドレスへの変換のためのページテーブルをもつＴＬＢと、書込み処理の期間にサスペンドコマンドを受けると前記書込み処理を中断して読出し処理を行なうフラッシュメモリ部をもち、
前記プログラムは、前記メモリシステム上で前記ＣＰＵにより実行させることで、
書込み命令を受けて書込み処理を行う際に、前記ＴＬＢの読出し専用領域についてオフを設定し、
読出し命令を受けて読み出し処理を行なう際に、前記ＣＰＵは、前記ＴＬＢの読出し専用領域のオフ設定を検出するとＴＬＢエラーを発生し、
このＴＬＢエラーを検出すると、前記サスペンドコマンドを発生してこれを前記フラッシュメモリ部に供給して、前記フラッシュメモリ部が行なっている書込み処理を中断させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、書込み処理の期間にサスペンドコマンドを受けると、書込み処理を中断して読出し処理を行なうフラッシュメモリを含むメモリシステム及びメモリの読出し方法並びにプログラムに関する。
【背景技術】
【０００２】
近年、多くの種類のメモリ装置が開発され普及してきている。その一つとして、従来のＮＯＲ型フラッシュメモリは、書き込みイレーズ処理に時間がかかり、その間にデータの読出しができないことが短所となっている。最近、書き込みサスペンド機能、イレーズサスペンド機能を持ったＮＯＲ型フラッシュメモリが出てきた。これは、書き込みまたは、イレーズ処理中にサスペンドコマンドを発行することで、処理を中断し、一時的にデータ読出しを可能とするものである。ここで、フラッシュメモリに書込み処理を行なう場合の方法を記載した文献が知られている。
【０００３】
特許文献１は、フラッシュメモリ等の不揮発メモリを内蔵したマイクロコンピュータに関して、特に不揮発メモリの書換時の手順を開示している。
【特許文献１】特開２００４−３０４３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の従来技術は、読出し処理や書込み処理の際にＴＬＢ（Translation Lookaside Buffer）をどのように利用するかの記載がない。また、上述した書き込みサスペンド機能を持ったＮＯＲ型フラッシュメモリに対して、どのように書込み処理を行なうかの記載がないため、書き込みサスペンド機能を持ったＮＯＲ型フラッシュメモリの特性を生かして、どのように高速に読み出し処理を行なうかが分からないという問題がある。
【０００５】
本発明は、書き込みサスペンド機能を持ったフラッシュメモリに高速に読み出し処理を行なうメモリシステム及びメモリの読出し方法並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
課題を解決するための一実施形態は、
書込み処理の期間にサスペンドコマンドを受けると前記書込み処理を中断し、読出し処理を行なうことができるフラッシュメモリ部（７）と、
ＣＰＵ（１）と、
デバイスドライバ（６）を含むＯＳ（５）と、
仮想アドレスから物理アドレスへの変換のためのページテーブルをもつＴＬＢ（２）と、
前記ＣＰＵ及び前記ＯＳの制御下において、読出し命令を受けると、アプリケーションプログラムは、前記デバイスドライバに前記ＴＬＢの設定要求を行い、前記デバイスドライバが前記設定要求に応じて前記ＴＬＢの前記ページテーブルから読み出したアドレス情報を取得し、前記取得したアドレス情報を用いて前記デバイスドラバを用いることなくアプリケーションプログラムが直接に前記フラッシュメモリ部に対して読出しを行なうアプリケーションプログラム（４）と、を具備することを特徴とするメモリシステムである。
【発明の効果】
【０００７】
デバイスドライバを使用せずに直接フラッシュメモリに読出し処理を行なうことで、高速に読出しを可能とする。又、ＴＬＢエラーを意図的に発生させることで、サスペンドコマンドの発生を適切に管理することができる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施の形態について図面を参照して詳細に説明する。
【０００９】
＜本発明の一実施形態であるメモリシステムの一例＞
図１は、本発明の一実施形態に係るメモリシステムの一例を示すブロック図である。本発明の一実施形態であるメモリシステム１００は、全体の動作を処理するＣＰＵ１と、仮想アドレスから物理アドレスへの変換のためのページテーブルをもつＴＬＢ（Translation Lookaside Buffer）２と、ＲＡＭ３と、ＲＡＭ３に格納されたアプリケーションプログラム４と、ＲＡＭ３に格納されたＯＳ（Operating System）５と、ＯＳ５に含まれるデバイスドライバ６を有する。
【００１０】
更に、本発明の一実施形態に係るメモリシステム１００の一例を示すブロック図である。本発明の一実施形態であるメモリシステム１００は、書込み処理の期間にサスペンドコマンドを受けると書込み処理を中断し、読出し処理を行なうことができるフラッシュメモリ７と、フラッシュメモリ７の記憶領域の一部である読み出し専用エリア８と、フラッシュメモリ７の記憶領域の一部である読み書き用エリア９を有する。
【００１１】
すなわち、このメモリシステム１００においては、ＲＡＭ３の中にはＯＳ５が置かれ、ＯＳ５上でアプリケーションプログラム４が実行される。フラッシュメモリ７は、読み出し専用エリア８と読み書き用エリア９に分割してアクセスされる。ここで、読み出し専用エリア８と読み書き用エリア９は、記憶領域をアプリケーションプログラム４で二つに分割して管理するものである。
【００１２】
また、ＮＯＲ型のフラッシュメモリ７に関しては、書き込みイレーズ処理中に処理を中断して一時的に読み出しが可能な機能（プログラムサスペンド機能又はイレーズサスペンド機能）を持つものを利用する。
【００１３】
（読出し処理及び書き込み処理の動作）
次に、読出し処理及び書き込み処理の動作を図面を用いて詳細に説明する。図２は、本発明の一実施形態に係るメモリシステムにおいて、アプリケーションプログラムがＴＬＢを用いて、読出し処理を行うことを示す説明図である。図３は、同じく、アプリケーションプログラムがデバイスドライバを用いてフラッシュメモリに読出し処理及び書込み処理を行うことを示す説明である。
【００１４】
・読出し処理及び書込み処理の概要
すなわち、本発明の一実施形態であるメモリシステムでは、図２に示すように、読み出し専用エリア８へアクセスするには、アプリケーションプログラム４が、ＣＰＵ１及びＯＳ５の制御下において、読出し命令を受けると、デバイスドライバ６にＴＬＢ２の設定要求を行なう。デバイスドライバ６は、設定要求に応じてＴＬＢ２のページテーブルから読み出したアドレス情報を取得する。アプリケーションプログラム４は、この取得したアドレス情報を用いてデバイスドライバ６を用いることなく、直接にフラッシュメモリ７の読出し専用エリア８に迅速な読出し処理を行なうものである。
【００１５】
一方、本発明の一実施形態であるメモリシステム１００は、読み書き用エリア９へのアクセスにおいては、図３に示すように、デバイスドライバ６を介して行う。デバイスドライバ６はフラッシュメモリ７の書き込みシーケンスに則り、書き込み処理を行うが、処理速度はアプリケーションプログラム４が、単独でフラッシュメモリ７の読出し専用エリア８に対して読出し処理を行なう場合に比べて時間がかかる処理となる。
【００１６】
・読出し処理
次に、上述したデバイスドライバ６を用いずに、アプリケーションプログラムにより直接フラッシュメモリ７に行なう読出し処理を図４のフローチャートを用いて詳細に説明する。図４は、本発明の一実施形態に係るメモリシステムにおいて、アプリケーションプログラムが、直接フラッシュメモリに読出し処理を行う場合の一例を示すフローチャートである。
【００１７】
はじめに、本発明の一実施形態に係るメモリシステム１００において、ＯＳ５が読出し専用エリア８の読出し命令を受けると、アプリケーションプログラム４が、デバイスドライバ６へＴＬＢ設定要求を行なう（ステップＳ１１）。これは一度設定するだけでよく、読み出し処理ごとに発行する必要はない。この結果、デバイスドライバ６は、仮想アドレスから物理アドレスへの変換のためのページテーブルをもつＴＬＢ２から、対応する物理アドレス情報を取得する。次に、アプリケーションプログラム４が、デバイスドライバ６からこのアドレスを取得する（ステップＳ１２）。この処理も一度行なえば足りる。
【００１８】
そして、アプリケーションプログラム４が、デバイスドライバ６を用いることなく、直接、フラッシュメモリ７のアドレスを指定して情報の読みだしを行なう（ステップＳ１３）。通常は、そのままこの読出し処理は成功する。
【００１９】
しかしこの時、図５で後述する書込み処理の最中であり、読出し専用エリア８のＴＬＢがオフであることを検出すると、ＣＰＵ１がＴＬＢエラーを発生させる。その結果、ＯＳ５が、このＴＬＢエラーを検出すると（ステップＳ１４）、ＯＳ５が書き込みサスペンドコマンドを発生させ、これをフラッシュメモリ７に供給する（ステップＳ１５）。この結果、フラッシュメモリ７は、書き込み処理を中断する。次に、ＯＳ５が読出し専用エリア８のＴＬＢ２をオンする（ステップＳ１６）。この結果、ＴＬＢエラーから復帰して、フラッシュメモリ７は、読出し専用エリア８に対する読出し処理が可能となる。
【００２０】
このアプリケーションプログラムからの直接のフラッシュメモリ７の読出し専用エリア８からの読出し処理は、デバイスドライバ６を用いていないので、デバイスドライバ６が原因となるアクセス速度の低下を生じることはない。
【００２１】
・書込み処理
次に、ＴＬＢエラーを発生させることでサスペンスコマンドの生成を管理する方法を可能とするための書込み処理を、図５のフローチャートを用いて詳細に説明する。図５は、本発明の一実施形態に係るメモリシステムにおいて、フラッシュメモリに書込み処理を行う場合の一例を示すフローチャートである。
【００２２】
はじめに、本発明の一実施形態に係るメモリシステム１００において、ＯＳ５が読み書き用エリア９に対する読出し書込み処理の命令を受けると、ＯＳ５は、排他制御ロックをオンする（ステップＳ２１）。次に、ＯＳ５は、読出し専用エリア８のＴＬＢ２をオフする（ステップＳ２２）。そして、ＯＳ５は、書込みコマンドを発行し（ステップＳ２３）、排他制御ロックをオフする（ステップＳ２４）。その後、ＣＰＵ１及びＯＳ５は、一定時間、待機する（ステップＳ２５）。
【００２３】
その後、ＯＳ５は、排他制御ロックをオンする（ステップＳ２６）。しかし、このとき、ウェイト中に他のプロセスが読み出し処理を行う可能性があるので、ＯＳ５は、現在、書込み処理がサスペンド状態になっているかどうかを判断する（ステップＳ２７）。ＯＳ５は、書込み処理がサスペンド状態になっていると判断すると、読出し専用エリア８のＴＬＢ２をオフとし（ステップＳ２８）、その後、書込み処理を再開するコマンドを発行することで、書込み処理を続行するものである（ステップＳ３０）。
【００２４】
一方、ステップＳ２７で書き込み状態はサスペンドされてはいない場合は、書込み処理が完了するまで（ステップＳ２８）、ステップＳ２４に戻って書込み処理を継続する。書込み処理が完了すると、ＯＳ５は、排他制御ロックをオフして、初期状態に戻る（ステップＳ２９）。なお、イレーズ処理についても書き込み処理と同様のシーケンスとなる。
【００２５】
この図５のフローチャートの処理により、ステップＳ２２で読出し専用エリアのＴＬＢをオフすることで、読出し処理と書込み処理が衝突した際に、ＴＬＢエラーを発生させて、ＯＳ５にサスペンスコマンドを発生させフラッシュメモリ７に供給することにより、書込み処理を中断させるため、高速の読出し処理が可能となるものである。
【００２６】
＜デバイスドライバを用いた読出し処理の一例＞
次に、参考までに、次に、本発明の一実施形態であるアプリケーションプログラム４が直接フラッシュメモリ７に読出し処理を行なわない場合の処理の一例を、図６のフローチャートを用いて説明する。図６は、本発明の一実施形態に係るメモリシステムにおいて、アプリケーションプログラムが、デバイスドライバを介して、フラッシュメモリに読出し処理を行う場合の一例を示すフローチャートである。
【００２７】
すなわち、本発明の一実施形態に係るメモリシステム１００において、読出し命令を受けると、ＣＰＵ１及びＯＳ４の制御下において、アプリケーションプログラム４が、デバイスドライバ６に、読み出し要求を行なう（ステップＳ４１）。これに対して、デバイスドライバ６は、排他制御をオンする（ステップＳ４２）。ここで、デバイスドライバ６は、書き込み中の場合にはサスペンドを行なう（ステップＳ４３）。そして、デバイスドライバ６は、データコマンドを実行することで、メモリシステム１００による読出し処理を実行する（ステップＳ４４）。その後、デバイスドライバ６は、排他制御をオフする（ステップＳ４５）。
【００２８】
このように、図６のフローチャートでは、プログラムサスペンド機能を持ったＮＯＲ型フラッシュメモリ７を利用する場合に、アプリケーションプログラム４が直接フラッシュメモリ７に読出し処理を行なわず、デバイスドライバ６がフラッシュメモリ７に対して読出しを行なう。すなわち、ここでは、デバイスドライバ６の内部で状態管理を行う方法がとられている。ＮＯＲ型フラッシュメモリはアドレス指定で直接アクセスできることで高速読み出しできることが特徴であるが、デバイスドライバ６を間に挟むことで、１０分の１程度まで読み出し速度が低下してしまう。
【００２９】
先に説明した本発明の一実施形態では、図４に示すようにアプリケーションプログラム４が、読み出し専用エリア８へのアクセスを直接アクセスできるため、読み出し速度は高速なまま、レスポンスも向上させることが可能となる。
【００３０】
以上、ＮＯＲ型フラッシュメモリでサスペンドコマンドを用いないと、書き込みまたはイレーズ処理中は、一切読み出し処理ができないため、読み出し処理のレスポンスが悪くなってしまうが、プログラムサスペンド機能、イレーズサスペンド機能といった、処理中に一時的に読み出し可能状態に変更できる機能をもったフラッシュメモリを用いることで速度低下を解消することができる。
【００３１】
ただし、プログラムサスペンド機能を持ったＮＯＲ型フラッシュメモリ７を利用する場合に、読み書きアクセスすべてについてデバイスドライバ６を介して行うと、１０分の１程度まで読み出し速度が低下してしまう。
【００３２】
図４及び図５のフローチャート等で示した本発明の一実施形態では、読み出し専用エリアのアクセスをアプリケーションプログラムから直接アクセスできるため、読み出し速度は高速なまま、レスポンスも向上させることが可能となる。
【００３３】
以上記載した様々な実施形態により、当業者は本発明を実現することができるが、更にこれらの実施形態の様々な変形例を思いつくことが当業者によって容易であり、発明的な能力をもたなくとも様々な実施形態へと適用することが可能である。従って、本発明は、開示された原理と新規な特徴に矛盾しない広範な範囲に及ぶものであり、上述した実施形態に限定されるものではない。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態に係るメモリシステムの一例を示すブロック図。
【図２】本発明の一実施形態に係るメモリシステムにおいて、アプリケーションプログラムがＴＬＢを用いて、フラッシュメモリに直接、読出し処理を行うことを示す説明図。
【図３】本発明の一実施形態に係るメモリシステムにおいて、アプリケーションプログラムがデバイスドライバを用いて読み書き処理を行う場合を示す説明図。
【図４】本発明の一実施形態に係るメモリシステムにおいて、アプリケーションプログラムが、直接フラッシュメモリに読出し処理を行う場合の一例を示すフローチャート。
【図５】本発明の一実施形態に係るメモリシステムにおいて、フラッシュメモリに書込み処理を行う場合の一例を示すフローチャート。
【図６】本発明の一実施形態に係るメモリシステムにおいて、アプリケーションプログラムが、デバイスドライバを介して、フラッシュメモリに読出し処理を行う場合の一例を示すフローチャート。
【符号の説明】
【００３５】
１…ＣＰＵ、２…ＴＬＢ、３…ＲＡＭ、４…アプリケーションプログラム、５…ＯＳ、６…デバイスドライバ、７…フラッシュメモリ、８…読み出し専用エリア、９…読み書き用エリア９。
【図１】
2009087028.tif 000003
【図２】
2009087028.tif 000004
【図３】
2009087028.tif 000005
【図４】
2009087028.tif 000006
【図５】
2009087028.tif 000007
【図６】
2009087028.tif 000008