(57)【要約】【課題】一般要請に対する演算処理のうち、緊急要請に対する演算処理が発生すれば、一般要請に対する演算処理を中断した後、緊急要請に対する演算処理を先に行う不揮発性メモリで演算処理を制御する装置およびその方法を提供する。【解決手段】緊急要請に対する演算発生時にプリエンプトフラグおよび状態バックアップフラグの値を設定する緊急要請管理部と、設定されたプリエンプトフラグおよび状態バックアップフラグの設定値をチェックする状態チェック部と、発生した緊急要請に対する演算を処理して、チェックされた設定値に基づいて一般要請に対する演算を処理する演算処理部とを含む。【選択図】図３
2008123503.tif 000002
【特許請求の範囲】
【請求項１】
緊急要請に対する演算発生時にプリエンプトフラグおよび状態バックアップフラグの値を設定する緊急要請管理部と、
前記設定されたプリエンプトフラグおよび状態バックアップフラグの設定値をチェックする状態チェック部と、
前記発生した緊急要請に対する演算を処理して、前記チェックされた設定値に基づいて一般要請に対する演算を処理する演算処理部とを含む、不揮発性メモリで演算処理を制御する装置。
【請求項２】
前記プリエンプトフラグに設定された値によって緊急要請に対する演算処理が行われたか否かを確認することができ、前記状態バックアップフラグに設定された値によって一般要請に対する演算処理の結果値が格納されたか否かを確認することができる、請求項１に記載の不揮発性メモリで演算処理を制御する装置。
【請求項３】
前記演算処理部は、緊急要請に対する演算処理が発生すれば一般要請に対する演算処理を中断した後、緊急要請に対する演算処理を行う、請求項１に記載の不揮発性メモリで演算処理を制御する装置。
【請求項４】
前記一般要請に対する演算処理の結果値を格納する格納部をさらに含む、請求項１に記載の不揮発性メモリで演算処理を制御する装置。
【請求項５】
演算処理を制御する装置が不揮発性メモリで演算処理を制御する方法において、
緊急要請に対する演算処理が発生すれば、一般要請に対する演算処理の完了を待機するステップと、
前記演算処理の完了後、状態バックアップフラグの値を設定するステップと、
前記緊急要請に対する演算を処理するステップと、
前記緊急要請に対する演算処理が完了すれば、プリエンプトフラグ値を設定するステップとを含む、不揮発性メモリで演算処理を制御する方法。
【請求項６】
前記演算処理の完了後、演算処理の結果値を格納するステップをさらに含む、請求項５に記載の不揮発性メモリで演算処理を制御する方法。
【請求項７】
前記プリエンプトフラグに設定された値によって緊急要請に対する演算処理が行われたか否かを確認することができ、前記状態バックアップフラグに設定された値によって一般要請に対する演算処理の結果値が格納されたか否かを確認することができる、請求項５に記載の不揮発性メモリで演算処理を制御する方法。
【請求項８】
前記状態バックアップフラグおよびプリエンプトフラグの値が全て設定されている場合、一般要請に対する演算処理の結果を確認する、請求項５に記載の不揮発性メモリで演算処理を制御する方法。
【請求項９】
前記プリエンプトフラグ値をチェックするステップと、
前記チェックの結果、プリエンプトフラグ値が設定された場合、前記プリエンプトフラグ値を初期化するステップと、
前記一般要請に対する演算を処理するステップとを含む、請求項５に記載の不揮発性メモリで演算処理を制御する方法。
【請求項１０】
前記緊急要請に対する演算処理が発生すれば、前記一般要請に対する演算処理を中断するステップと、
前記緊急要請に対する演算を処理するステップと、
前記緊急要請に対する演算処理の完了後、プリエンプトフラグ値を設定するステップとを含む、請求項５に記載の不揮発性メモリで演算処理を制御する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリで演算処理を制御する装置およびその方法に関し、より詳しくは、一般要請に対する演算処理中、緊急要請に対する演算処理が発生すれば、一般要請に対する演算処理を中断した後、緊急要請に対する演算処理を先に行う不揮発性メモリで演算処理を制御する装置およびその方法に関するものである。
【背景技術】
【０００２】
最近、モバイル機器の機能が多様化および複合化してマルチメディア機能が強化されることによって、モバイル機器に搭載されたソフトウェアの大きさおよびユーザデータの格納空間の要求量はさらに大きくなりつつある。これによって、コードおよびユーザデータを格納するための不揮発性メモリの大きさおよびコードを動作させるための揮発性メモリの大きさに対する要求が急激に増加しており、このためモバイル機器の原価が高くなっている。
【０００３】
従来のモバイル機器では起動およびコードの格納のため不揮発性メモリとしてノア（ＮＯＲ）フラッシュメモリが主に用いられ、また、ユーザデータを格納するためにナンド（ＮＡＮＤ）フラッシュメモリが用いられ、揮発性メモリとしてダイナミックＲＡＭ（ＤＲＡＭ）が用いられた。ところが、モバイル機器製造会社はメモリ構成に対する原価を低くして、かつ性能を向上させるためにＮＡＮＤフラッシュメモリにコードとユーザデータを共に格納する方式を多く採択している。ＮＡＮＤフラッシュメモリは、ＮＯＲフラッシュメモリとは異なり、ＸＩＰ（ｅＸｅｃｕｔｅ  Ｉｎ  Ｐｌａｃｅ）にならず、コード実行のためにはＲＡＭに全てのコードを積載した後コード実行をしなければならない。ところで、最近ＲＡＭの大きさを減らすためにＮＡＮＤフラッシュメモリを補助記憶装置（Ｂａｃｋｉｎｇ  Ｓｔｏｒｅ）とする要求ページング（Ｄｅｍａｎｄ  Ｐａｇｉｎｇ）技法を用いた仮想記憶装置システム（Ｖｉｒｔｕａｌ  Ｍｅｍｏｒｙ  Ｓｙｓｔｅｍ）を適用した事例が増加している。これは全てのコードをＲＡＭへ一度に積載することではなく、コードがアクセスされる時、もしアクセスされたページがＲＡＭに存在しないならば、ページ単位でＲＡＭに該当ページを積載させることをいう。
【０００４】
また、アクセスされたページがＲＡＭに存在しない場合は例外の場合（ｅｘｃｅｐｔｉｏｎ  ｃａｓｅ）に該当し、発生した例外の場合を処理しなければ、システムの何れの動作も進行されない。したがって、アクセスされたページをＮＡＮＤフラッシュメモリから読み込んでＲＡＭに積載させ、コード実行が進行され続けるようにしなければならない。
【０００５】
ところで、ＮＡＮＤフラッシュメモリにはコードだけでなくユーザデータも共に格納されているため、例外の場合が生じてコードページをロードしようとする時、既にＮＡＮＤフラッシュメモリはユーザデータの格納および抽出などの目的で使用中であり得る。このような場合、使用中の演算を中断し、上記で説明したように例外の場合の処理が先に行われるべきである。したがって、既に実行中であった読み取り／書き込み／削除の演算を中断して例外の場合を行うための演算に対する処理が先行する必要がある。
【０００６】
図１は、一般的なＮＡＮＤフラッシュメモリでの読み取りおよび書き込み演算を行う過程を示す図面である。
図に示すように、不揮発性メモリ（例えば、ＮＡＮＤフラッシュメモリ）はページ単位で読み取り・書き込み演算を行い、読み取りを命令すれば該当ページをページレジスタ２１までロードする。この時、ロード動作が行われる間ＮＡＮＤフラッシュメモリ２０の状態はビジー（Ｂｕｓｙ）状態である。その次に、ページレジスタ２１までデータが全てロードされれば、ホストメモリ１０にデータを伝送でき、データが伝送される間ＮＡＮＤフラッシュメモリ（登録商標）２０は準備（Ｒｅａｄｙ）状態として次の命令を受けられる状態になるが、次の命令を受ければページレジスタ２１にロードされたデータ値は変更され得る。したがって、読み取り演算の完了はページレジスタ２１でホストメモリ１０へのデータ伝送が完了するまでといえる。
【０００７】
反対に、書き込み演算はホストメモリ１０から書き込みを行うデータをページレジスタ２１へ伝送する。この時、ページレジスタ２１までデータを伝送する間ＮＡＮＤフラッシュメモリ２０は準備状態となる。その次に、ページレジスタ２１までデータ伝送を完了した後、書き込みを命令すればＮＡＮＤセル２２へページレジスタ２１のデータが書き込まれるようになる。ここで、ページレジスタ２１のデータが書き込まれる間、ＮＡＮＤフラッシュメモリ２０はビジー状態であって他の命令を受けられない状態となる。この後、書き込みが完了すればＮＡＮＤフラッシュメモリ２０の状態レジスタ（Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ）には行われた書き込み演算に対する実行結果が格納される。
【０００８】
特許文献１では、読み取り／書き込み動作を行うためにフラッシュメモリの所定ブロックに対してアクセスが要請されれば、アクセス可能であるか否かおよび削除動作中であるか否かなどを判断して、削除動作を中断した後読み取り／書き込み動作を行うようにする技術を開示しているが、これは一般要請に対する演算実行時に緊急要請に対する演算実行が発生すれば緊急要請に対する演算処理を先に行う技術については全く言及していない。
【特許文献１】大韓民国公開特許第２００１−０２６６００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、一般要請に対する演算処理中、緊急要請に対する演算処理が発生すれば、緊急要請に対する演算処理を先に行うことにその目的がある。
本発明の目的は、以上で言及した目的に制限されず、言及していないまた他の目的は下記記載によって当業者が明確に理解できるものである。
【課題を解決するための手段】
【００１０】
前記目的を達成するために、本発明の一態様に係る不揮発性メモリで演算処理を制御する装置は、緊急要請に対する演算発生時にプリエンプトフラグおよび状態バックアップフラグの値を設定する緊急要請管理部と、前記設定されたプリエンプトフラグおよび状態バックアップフラグの設定値をチェックする状態チェック部と、前記発生した緊急要請に対する演算を処理して、前記チェックされた設定値に基づいて一般要請に対する演算を処理する演算処理部とを含む。
【００１１】
また、本発明の他の態様に係る不揮発性メモリで演算処理を制御する方法は、演算処理を制御する装置が不揮発性メモリで演算処理を制御する方法において、緊急要請に対する演算処理が発生すれば、一般要請に対する演算処理の完了を待機するステップと、前記演算処理の完了後、状態バックアップフラグの値を設定するステップと、前記緊急要請に対する演算を処理するステップと、前記緊急要請に対する演算の処理が完了すれば、プリエンプトフラグ値を設定するステップとを含む。
その他、実施形態の具体的な事項は、詳細な説明および図面に含まれている。
【発明の効果】
【００１２】
本発明の不揮発性メモリで演算処理を制御する装置およびその方法によれば次のような効果が１つあるいはそれ以上ある。
【００１３】
ハードウェア的にパーティションを支援しない不揮発性メモリに対して、ソフトウェアによって進行中の演算を中断し、緊急に要求される読み取り／書き込み／削除の演算を行える長所がある。
【発明を実施するための最良の形態】
【００１４】
本発明の利点および特徴、そしてそれらを達成する方法は、添付する図面と共に詳細に後述する実施形態を参照すれば明確になる。しかし、本発明は以下にて開示する実施形態に限定されず、互いに異なる多様な形態によって実施され、単に本実施形態は本発明の開示が完全なものとなるようにし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであって、本発明は請求項の範疇によってのみ定義されるものである。明細書の全体に亘り、同一参照符号は同一構成要素を示す。
【００１５】
以下、添付した図面を参照して、本発明の好ましい実施形態を詳細に説明することにする。
【００１６】
図２は、本発明の一実施形態に係る不揮発性メモリで演算処理を制御する装置において、緊急要請および一般要請に対する演算処理を行う過程を示す図面である。
図に示すように、不揮発性メモリを備えた格納装置１００は、デバイスドライバ２００とフラッシュメモリ（登録商標）３００を含むことができる。デバイスドライバ２００は、一般要請（Ｎｏｒｍａｌ  Ｒｅｑｕｅｓｔ）と緊急要請（Ｕｒｇｅｎｔ  Ｒｅｑｕｅｓｔ）に対する演算を処理することによって、緊急要請に対する演算処理が発生すれば一般要請に対する演算処理は中断され、緊急要請に対する演算処理が行われる。ここで、デバイスドライバ２００は、以下図面では演算処理制御装置として説明することにする。フラッシュメモリ３００は、デバイスドライバ２００で処理されたデータを格納するものであって、例えばＮＡＮＤフラッシュメモリがある。
【００１７】
一般要請は、同期化のためにセマフォ（ｓｅｍａｐｈｏｒｅｓ）などで保護することによって、１つの一般要請が終るまで他の一般要請は待機するようにする。しかし、緊急要請は、一般要請が進行中であってもこれを中断して読み取り／書き込み／削除の演算を処理することができる。したがって、リアルタイムアプリケーションのためのコードアクセスのように長い遅延（ｌａｔｅｎｃｙ）を許容できない要求に対する迅速な対応が可能である。
【００１８】
また、緊急要請処理ルーチンは、いつでも一般要請処理ルーチンの動作中に割り込んで一般要請の演算を中断させられる。したがって、一般要請処理ルーチンは演算処理中、緊急要請によって演算処理が中断されたことがあるのか確認して適切な措置を取るべきである。ここで、緊急要請によって中断されたことがあるか否かはプリエンプトフラグ（Ｐｒｅｅｍｐｔｅｄ  Ｆｌａｇ）によって表わすことができる。
【００１９】
例えば、一般要請処理ルーチンは、一般要請を処理する前に常にプリエンプトフラグを「０」と初期化した後、一般要請に対する演算を処理する。また、緊急要請処理ルーチンは、緊急要請を処理しながら、いつもプリエンプトフラグを「１」に設定する。この後、一般要請処理ルーチンは、プリエンプトフラグを確認することによって、一般読み取り／書き込み／削除の要請に対する演算処理を再び行うか否かを決定する。不揮発性メモリを備えた格納装置１００が中断（Ｓｕｓｐｅｎｄ）または再開（Ｒｅｓｕｍｅ）命令を支援したら、書き込みや削除の演算を初めから再び行わずに再開命令によって書き込みや削除の演算を引続き進行するようにすることもできる。
【００２０】
一方、一般要請処理のための不揮発性メモリを備えた格納装置１００の演算中に緊急要請が割り込んで演算を中断し、緊急要請を処理する場合もあるが、一般要請に対する演算が完了した後、緊急要請に対する演算が発生する場合もあり得る。この場合、不揮発性メモリを備えた格納装置１００は準備状態であるが、一般要請処理ルーチンがまだ状態レジスタの値を確認しない状態である。ここで、緊急要請処理ルーチンで読み取り／書き込み／削除の演算を行えば、不揮発性メモリを備えた格納装置１００の状態レジスタには緊急要請処理に対する結果が反映されるため、一般要請処理ルーチンでは以前に行った一般要請に対する演算結果が分からないという問題点が生じる。したがって、緊急要請処理ルーチンでは、上記のような場合、状態バックアップ（Ｂａｃｋｕｐ  Ｓｔａｔｕｓ）という変数に以前の進行された演算に対する結果を格納しておいて、状態バックアップフラグ（Ｓｔａｔｕｓ−Ｂａｃｋｕｐ  Ｆｌａｇ）を「１」に設定する。この後、一般要請処理ルーチンでは、プリエンプトフラグが「１」に設定されていながら、状態バックアップフラグも「１」に設定されている場合、格納されている状態バックアップを確認することによって以前に行わせた演算処理の結果を確認することができる。
【００２１】
また、緊急要請処理ルーチンは、進行中の演算の動作（ｏｐｅｒａｔｉｏｎ）種類によって他の動作を行う。したがって、緊急要請処理ルーチンは、進行中の一般要請の演算がどのような種類であったのか分かるべきである。フラッシュメモリ３００はその種類によって、状態レジスタを介して進行中の動作の種類を示すものもあるが、ハードウェア的に支援しないメモリもある。このような場合、動作タイプフラグ（Ｏｐｅｒａｔｉｏｎ  Ｔｙｐｅ  Ｆｌａｇ）を設けて、一般要請に対する演算を行う時、該当する演算タイプを設定して、後で緊急要請処理ルーチンで確認できるようにする。
【００２２】
また、フラッシュメモリ３００はその種類によって、進行中のフラッシュ入出力（Ｉ／Ｏ）を中断して新しいフラッシュ入出力を行うために、不揮発性メモリを備えた格納装置１００をリセットさせなければならない装置がある。したがって、上記のような装置を用いる場合、緊急要請処理ルーチンは進行中のフラッシュ入出力を中断して新しいフラッシュ入出力を行う場合、不揮発性メモリを備えた格納装置１００にリセットを命令して緊急要請に対する演算を処理する。
【００２３】
図３は、本発明の一実施形態に係る不揮発性メモリで演算処理を制御する装置を示すブロック図である。
図に示すように、演算処理制御装置２００は、入力部２１０、緊急要請管理部２２０、状態チェック部２３０、演算処理部２４０、格納部２５０、および制御部２６０を含んで構成される。
【００２４】
この時、本実施形態で用いられる「〜部」という用語は、ソフトウェアまたはＦＰＧＡまたはＡＳＩＣのようなハードウェア構成要素を意味し、「〜部」はある役割を行う。ところが「〜部」は、ソフトウェアまたはハードウェアに限定される意味ではない。「〜部」は、アドレッシングできる格納媒体にあるように構成することもでき、１つまたはそれ以上のプロセッサを再生させるように構成することもできる。したがって、一例として「〜部」はソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、および変数を含む。構成要素と「〜部」の中で提供されている機能は、さらに小さい数の構成要素および「〜部」に結合したり、追加的な構成要素と「〜部」にさらに分離したりすることができる。
【００２５】
入力部２１０にはユーザ入力部から要請された一般要請に対する演算処理および緊急要請に対する演算処理の命令が入力される。ここで、ユーザ入力部はホストメモリおよびアプリケーションであると理解できる。
緊急要請管理部２２０はプリエンプトフラグおよび状態バックアップフラグの値を設定する。
【００２６】
例えば、緊急要請に対する演算処理が一般要請に対する演算処理中に発生して一般要請に対する演算処理が中断される場合、緊急要請管理部２２０はプリエンプトフラグを「１」に設定する。ここで、一般要請に対する演算処理時のプリエンプトフラグは「０」に初期化されている。
【００２７】
また、緊急要請に対する演算処理は一般要請に対する演算処理が完了した後に発生して、一般要請に対する演算処理の結果を確認することができない場合、緊急要請管理部２２０は制御部２６０に一般要請に対する演算処理の結果を格納するように要請する。ここで、格納部２５０に一般要請に対する演算処理の結果が格納されれば、緊急要請管理部２２０は一般要請に対する演算処理の結果が格納されていることを示すために状態バックアップフラグを「１」に設定する。
【００２８】
状態チェック部２３０は緊急要請管理部２２０によって設定されたプリエンプトフラグおよび状態バックアップフラグの設定値をチェックすることで、プリエンプトフラグに設定された値によって緊急要請に対する演算処理が行われたか否かを確認でき、状態バックアップフラグに設定された値によって一般要請に対する演算処理の結果が格納されたか否かが分かる。
【００２９】
例えば、書き込み演算の処理が終了した後、緊急要請に対する演算処理が行われたとすれば、演算処理制御装置２００には書き込み演算に対する結果が存在しないため、格納部２５０に演算結果値を格納し、緊急要請管理部２２０は状態バックアップフラグを「１」に設定する。この後、状態チェック部２３０は状態バックアップフラグの設定された値をチェックして、演算処理の結果が格納されたか否かが分かる。
【００３０】
演算処理部２４０は一般要請および緊急要請に対する演算を処理する。ここで、演算処理部２４０は緊急要請に対する演算処理が発生すれば一般要請に対する演算処理を中断させ、優先的に緊急要請に対する演算処理を行う。ここで、演算処理部２４０は一般要請に対する演算および緊急要請に対する演算を行う各々の処理部を備えることもできる。また、演算処理部２４０は緊急要請に対する演算処理の発生時に演算処理中であった一般要請に対する演算を直ちに中断させることもでき、進行中であった演算処理が完了するまで待機することもできる。
【００３１】
また、演算処理部２４０は緊急要請に対する演算処理を完了した後、状態チェック部２３０がチェックしたプリエンプトフラグ値に基づいて一般要請に対する演算処理を行う。
【００３２】
例えば、演算処理部２４０は状態チェック部２３０がチェックしたプリエンプトフラグ値が「１」の場合、一般要請に対する演算処理のうち、緊急要請に対する演算処理が行われたことを認知して、実行中の一般要請に対する演算処理を再び行う。
【００３３】
また、演算処理部２４０は状態チェック部２３０がチェックしたプリエンプトフラグ値が「１」であり、状態バックアップフラグ値も「１」である場合、一般要請に対する演算処理が完了した後に緊急要請に対する演算処理が行われたことを認知して、格納部２５０に格納された一般要請に対する演算処理の結果を確認することができる。
【００３４】
格納部２５０は演算処理部２４０が処理したデータを格納し、緊急要請に対する演算処理が発生して中断された一般要請に対する演算処理の結果を格納する。
制御部２６０は演算処理制御装置２００を構成する各機能性ブロック（２１０〜２５０）の動作を制御する。
【００３５】
図４は、本発明の一実施形態に係る不揮発性メモリで演算処理を制御する方法のうち、一般読み取り要請に対する演算処理過程を示すフローチャートである。ここで、不揮発性メモリはその種類や状態によって、進行中の動作の種類を示すと仮定する。
【００３６】
先ず、演算処理部２４０はユーザの入力部２１０から要請された読み取り演算を処理する（Ｓ４１０）。ここで、プリエンプトフラグは「０」に初期化されている。また、ステップＳ４１０はクリティカルセクションの領域で、すなわちクリティカルセクションの間にはソフトウェアのコンテキストスイッチが発生せず、その間には他の演算があり得ないため、緊急な演算の要請がないと保障される領域をいう。以下、ステップでもクリティカルセクションが存在する。
【００３７】
その次に、要請されたデータを格納部２５０にロードし（Ｓ４２０）、状態チェック部２３０がチェックしたプリエンプトフラグ値が「１」であるかを確認する（Ｓ４３０）。ここで、プリエンプトフラグ値を確認することは緊急要請に対する演算処理が行われたか否かをチェックするためである。
【００３８】
ステップＳ４３０を行った結果、プリエンプトフラグ値が「１」でない場合、演算処理部２４０はロードされたデータをホストメモリに伝送する（Ｓ４４０）。その次に、ロードされたデータの伝送が完了すればもう一度プリエンプトフラグ値を確認して、緊急要請に対する演算処理によってデータ伝送が中断されなかったかを確認する。
【００３９】
確認結果、プリエンプトフラグ値が「１」でない場合（Ｓ４５０）、演算処理部２４０はＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  Ｃｏｄｅ）を検査する（Ｓ４６０）。
【００４０】
一方、ステップＳ４３０を行った結果、プリエンプトフラグ値が「１」の場合、緊急要請に対する演算処理が行われたことであるため、演算処理部２４０はプリエンプトフラグ値を「０」に初期化した後（Ｓ４７０）、初めから読み取り演算を処理する。
【００４１】
図５は、本発明の一実施形態に係る不揮発性メモリで演算処理を制御する方法のうち、一般書き込み要請に対する演算処理過程を示すフローチャートである。
【００４２】
先ず、入力部２１０にはユーザ入力部から書き込み演算を行うデータが伝送される（Ｓ５１０）。ここで、プリエンプトフラグは「０」に初期化されている。
【００４３】
その次に、データ伝送が完了すれば状態チェック部２３０は緊急要請に対する演算処理が行われたか否かをチェックするためにプリエンプトフラグの設定された値を確認する（Ｓ５２０）。ここで、ステップＳ５２０はクリティカルセクションの領域で、すなわちクリティカルセクションの間にはソフトウェアのコンテキストスイッチが発生せず、その間には他の演算があり得ないため、緊急な演算の要請がないと保障される領域をいう。以下、ステップでもクリティカルセクションが存在する。
【００４４】
ステップＳ５２０を行った結果、プリエンプトフラグ値が「１」の場合、書き込み演算の処理途中の緊急要請に対する演算処理が行われたことであるため、演算処理部２４０はプリエンプトフラグ値を「０」に初期化した後（Ｓ５８０）、初めから書き込み演算を処理する。
【００４５】
一方、ステップＳ５２０を行った結果、プリエンプトフラグ値が「１」でない場合、演算処理部２４０は伝送されたデータに対する書き込み演算を処理する（Ｓ５３０）。その次に、状態バックアップフラグを「０」に初期化しておく（Ｓ５４０）。ここで、状態バックアップフラグを「０」に初期化しておくことは、書き込み演算の処理途中に緊急要請に対する演算処理を行えば書き込み演算に対する現在処理された演算結果をなくすことになるため、状態バックアップフラグを「０」に初期化しておくことによって、緊急要請に対する演算処理の実行時に書き込み演算に対する現在処理された演算結果を格納しておくとの意味である。
【００４６】
その次に、書き込み演算処理が完了すれば（Ｓ５５０）、状態チェック部２３０はプリエンプトフラグ値と状態バックアップフラグ値をチェックして、プリエンプトフラグ値が「１」であり、かつ状態バックアップフラグ値も「１」であるかを確認する（Ｓ５６０）。
【００４７】
ステップＳ５６０を行った結果、プリエンプトフラグ値が「１」であり、かつ状態バックアップフラグ値も「１」である場合は、書き込み演算の処理が完了した後、緊急要請に対する演算処理が行われたのであるため、格納部２５０には緊急要請に対する演算処理が行われる前に処理された書き込み演算の処理に対する結果が格納されている。ここで、演算処理部２４０は格納部２５０に格納された書き込み演算に対する結果を確認する（Ｓ５９０）。
【００４８】
一方、ステップＳ５６０を行った結果、プリエンプトフラグ値と状態バックアップフラグ値が何れも「１」でない場合、一般書き込み演算を行う途中に緊急要請に対する演算処理がなかったため、不揮発性メモリで書き込み演算に対する結果を確認して処理する（Ｓ５７０）。
【００４９】
図６は、本発明の一実施形態に係る不揮発性メモリで演算処理を制御する方法のうち、一般削除要請に対する演算処理過程を示すフローチャートである。
【００５０】
先ず、演算処理部２４０はユーザの入力部から要請された削除演算を処理する（Ｓ６１０）。ここで、プリエンプトフラグおよび状態バックアップフラグは「０」に初期化されている。また、ステップＳ６１０はクリティカルセクションの領域で、すなわちクリティカルセクションの間にはソフトウェアのコンテキストスイッチが発生せず、その間には他の演算があり得ないため、緊急な演算の要請がないと保障される領域をいう。以下、ステップでもクリティカルセクションが存在する。
【００５１】
その次に、削除演算が完了すれば（Ｓ６２０）、状態チェック部２３０はプリエンプトフラグ値と状態バックアップフラグ値をチェックして、プリエンプトフラグ値が「１」であり、かつ状態バックアップフラグ値も「１」であるかを確認する（Ｓ６３０）。
【００５２】
ステップＳ６３０を行った結果、プリエンプトフラグ値が「１」であり、かつ状態バックアップフラグ値も「１」である場合は、削除演算の処理が完了した後、緊急要請に対する演算処理が行われたのであるため、格納部２５０には緊急要請に対する演算処理が行われる前に処理された削除演算の処理に対する結果が格納されている。ここで、演算処理部２４０は格納部２５０に格納された削除演算の処理に対する結果を確認する（Ｓ６５０）。
【００５３】
一方、ステップＳ６３０を行った結果、プリエンプトフラグ値と状態バックアップフラグ値が何れも「１」でない場合、一般削除演算を行う途中に緊急要請に対する演算処理がなかったため、不揮発性メモリで削除演算に対する結果を確認して処理する（Ｓ６４０）。
【００５４】
図７は、本発明の他の実施形態に係る不揮発性メモリで演算処理を制御する方法のうち、緊急読み取り要請に対する演算処理過程を示すフローチャートである。
【００５５】
先ず、緊急読み取り要請に対する演算処理が発生すれば、進行中であった演算処理に関する情報によって、最後に行われた演算処理をチェックする（Ｓ７１０）。ここで、ステップＳ７１０はクリティカルセクションの領域で、すなわちクリティカルセクションの間にはソフトウェアのコンテキストスイッチが発生せず、その間には他の演算があり得ないため、緊急な演算の要請がないと保障される領域をいう。以下、ステップでもクリティカルセクション領域が存在する。
【００５６】
ステップＳ７１０を行った結果、一般書き込み要請に対する演算を行った場合（Ｓ７１２）、演算処理制御装置２００の状態が準備状態になるまで待機する（Ｓ７１４）。その次に、演算処理制御装置２００の状態が準備状態になれば、状態チェック部２３０は状態バックアップフラグの設定された値が「０」であるかをチェックする（Ｓ７１６）。
【００５７】
ステップＳ７１６を行った結果、状態バックアップフラグの値が「０」である場合、演算処理部２４０は緊急読み取り要請に対する演算を処理する前に現在の一般書き込み要請に対する演算処理の結果を格納部２５０に格納する（Ｓ７１８）。その次に、緊急要請管理部２２０は状態バックアップフラグを「１」に設定する（Ｓ７２０）。
【００５８】
一方、ステップＳ７１６を行った結果、状態バックアップフラグの値が「０」でない場合（すなわち、状態バックアップフラグの値が「１」である場合）、格納部２５０には書き込み演算の処理に対する結果が格納されているため、ステップＳ７１８およびステップＳ７２０過程を行わずに緊急読み取り要請に対する演算を処理することができる。
【００５９】
その次に、緊急読み取り要請に対する演算が処理および完了すれば（Ｓ７２２）、プリエンプトフラグ値を「１」に設定して（Ｓ７２４）、中断された一般書き込み要請に対する演算を再び処理する（Ｓ７２６）。
【００６０】
一方、ステップＳ７１０を行った結果、一般読み取り要請に対する演算を行った場合（Ｓ７３０）、演算処理制御装置２００が準備状態になるまで待機した後（Ｓ７３２）、緊急要請管理部２２０は状態バックアップフラグの設定された値を「１」に設定する。この後、ステップＳ７２０〜ステップＳ７２６の過程は同一に行われる。
【００６１】
一方、ステップＳ７１０を行った結果、一般削除要請に対する演算を行った場合（Ｓ７４０）、演算処理制御装置２００が準備状態であるかビジー状態であるかをチェックする。チェックの結果、準備状態でない場合（Ｓ７４２）、すなわちビジー状態の場合、進行中の削除演算の処理を中断させて（Ｓ７４４）、演算処理制御装置２００が準備状態になるまで待機する（Ｓ７４６）。
【００６２】
その次に、演算処理制御装置２００が準備状態になれば、緊急読み取り要請に対する演算を処理する（Ｓ７２２）。この後、ステップＳ７２４およびステップＳ７２６の過程は同一に行われる。
【００６３】
一方、図７では演算処理制御装置２００が準備状態になるまで待機した後、緊急要請に対する演算処理を行うことを説明しているが、演算処理制御装置２００が準備状態になるまで待機せずに直ちに緊急要請に対する演算処理を行うこともできる。
【００６４】
また、本発明では緊急読み取り要請に対する演算処理だけでなく、緊急書き込み要請および緊急削除要請に対する演算処理についても図７の過程と同一に適用することができる。
【００６５】
以上、添付した図面を参照して本発明の実施形態を説明したが、本発明が属する技術分野で通常の知識を有する者であれば、本発明がその技術的思想や必須の特徴を変更せず、他の具体的な形態によって実施することができるということを理解できる。したがって、以上で記述した実施形態はすべての面で例示的なものであり、限定的なものではないことを理解しなければならない。
【図面の簡単な説明】
【００６６】
【図１】一般的なＮＡＮＤフラッシュメモリでの読み取りおよび書き込み演算を行う過程を示す図である。
【図２】本発明の一実施形態に係る不揮発性メモリで演算処理を制御する装置で緊急要請および一般要請に対する演算処理を行う過程を示す図である。
【図３】本発明の一実施形態に係る不揮発性メモリで演算処理を制御する装置を示すブロック図である。
【図４】本発明の一実施形態に係る不揮発性メモリで演算処理を制御する方法のうち、一般読み取り要請に対する演算処理過程を示すフローチャートである。
【図５】本発明の一実施形態に係る不揮発性メモリで演算処理を制御する方法のうち、一般書き込み要請に対する演算処理過程を示すフローチャートである。
【図６】本発明の一実施形態に係る不揮発性メモリで演算処理を制御する方法のうち、一般削除要請に対する演算処理過程を示すフローチャートである。
【図７】本発明の他の実施形態に係る不揮発性メモリで演算処理を制御する方法のうち、緊急読み取り要請に対する演算処理過程を示すフローチャートである。
【符号の説明】
【００６７】
２１０      入力部
２２０      緊急要請管理部
２３０      状態チェック部
２４０      演算処理部
２５０      格納部
２６０      制御部
【図１】
2008123503.tif 000003
【図２】
2008123503.tif 000004
【図３】
2008123503.tif 000005
【図４】
2008123503.tif 000006
【図５】
2008123503.tif 000007
【図６】
2008123503.tif 000008
【図７】
2008123503.tif 000009