(57)【要約】【課題】フラッシュメモリにおけるデータエリアの割当てを変更した際のデータの登録作業を必要最小限にする。【解決手段】コマンドのエリアサイズ指定データに基づいてエリア割当て前のデータを維持するデータエリアの有無を検索する。エリア割当て前のデータを維持するデータエリアが有ると、そのデータエリアのデータを他のメモリに退避させる。次に、データエリアの全データを消去する。しかる後、全データが消去されたデータエリアに他のメモリに退避させたエリア割当て前のデータを維持するデータエリアのデータを書込む。【選択図】      図６
2005316894.tif 000002
【特許請求の範囲】
【請求項１】
複数の用途別にデータエリアを分割可能なフラッシュメモリの各用途毎のエリアサイズを指定する割当て変更情報の入力に応じて、前記データエリアを各用途毎にそれぞれ指定されたエリアサイズに分割するフラッシュメモリのエリア割当方法において、
前記割当て変更情報のエリアサイズ指定データに基づいてエリア割当て前のデータを維持するデータエリアの有無を検索するステップと、
エリア割当て前のデータを維持するデータエリアが有るとそのデータエリアのデータを他のメモリに退避させるステップと、
エリア割当て前のデータを維持するデータエリアのデータを他のメモリに退避させた後、前記データエリアの全データを消去するステップと、
全データが消去された前記データエリアに前記他のメモリに退避させたエリア割当て前のデータを維持するデータエリアのデータを書込むステップと、
を有したことを特徴とするフラッシュメモリのエリア割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリのデータエリアを用途別にそれぞれ指定されたエリアサイズに分割するエリア割当方法に関する。
【背景技術】
【０００２】
バッテリバックアップを必要としない不揮発性半導体メモリの１種であるフラッシュメモリは、電気的にデータを一括またはブロック単位で消去できる特徴があり、かつＥＥＰＲＯＭ等と比較して低コストであることから、近年、様々な電子機器に搭載されつつある。例えば、商品明細ラベル，物流表示ラベル，製品表示ラベル等のラベルを印刷するためのラベルプリンタにおいても、フォントやコマンド等のデータ登録エリアとしてフラッシュメモリが使用されている。
【０００３】
フラッシュメモリには、通常、データエリアとアロケーションエリアとが割当てられている。データエリアは、複数の用途別に分割可能であり、各エリアのサイズはブロック単位で任意に指定することができる。アロケーションエリアには、例えば１ｋバイト単位のブロック毎に対応するデータエリアの使用領域を管理するアドレスが記憶されている（例えば、特許文献１参照）。
【特許文献１】特開平７−２８５８６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来、フラッシュメモリにおけるデータエリアを用途別に分割し直す場合には、各用途毎のエリアサイズを指定する割当て変更コマンドを入力する。すると、フラッシュメモリのコントローラは、フラッシュメモリのデータエリア及びアロケーションエリアの全内容を一括消去した後、割当て変更コマンドに従いデータエリアを用途毎に指定されたサイズで分割するべく、アロケーションエリアに用途別の各エリアにそれぞれ対応したアドレスを書込んでいた。
【０００５】
このため、用途別に分割された複数のデータエリアのうち一部のデータエリアのみの割当てを変更する場合でも、割当て変更不要な他のデータエリアのデータはその割当て変更を要するエリアのデータとともに消去されてしまうので、割当て完了後、同一データを登録し直さなければならないという面倒があった。
【０００６】
本発明はこのような事情に基づいてなされたもので、その目的とするところは、フラッシュメモリにおけるデータエリアの割当てを変更した際のデータの登録作業を必要最小限に低減することができ、フラッシュメモリの使い勝手を向上させることができるフラッシュメモリのエリア割当方法を提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明は、複数の用途別にデータエリアを分割可能なフラッシュメモリの各用途毎のエリアサイズを指定する割当て変更情報、例えば割当て変更コマンドの入力に応じて、データエリアを各用途毎にそれぞれ指定されたエリアサイズに分割するフラッシュメモリのエリア割当て方法であり、先ず、第１のステップとして、割当て変更情報のエリアサイズ指定データに基づいてエリア割当て前のデータを維持するデータエリアの有無を検索する。ここで、エリア割当て前のデータを維持するデータエリアが有ると、第２のステップとして、そのデータエリアのデータを他のメモリに退避させる。次に、エリア割当て前のデータを維持するデータエリアのデータを他のメモリに退避させた後、第３のステップとして、データエリアの全データを消去する。しかる後、第４のステップとして、全データが消去されたデータエリアに他のメモリに退避させたエリア割当て前のデータを維持するデータエリアのデータを書込むことで、エリア割当て前のデータを維持するデータエリアのデータが、割当て変更により消失してしまうのを防ぐようにしたものである。
【発明の効果】
【０００８】
かかる手順を講じた本発明のエリア割当方法によれば、フラッシュメモリにおけるデータエリアの割当てを変更した際のデータの登録作業を必要最小限に低減することができ、フラッシュメモリの使い勝手を向上させることができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施するための最良な形態について、図面を用いて説明する。  
なお、この実施の形態は、フラッシュメモリを搭載してなる電子機器としてラベルプリンタに適用した場合である。
【００１０】
図１はラベルプリンタ１の要部構成を示すブロック図である。ラベルプリンタ１は、ホスト装置２から受信したラベルデータに基づき、所定のラベル用紙に文字，バーコード等を印刷して、商品明細ラベル，物流表示ラベル，製品表示ラベル等のラベルを発行するもので、プリントエンジン部として、ラインサーマルヘッド等のプリントヘッド３、ラベル用紙を搬送するステッピングモータ４、インクリボンを搬送するリボン駆動モータ５等を備えている。
【００１１】
また、ラベルプリンタ１は、上記プリントエンジン部の主制御部としてＣＰＵ（Central Processing Unit）６を搭載している。そして、このＣＰＵ６と前記プリントヘッド３との間にヘッドドライバ７を介挿し、前記ステッピングモータ４との間に第１のモータドライバ８を介挿し、前記リボン駆動モータ５との間に第２のモータドライバ９を介挿している。ヘッドドライバ７は、ＣＰＵ６の指令に基づきプリントヘッド３のオン，オフを制御する。第１のモータドライバ８は、ＣＰＵ６の指令に基づきステッピングモータ４のオン，オフを制御する。第２のモータドライバ９は、ＣＰＵ６の指令に基づきリボン駆動モータ５のオン，オフを制御する。
【００１２】
さらに、ラベルプリンタ１は、ホスト装置２から送られてくるラベルデータやコマンド等を受信するホストインターフェイス１０、ラベルデータのビットマップデータを記憶するイメージバッファ等が形成されるＲＡＭ１１、用紙位置決めセンサ，リボンセンサ等の各種センサ１２からの信号が入力される入力ポート１３、フラッシュメモリ１４を制御するフラッシュメモリコントローラ１５を搭載している。上記ホストインターフェイス１０，ＲＡＭ１１，入力ポート１３及びフラッシュメモリコントローラ１５は、アドレスバス，データバス等のバスラインによりＣＰＵ６と接続している。
【００１３】
図２はフラッシュメモリ１４内に形成されるエリア構成の一例を示す模式図である。当該ラベルプリンタ１は、フラッシュメモリ１４内を、ブートストラップローダが格納されるブートエリア２１と、キャラクタジェネレータが格納されるキャラジェネエリア２２と、その他のプログラムデータが格納されるプログラムエリア２３と、各種データの登録用エリア２４とに予め区分している。
【００１４】
登録用エリア２４は、６４Ｋバイトのブロック単位で複数の用途別に分割可能なデータエリア３０と、このデータエリア３０の使用領域を管理するアドレスが格納されるアロケーションエリア４０とからなる。そして、当該ラベルプリンタ１は、初期導入時において、データエリア３０を、アウトラインフォントのデータが登録されるフォント登録エリア３１と、ビットマップフォントの外字データが登録される外字登録エリア３２と、ホスト装置２からのコマンドを当該ラベルプリンタで認識可能なコマンドに変換するコマンドコンバータデータ（プログラム）が登録されるコマンドコンバータ登録エリア３３と、コマンドを登録するコマンド登録エリア３４の４つの用途のデータ登録エリアに分割している。
【００１５】
なお、本実施の形態では、フラッシュメモリ１４の容量を４Ｍバイトとし、そのうち１０２４Ｋバイトを登録用エリア２４として使用する。また、登録用エリア２４は、１２８Ｋバイトをアロケーションエリア４０に使用する。このため、残りの８９６Ｋバイトをデータエリア３０として使用可能であり、データエリア３０は６４Ｋバイトのブロック単位で分割可能なので、本実施の形態では、１４ブロックを各用途のデータ登録エリアとして分割することとなる。因みに、初期導入時は、フォント登録エリア３１を２ブロックとし、外字登録エリア３２を６ブロックとし、コマンドコンバータ登録エリア３３を３ブロックとし、コマンド登録エリア３４を３ブロックとしている。
【００１６】
さて、今、フラッシュメモリ１４の登録用エリア２４を初期導入時の状態から図３に示す状態に変更する（アロケートする）必要が生じた場合を考える。すなわち、フォント登録エリア３１とコマンド登録エリア３４を確保せず、コマンドコンバータ登録エリア３３をそのまま残して、残りをすべて外字登録エリア３２に割当てる場合である。ここで、登録用エリア２４におけるデータエリア３０の割当て変更は、各用途毎のエリアサイズを指定する割当て変更コマンドによって行う。割当て変更コマンドは、ホスト装置２からラベルプリンタ１に送信される。
【００１７】
割当て変更コマンドの体系の一例を図４（ａ），（ｂ）に示す。同図において、文字列“ａａ”はフォント登録エリア３１のエリアサイズ（ブロック数）を示し、文字列“ｂｂ”は外字登録エリア３２のエリアサイズ（ブロック数）を示し、文字列“ｃｃ”はコマンドコンバータ登録エリア３３のエリアサイズ（ブロック数）を示し、文字列“ｄｄ”はコマンド登録エリア３４のエリアサイズ（ブロック数）を示す。なお、同図（ｂ）の割当て変更コマンドは、コマンド登録エリア３４のエリアサイズを省略した形式であって、データエリア３０の全ブロック数が「１４」であるので、フォント登録エリア３１，外字登録エリア３２及びコマンドコンバータ登録エリア３３をそれぞれ割当てた後の残りのエリアをコマンド登録エリア３４とする。
【００１８】
登録用エリア２４のデータエリア３０を、図３に示す如く割当てる場合、先ず、フォント登録エリア３１とコマンド登録エリア３４は確保しない、すなわちエリアサイズは０ブロックなので、文字列“ａａ”と“ｄｄ”はいずれも“００”となる。また、コマンドコンバータ登録エリア３３はそのまま残す、すなわちエリアサイズは３ブロックなので、文字列“ｃｃ”は“０３”となる。これにより、外字登録エリア３２はその残り、すなわちエリアサイズは１１ブロックなので、文字列“ｂｂ”は“１１”となる。しかし、この文字列“ａａ”，“ｂｂ”，“ｃｃ”，“ｄｄ”＝“００”，“１１”，“０３”，“００”を含む割当て変更コマンドがホスト装置２からラベルプリンタ１に送信された場合には、各エリアの割当て前にフラッシュメモリ１４の登録用エリア２４の内容が一括して消去されてしまうので、コマンドコンバータのデータをコマンドコンバータ登録エリア３３に再度登録し直さなければならないという面倒があった。
【００１９】
そこで本実施の形態では、エリア割当て前のデータを維持するデータエリアを指定する文字列として“ＡＡ”を設定する。すなわち、コマンドコンバータ登録エリア３３をそのまま残す場合には、図５（ａ）または（ｂ）に示すように、コマンドコンバータ登録エリア３３のエリアサイズを示す文字列“ｃｃ”を“ＡＡ”とする。
【００２０】
なお、図５（ｂ）に示す体系の割当て変更コマンドを使用する場合において、コマンド登録エリア３４をそのまま残す場合には、コマンドコンバータ登録エリア３３のエリアサイズを示す文字列“ｃｃ”の次に文字列“ＡＡ”を追加すればよい。また、“ＡＡ”以外の文字列をエリア割当て前のデータを維持するデータエリアを指定する文字列として使用してもよいのは言うまでもないことである。
【００２１】
図６は上記割当て変更コマンドを受信したラベルプリンタ１のフラッシュメモリコントローラ１５が実行するメモリアロケート処理の手順を示す流れ図である。すなわちフラッシュメモリコントローラ１５は、先ず、第１のステップＳＴ１として同コマンド中の文字列により、現在の割当てを維持する特定エリアの有無を検索する。ここで、文字列“ＡＡ”が設定されていた場合には、その文字列“ＡＡ”に対応するデータエリアが現在の割当てを維持する特定エリアなので、次に、第２のステップＳＴ２としてその特定エリアのデータをＲＡＭ１１に一次退避させる。その後、第３のステップＳＴ３として登録用エリア２４内のデータエリア３０及びアロケーションエリア４０の全データを消去する。次に、第４のステップＳＴ４としてＲＡＭ１１に退避させた特定エリアのデータを登録用エリア２４におけるデータエリア３０の先頭ブロックから書込む。そして、第５のステップＳＴ５としてその特定エリアの使用領域を管理するアドレスをアロケーションエリア４０に記憶させる。しかる後、第６のステップＳＴ６として前記割当て変更コマンドの文字列によってエリアサイズが指定された他のデータ登録エリアをデータエリア３０に割当て、その使用領域を管理するアドレスをアロケーションエリア４０に記憶させて、メモリアロケート処理を終了する。
【００２２】
なお、第１のステップＳＴ１にて現在の割当てを維持する特定エリアが存在しない場合には、従来どおり、登録用エリア２４内のデータエリア３０及びアロケーションエリア４０の全データを消去した後、割当て変更コマンドの文字列によってエリアサイズが指定されたデータ登録エリアをデータエリア３０に割当て、その使用領域を管理するアドレスをアロケーションエリア４０に記憶させて、メモリアロケート処理を終了する。
【００２３】
したがって、フラッシュメモリ１４の登録用エリア２４に割当てられた各データ登録エリア（フォント登録エリア３１，外字登録エリア３２，コマンドコンバータ登録エリア３３，コマンド登録エリア３４）の割当てが図２に示す状態において、第５図の（ａ）または（ｂ）に示す割当て変更コマンドがホスト装置２からラベルプリンタ１に送信された場合、フラッシュメモリコントローラ１５は、先ず、当該割当てコマンドの文字列“ｃｃ”＝“ＡＡ”に応じて、コマンドコンバータ登録エリア３３のデータをＲＡＭ１１に退避させる。次に、登録用エリア２４の内容を一括して消去した後、ＲＡＭ１１からコマンドコンバータ登録エリア３３のデータを読み出して、登録用エリア２４におけるデータエリア３０の先頭ブロックから第３ブロックまで書込む。また、このコマンドコンバータ登録エリア３３の使用領域を管理するアドレスをアロケーションエリア４０に記憶させる。次に、当該割当てコマンドの他の文字列“ａａ”＝“００”，“ｂｂ”＝“１１”，（“ｄｄ”＝“００”）に応じて、登録用エリア２４におけるデータエリア３０の第４ブロックから第１４ブロックまでの１１ブロックを外字登録エリア３２と割当て、その使用領域を管理するアドレスをアロケーションエリア４０に記憶させる。かくして、登録用エリア２４は、図３に示す内容にデータ登録エリアの割当てが変更される。この場合、コマンドコンバータ登録エリア３３にコマンドコンバータのデータを登録し直す必要はない。
【００２４】
このように本実施の形態によれば、フラッシュメモリ１４における登録用エリア２４に設定された各データ登録エリア３１〜３４を分割し直す場合において、割当ての変更が不要なデータ登録エリアが存在する場合には、そのデータ登録エリアのデータを他のメモリ（ＲＡＭ１１）に退避させた後に登録用エリア２４を一括消去し、その後、退避させたデータ登録エリアのデータを登録用エリア２４に書込んでから残りのデータ登録エリアを割当てるようにしたので、割当て変更後に割当て変更不要なデータ登録エリアのデータを再度登録し直す面倒がなくなる。したがって、フラッシュメモリ１４における登録用エリア２４の割当てを変更した際のデータの登録作業を必要最小限に低減できるので、フラッシュメモリ１４の使い勝手をさらに向上させることができる。
【００２５】
なお、前記実施の形態は、ラベルプリンタ１に搭載されたフラッシュメモリ１４の登録用エリア２４に割当てられる４つの用途別データ登録エリア３１，３２，３３，３４の割当てを変更する場合について説明したが、本発明がこれに限定されないのは勿論であり、その他の電子機器に搭載されたフラッシュメモリの複数の用途別データエリアを割当し直す場合に適用できるものである。
【００２６】
また、割当て変更情報はホスト装置から送信されるコマンドに限るものではなく、フラッシュメモリを搭載した電子機器が有するキーボード等の入力デバイスを介して入力されるものであってもよい。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施の形態であるラベルプリンタの要部構成を示すブロック図。
【図２】同実施の形態におけるフラッシュメモリのエリア構成の一例を示す模式図。
【図３】同実施の形態においてフラッシュメモリの割当て変更後のエリア構成の一例を示す模式図。
【図４】同実施の形態における割当て変更コマンドのデータ構造の一例を示す模式図。
【図５】同実施の形態における割当て変更コマンドの一具体例を示す模式図。
【図６】同実施の形態におけるフラッシュメモリアロケート処理の手順を示す流れ図。
【符号の説明】
【００２８】
１…ラベルプリンタ、２…ホスト装置、６…ＣＰＵ、１１…ＲＡＭ、１４…フラッシュメモリ、１５…フラッシュメモリコントローラ、２４…登録用エリア、３０…データエリア、３１…フォント登録エリア、３２…外字登録エリア、３３…コマンドコンバータ登録エリア、３４…コマンド登録エリア、４０…アロケーションエリア。
【図１】
2005316894.tif 000003
【図２】
2005316894.tif 000004
【図３】
2005316894.tif 000005
【図４】
2005316894.tif 000006
【図５】
2005316894.tif 000007
【図６】
2005316894.tif 000008