(57)【要約】【課題】書き込み単位が消去単位よりも小さな不揮発性メモリを用いて頻繁にデータの書き換えを行う用途に少ないリソースで対応することができるデータプロセッサを提供する。【解決手段】書き込み単位が消去単位よりも小さな複数の不揮発性メモリブロックにデータを記憶して管理するために、一対の主メモリブロックと、それよりも記憶容量の小さな副メモリブロックとを消去及び書き込みの対象とし、データを更新するときはデータ（Ｄａｔａ＃ｉ）とその属性を示すデータヘッダ（Ｄａｔａ＿ＤＨ＃ｉ）とを副メモリブロックに順次書き込み、副メモリブロックの空き領域がなくなったとき、副メモリブロックのデータと一の主メモリブロックのデータとをデータヘッダを参照して最新の状態にマージし、マージされたデータを他の主メモリブロックに書き込み、当該一の主メモリブロックを消去して、データ保持に用いる主メモリブロックを交互に切換える制御を行う。【選択図】図１
2011215768.tif 000002
【特許請求の範囲】
【請求項１】
消去及び書き込みによって電気的に書き換え可能であって書き込み単位が消去単位よりも小さな不揮発性メモリと、前記不揮発性メモリを制御するプログラム処理部と、を有するデータプロセッサであって、
前記プログラム処理部は、逐次更新されるデータを、前記不揮発性メモリにおける一括消去可能な複数のメモリブロックを用いて記憶データの更新を管理する管理制御を行い、
前記管理制御は、管理すべきデータ容量に応ずる記憶容量を夫々が持つ一対の主メモリブロックと、前記主メモリブロックよりも記憶容量の小さな副メモリブロックと、を消去及び書き込みの対象とし、データの更新が要求される毎に逐次更新されるデータとそのデータの属性を示すデータヘッダとを前記副メモリブロックに順次書き込み、副メモリブロックの空き領域がなくなったとき、副メモリブロックが保有するデータと一の主メモリブロックが保持するデータとを前記データヘッダを参照して最新の状態にマージし、マージされたデータを他の主メモリブロックに書き込み、当該一の主メモリブロックを消去して、データ保持に用いる主メモリブロックを交互に切換える、制御である、データプロセッサ。
【請求項２】
前記主メモリブロックには保持すべきデータ毎に書き込みアドレスが予め決められていて、
前記プログラム処理部は、副メモリブロックに保持されているデータの主メモリブロックにおける書き込みアドレスを当該データに対応するデータヘッダを参照して判別する、請求項１記載のデータプロセッサ。
【請求項３】
前記プログラム処理部は、副メモリブロックが同じ書き込みアドレスのデータを重複して保持しているとき、最新データを主メモリブロックの対応データとのマージ対象とする、請求項１記載のデータプロセッサ。
【請求項４】
前記プログラム処理部は、前記データの更新要求に応答して、データと対応するデータヘッダを相互に異なる領域を基点に近づく方向に書き込み領域をシフトして、前記副メモリブロックに順次書き込む、請求項１記載のデータプロセッサ。
【請求項５】
前記一対の主メモリブロックに一対一対応して前記副メモリブロックを一対有し、
一対の副メモリブロックは対応する主メモリブロックのステータスを示すブロックヘッダを有し、
前記データ処理部はブロックヘッダが保持する当該ステータスを参照してデータの更新要求に応答して用いる主メモリブロック及び副メモリブロックを判別する、請求項１記載のデータプロセッサ。
【請求項６】
前記ブロックヘッダが示す前記ステータスはアクティブ又はブランクであり、
前記アクティブは書き込み対象であることを示し、前記ブランクは消去済みであることを示し、
前記プログラム処理部は、データの更新が要求されたときステータスがアクティブである副メモリブロックを書き込み対象とし、
副メモリブロックの空き領域がなくなったときには、当該副メモリブロックのデータと対応する主メモリブロックのデータとを最新の状態にマージしてブロックヘッダがブランクに対応する主メモリブロックに書き込み、この書き込み動作を完了したとき、当該副メモリブロックと対応する主メモリブロックを消去して当該副メモリブロックにおけるブロックヘッダのステータスをブランクとすると共に他方の副メモリブロックにおけるブロックヘッダのステータスをブランクからアクティブに変更し、アクティブに変更された主メモリブロックに対応する副メモリブロックに前記データの更新要求に応ずる書き込みを行う、請求項５記載のデータプロセッサ。
【請求項７】
前記副メモリブロックは前記一対の主メモリブロックに対して共通化され、
前記副メモリブロックは、主メモリブロック毎にそのステータスを示すブロックヘッダを有し、
前記データ処理部はブロックヘッダが保持する当該ステータスを参照してデータの更新要求に応答して用いる主メモリブロックを判別する、請求項１記載のデータプロセッサ。
【請求項８】
前記夫々のブロックヘッダが示す前記ステータスはアクティブ又はブランクであり、
前記アクティブは記憶データが有効であることを示し、前記ブランクは消去済みであることを示し、
前記プログラム処理部は、データの更新が要求されたとき何れかのブロックヘッダのステータスがアクティブであることを条件に副メモリブロックへのデータの書き込みを行い、
副メモリブロックの空き領域がなくなったとき、当該副メモリブロックのデータとアクティブのステータスに対応する主メモリブロックのデータとを最新の状態にマージして、ブランクのステータスに対応する主メモリブロックに書き込み、この書き込み動作を完了したとき、書き込み元の主メモリブロックと副メモリブロックを消去し、消去された主メモリブロックのステータスをブランクとすると共に書き込み先の主メモリブロックのステータスをアクティブに変更して、副メモリブロックに前記データの更新要求に応ずる書き込みを行う、請求項７記載のデータプロセッサ。
【請求項９】
前記プログラム処理部は、中央処理装置と、前記中央処理装置が実行するプログラムを格納するプログラムメモリとを有し、
前記プログラムメモリは前記管理制御の処理内容を規定する、請求項１記載のデータプロセッサ。
【請求項１０】
１個の半導体基板に形成された請求項９記載のデータプロセッサ。
【請求項１１】
前記中央処理装置及び前記不揮発性メモリと、前記プログラムメモリとは夫々個別に半導体集積回路化されて成る、請求項９記載のデータプロセッサ。
【請求項１２】
消去及び書き込みによって電気的に書き換え可能であって書き込み単位が消去単位よりも小さな不揮発性メモリの一括消去可能な複数のメモリブロックを用いて記憶データの更新を管理するデータの管理制御方法であって、
管理すべきデータ容量に応ずる記憶容量を夫々が持つ一対の主メモリブロックと、前記主メモリブロックよりも記憶容量の小さな副メモリブロックと、を消去及び書き込みの対象とし、
データの更新が要求される毎に逐次更新されるデータとそのデータの属性を示すデータヘッダとを前記副メモリブロックに順次書き込み、副メモリブロックの空き領域がなくなったとき、副メモリブロックが保有するデータと一の主メモリブロックが保持するデータとを前記データヘッダを参照して最新の状態にマージし、マージされたデータを他の主メモリブロックに書き込み、当該一の主メモリブロックを消去して、データ保持に用いる主メモリブロックを交互に切換える、データの管理制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き込み単位が消去単位よりも小さな不揮発性メモリを用いて、逐次変更される同一属性のデータなどを管理する発明に関し、例えば、機器の操作による操作データを操作のたびに逐次蓄える機器制御用のデータプロセッサに適用して有効な技術に関する。
【背景技術】
【０００２】
フラッシュメモリのように書き込み単位が消去単位よりも小さな不揮発性メモリにおいて、最も原始的なデータの書き換えは、消去単位のメモリブロックを退避してから一括消去し、退避したデータを書き換えるべきデータとマージし、マージしたデータを消去後のメモリブロックに書きこむ、と言う操作によって行われる。したがって、消去後に一度書き込みを行ったアドレスに再度書き込みを行う場合にはその都度消去単位全体の消去が必要になり、書き換え保証回数との関係で、頻繁にデータの書き換えを行う用途には対応することが難しい。
【０００３】
特許文献１は、同じアドレスに対する書き換えに対してアドレス管理を行って未使用領域の物理アドレスへの書き込みを行うように制御しようとするものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１８２３８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のごとく、アドレスマッピングを代える制御を書き込みの度に行うのではその制御のための負担が大きくなり、また、アドレス管理のために必要なリソースも増えることが予想される。
【０００６】
本発明の目的は、書き込み単位が消去単位よりも小さな不揮発性メモリを用いて頻繁にデータの書き換えを行う用途に少ないリソースで対応することができるデータプロセッサ、更にはデータの管理制御方法を提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、書き込み単位が消去単位よりも小さな複数の不揮発性メモリブロックにデータを記憶して管理するために、一対の主メモリブロックと、それよりも記憶容量の小さな副メモリブロックとを消去及び書き込みの対象とし、データを更新するときはデータとその属性を示すデータヘッダとを前記副メモリブロックに順次書き込み、副メモリブロックの空き領域がなくなったとき、副メモリブロックのデータと一の主メモリブロックのデータとを前記データヘッダを参照して最新の状態にマージし、マージされたデータを他の主メモリブロックに書き込み、当該一の主メモリブロックを消去して、データ保持に用いる主メモリブロックを交互に切換える制御を行う。
【００１０】
上記データの記憶管理制御によれば、データとその属性をペアとして副メモリブロックに書き込んでいくから、属性が同じデータを何度更新しても書き込みアドレスに対する特別なアドレス管理を要せず、更新順序は書き込み順序によって容易に把握することができる。副メモリブロックが一杯になったときは、副メモリブロックのデータと一の主メモリブロックのデータとを前記データヘッダを参照して最新の状態にマージしたデータを他の主メモリブロックに書き込むから、重ねて更新されたデータも最新のデータだけが他方の主メモリブロックに保持される。したがって、主メモリブロックにはデータの属性に応じた格納アドレスを予め割り当てておくことが可能になり、主メモリブロックはデータとデータヘッダをペアとして保持することを要せず、この点で、データ記憶に必要なメモリ容量に対して、副メモリブロック分のメモリ容量を追加的に使用するだけでよい。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１２】
すなわち、書き込み単位が消去単位よりも小さな不揮発性メモリを用いて頻繁にデータの書き換えを行う用途に少ないリソースで対応することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は本発明の一実施の形態におけるデータの管理制御によるメモリブロックの使用形態を例示する説明図である。
【図２】図２は本発明の一実施の形態に係るデータプロセッサのブロック図である。
【図３】図３は本発明の一実施の形態におけるデータの管理制御の処理フローを例示するフローチャートである。
【図４】図４は管理制御の進行に伴うステータスの遷移を例示する遷移図である。
【図５】図５は比較例に係るデータの管理制御によるメモリブロックの使用形態を例示する説明図である。
【発明を実施するための形態】
【００１４】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕＜書き込み単位が消去より小さなメモリブロックに対するデータ管理＞
本発明の代表的な実施の形態に係るデータプロセッサ（１）は、消去及び書き込みによって電気的に書き換え可能であって書き込み単位が消去単位よりも小さな不揮発性メモリ（１１）と、前記不揮発性メモリを制御するプログラム処理部（２，５等）とを有する。前記プログラム処理部は、前記不揮発性メモリにおける一括消去可能な複数のメモリブロックを用いて記憶データの更新を管理する管理制御を行う。前記管理制御は、管理すべきデータ容量に応ずる記憶容量を夫々が持つ一対の主メモリブロック（ＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂ）と、前記主メモリブロックよりも記憶容量の小さな副メモリブロックと、を消去及び書き込みの対象とし、データの更新が要求される毎に逐次更新されるデータ（Ｄａｔａ＃ｉ）とそのデータの属性を示すデータヘッダ（Ｄａｔａ＿ＤＨ＃ｉ）とを前記副メモリブロックに順次書き込み、副メモリブロックの空き領域がなくなったとき、副メモリブロックが保有するデータと一の主メモリブロックが保持するデータとを前記データヘッダを参照して最新の状態にマージし、マージされたデータを他の主メモリブロックに書き込み当該一の主メモリブロックを消去して、データ保持に用いる主メモリブロックを交互に切換える、制御である。
【００１６】
上記データプロセッサによるデータの記憶管理制御によれば、データとその属性をペアとして副メモリブロックに書き込んでいくから、属性が同じデータを何度更新しても書き込みアドレスに対する特別なアドレス管理を要せず、更新順序は書き込み順序によって容易に把握することができる。副メモリブロックが一杯になったときは、副メモリブロックのデータと一の主メモリブロックのデータとを前記データヘッダを参照して最新の状態にマージしたデータを他の主メモリブロックに書き込むから、重ねて更新されたデータも最新のデータだけを他方の主メモリブロックに保持することができる。したがって、主メモリブロックにはデータの属性に応じた格納アドレスを予め割り当てておくことが可能になり、主メモリブロックはデータとその属性を示すデータヘッダとをペアとして保持することを要せず、この点で、データ記憶に必要なメモリ容量に対して、副メモリブロック分のメモリ容量を追加的に使用するだけでよい。仮に、メモリブロックを交互に切換えながらデータとその属性を常にペアとして保持する構成の場合には、副メモリブロックを必用としないが、夫々のメモリブロックは、全てのデータ記憶に必要なメモリ容量に対して、全てのデータと夫々ペアを成すデータヘッダ分の余裕容量が必要になり、また、同じ属性のデータが何回も更新されることを想定して更に余裕のあるメモリ容量を確保しなければならず、結果として大きな記憶容量のリソースが必要になる。したがって、上記データプロセッサによれば、書き込み単位が消去単位よりも小さな不揮発性メモリを用いて頻繁にデータの書き換えを行う用途に少ないリソースで対応することができる。
【００１７】
〔２〕＜書き込み先アドレスの判別＞
項１のデータプロセッサにおいて、前記主メモリブロックには保持すべきデータ毎に書き込みアドレスが予め決められていて、前記プログラム処理部は、副メモリブロックに保持されているデータの主メモリブロックにおける書き込みアドレスを当該データに対応するデータヘッダを参照して判別する。
【００１８】
マージされたデータを主メモリブロックに書き込むための特別なアドレス管理をまったく必要としない。データの属性毎に主メモリブロックへの書き込みアドレスを予め決め手おくだけでよく、きわめて簡単である。
【００１９】
〔３〕＜最新データの判別＞
項１又は２のデータプロセッサにおいて、前記プログラム処理部は、副メモリブロックが同じ書き込みアドレスのデータを重複して保持しているとき、最新データを主メモリブロックの対応データとのマージ対象とする。
【００２０】
〔４〕＜副メモリブロックへの書き込み形態＞
項１乃至３の何れかのデータプロセッサにおいて、前記プログラム処理部は、前記データの更新要求に応答して、データと対応するデータヘッダを相互に異なる領域を基点に近づく方向に書き込み領域をシフトして、前記副メモリブロックに順次書き込む。
【００２１】
データと属性のハンドリングが容易になる。
【００２２】
〔５〕＜一対の副メモリブロック＞
項１乃至４の何れかのデータプロセッサにおいて、前記一対の主メモリブロックに一対一対応して前記副メモリブロックを一対有する（ＳＭＢＬＫ＿Ａ，ＳＭＢＬＫ＿Ｂ）。一対の副メモリブロックは対応する主メモリブロックのステータスを示すブロックヘッダを有する。前記データ処理部はブロックヘッダが保持する当該ステータスを参照してデータの更新要求に応答して用いる主メモリブロック及び副メモリブロックを判別する。
【００２３】
主メモリブロックと副メモリブロックとをペアとし、夫々のペアに対して相互に同じ制御手順を採用することが容易になり、制御手順の簡潔性に資することができる。
【００２４】
〔６〕＜ステータスの参照と操作＞
項５のデータプロセッサにおいて、前記ブロックヘッダが示す前記ステータスはアクティブ（ＡＣＴ）又はブランク（ＢＬＮＫ）であり、前記アクティブは書き込み対象であることを示し、前記ブランクは消去済みであることを示す。前記プログラム処理部は、データの更新が要求されたときステータスがアクティブである副メモリブロックを書き込み対象とする。副メモリブロックの空き領域がなくなったときには当該副メモリブロックのデータと対応する主メモリブロックのデータとを最新の状態にマージしてブロックヘッダがブランクに対応する主メモリブロックに書き込み、この書き込み動作を完了したとき、当該副メモリブロックと対応する主メモリブロックを消去して当該副メモリブロックにおけるブロックヘッダのステータスをブランクとすると共に他方の副メモリブロックにおけるブロックヘッダのステータスをブランクからアクティブに変更し、アクティブに変更された主メモリブロックに対応する副メモリブロックに前記データの更新要求に応ずる書き込みを行う。
【００２５】
主メモリブロックと副メモリブロックとをペアとし、夫々のペアに対して相互に同じ制御手順を採用することができる。
【００２６】
〔７〕＜共通化された副メモリブロック＞
項１乃至４の何れかのデータプロセッサにおいて、前記副メモリブロックは前記一対の主メモリブロックに対して共通化される。前記副メモリブロックは、主メモリブロック毎にそのステータスを示すブロックヘッダを有する。前記データ処理部はブロックヘッダが保持する当該ステータスを参照してデータの更新要求に応答して用いる主メモリブロックを判別する。
【００２７】
副メモリブロックに対する制御は項５に比べて多少複雑になることが想定されるが、副メモリブロックに割り当てるメモリ容量を半減してデータの管理制御機能を実現することができる。
【００２８】
〔８〕＜ステータスの参照と操作＞
項７のデータプロセッサにおいて、前記夫々のブロックヘッダが示す前記ステータスはアクティブ又はブランクであり、前記アクティブは記憶データが有効であることを示し、前記ブランクは消去済みであることを示す。前記プログラム処理部は、データの更新が要求されたとき何れかのブロックヘッダのステータスがアクティブであることを条件に副メモリブロックへのデータに書き込みを行う。副メモリブロックの空き領域がなくなったとき、当該副メモリブロックのデータとアクティブのステータスに対応する主メモリブロックのデータとを最新の状態にマージして、ブランクのステータスに対応する主メモリブロックに書き込み、この書き込み動作を完了したとき、書き込み元の主メモリブロックと副メモリブロックを消去し、消去された主メモリブロックのステータスをブランクとすると共に書き込み先の主メモリブロックのステータスをアクティブに変更して、副メモリブロックに前記データの更新要求に応ずる書き込みを行う。
【００２９】
副メモリブロックに割り当てるメモリ容量を半減してデータの管理制御機能を実現することができる。
【００３０】
〔９〕＜プログラム処理部＞
項１乃至８の何れかのデータプロセッサにおいて、前記プログラム処理部は、中央処理装置と、前記中央処理装置が実行するプログラムを格納するプログラムメモリとを有し、前記プログラムメモリは前記管理制御の処理内容を規定する。
【００３１】
〔１０〕
項９のデータプロセッサは１個の半導体基板に形成される。
【００３２】
〔１１〕
項９のデータプロセッサにおいて、前記中央処理装置及び前記不揮発性メモリと、前記プログラムメモリとは夫々個別に半導体集積回路化されて成る。
【００３３】
〔１２〕＜書き込み単位が消去より小さなメモリブロックに対するデータ管理＞
本発明の別の実施の形態に係るデータの管理制御方法は、消去及び書き込みによって電気的に書き換え可能であって書き込み単位が消去単位よりも小さな不揮発性メモリの一括消去可能な複数のメモリブロックを用いて記憶データの更新を管理する方法であり、管理すべきデータ容量に応ずる記憶容量を夫々が持つ一対の主メモリブロックと、前記主メモリブロックよりも記憶容量の小さな副メモリブロックと、を消去及び書き込みの対象とし、データの更新が要求される毎に逐次更新されるデータとそのデータの属性を示すデータヘッダとを前記副メモリブロックに順次書き込み、副メモリブロックの空き領域がなくなったとき、副メモリブロックが保有するデータと一の主メモリブロックが保持するデータとを前記データヘッダを参照して最新の状態にマージし、マージされたデータを他の主メモリブロックに書き込み当該一の主メモリブロックを消去して、データ保持に用いる主メモリブロックを交互に切換える。
【００３４】
項１と同様に、主メモリブロックはデータとその属性を示すデータヘッダとをペアとして保持することを要せず、この点で、データ記憶に必要なメモリ容量に対して、副メモリブロック分のメモリ容量を追加的に使用するだけでよい。したがって、書き込み単位が消去単位よりも小さな不揮発性メモリを用いて頻繁にデータの書き換えを行う用途に少ないリソースで対応することができる。
【００３５】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３６】
《データプロセッサ》
図２には本発明の一実施の形態に係るデータプロセッサが例示される。同図に示されるデータプロセッサ１は、特に制限されないが、相補型ＭＯＳ集積回路製造技術によって単結晶シリコンのような１個の半導体基板に形成される。
【００３７】
データプロセッサ１は、特に制限されないが、命令を実行する中央処理装置（ＣＰＵ）２、ＣＰＵ２が最近利用したデータや命令を一次的に保持するキャッシュメモリ（ＣＡＣＨＥ）４、特定のデータ処理を負担するアクセラレータ（ＡＣＣＬ）３、ＣＰＵ２のワーク領域などに用いられるＲＡＭ５、及びそれらが接続される内部バス６を有する。内部バス６はバスステートコントローラ（ＢＳC）９を介して周辺バス１０にインタフェースされる。周辺バス１０には、割込み要求に応答して割込み信号をＣＰＵ２に出力するための制御を行う割込みコントローラ８、データプロセッサ内部の同期クロック信号を生成するクロックパルスジェネレータ（ＣＰＧ）７、タイマ（ＴＭＲ）１２、フラッシュメモリ（ＦＬＳＨ）１１、及びデータプロセッサ1の外部にインタフェースされる入出力ポート回路（ＰＯＲＴ）１３が接続される。
【００３８】
前記フラッシュメモリ１１は、消去及び書き込みによって電気的に書き換え可能であって書き込み単位が消去単位よりも小さな不揮発性メモリの一例とされる。例えば、ワード線単位で消去が可能にされる場合に、バイト単位の書き込みを行うとき、書き込み対象バイトに対してはバイト単位でビット線毎に書き込み電圧の印加の可否を制御し、書き込み非対象バイトの各ビット線には書き込み抑止の電圧を印加する構成を採用すればよい。このフラッシュメモリ１１は、例えば消去単位を４キロバイト（ＫＢ）や１ＫＢのような単位とし、書き込みをバイトのような単位とする不揮発性メモリである。フラッシュメモリ１１は消去単位を比較的大きな４ＫＢのようなサイズとするメモリブロックと、消去単位を比較的小さな１ＫＢのようなサイズとするとするメモリブロックとの双方を有している。これらの点で、フラッシュメモリ１１はバイト単位の消去及び書き込みが可能にされるＥＥＰＲＯＭとは異なる。
【００３９】
フラッシュメモリ１１はデータやプログラムの格納に利用され、ここに格納されたプログラムは例えばパワーオンリセットによってＲＡＭ５に転送され、ＣＰＵ２はＲＡＭ５に転送されたプログラムを逐次実行する。或いは、ＣＰＵ２が実行するプログラムをパワーオンリセット時に入出力ポート回路１３からＲＡＭ５にダウンロードし、ダウンロードしたプログラムをＣＰＵ２が実行する。
【００４０】
ＣＰＵ２はそれがフェッチするプログラムを有するメモリと一緒になってプログラム処理部を構成し、フラッシュメモリ１１やその他の周辺回路を制御して所要のデータ処理を行う。
【００４１】
ＣＰＵ２は、そのプログラム処理の一つとして、フラッシュメモリ１１が保持する制御データの逐次更新を管理する制御を行う。特に制限されないが、データ管理制御の対象とされるデータは、データプロセッサが制御対象とする回路や機器で行われた操作に応ずる制御量などとされる。例えばリモコン操作によって逐次更新される制御量を記憶するために管理制御を行う。以下、そのデータの管理制御について詳述する。
【００４２】
《データの管理制御》
図１にはデータの管理制御におけるメモリブロックの使用形態が例示される。データの管理制御には、管理すべきデータ容量に応ずる記憶容量を夫々が持つ一対の主メモリブロックＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂと、前記主メモリブロックＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂよりも記憶容量の小さな副メモリブロックＳＭＢＬＫ＿Ａ，ＳＭＢＬＫ＿Ｂと、を消去及び書き込みの対象として用いる。主メモリブロックＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂ及び副メモリブロックＳＭＢＬＫ＿Ａ，ＳＭＢＬＫ＿Ｂの夫々は一括消去の単位とされる。管理すべきデータ容量が例えば４ＫＢであれば、主メモリブロックＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂは少なくともその記憶容量を持てばよい。ここでは、主メモリブロックＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂの夫々のサイズを４ＫＢ、副メモリブロックＳＭＢＬＫ＿Ａ，ＳＭＢＬＫ＿Ｂの夫々のサイズを１ＫＢとする。
【００４３】
特に制限されないが、主メモリブロックＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿ＢにはデータＤａｔａ＃０〜Ｄａｔａ＃１２７を格納するためのアドレスが予めマッピングされ、順次データＤａｔａ＃０〜Ｄａｔａ＃１２７を格納する領域が予定されている。
【００４４】
副メモリブロックＳＭＢＬＫ＿Ａ，ＳＭＢＬＫ＿Ｂは、その先頭にブロックヘッダＢＬＫ＿ＨＤＡ、ＢＬＫ＿ＨＤＢを有し、データＤａｔａ＃ｉ（ｉ＝１〜１２７）をそのデータヘッダＤａｔａ＿ＨＤ＃ｉと対を成して格納する。データＤａｔａ＃ｉと対応するデータヘッダＤａｔａ＿ＨＤ＃ｉは、相互に異なる領域を基点に近づく方向に書き込み領域をシフトして、副メモリブロックに順次書き込まれる。図２の例に従えば、データＤａｔａ＃ｉは矢印Ｙ２方向に順次書き込まれ、データヘッダＤａｔａ＿ＨＤ＃ｉは矢印Ｙ１方向に順次書き込まれる。図２の例では矢印Ｘ１，Ｘ２，Ｘ３Ｘ４で指し示すデータとデータヘッダがペアを成している。データＤａｔａ＃ｉとデータヘッダＤａｔａ＿ＤＨ＃ｉとが隣接するところまで書き込みが行われたとき、図２に従えば、データＤａｔａ＃０とデータヘッダＤａｔａ＿ＤＨ＃０が隣り合って書き込まれたところで、当該副メモリブロックの空き領域が無くなったと判別される。
【００４５】
データヘッダＤａｔａ＿ＨＤ＃ｉは対応するデータがデータＤａｔａ＃ｉであることを示す複数ビットの情報を少なくとも含む。この例ではデータＤａｔａ＃０〜Ｄａｔａ＃１２７を識別するための最大２５６通りのデータを識別可能な８ビットの識別コードとされる。
【００４６】
ブロックヘッダＢＬＫ＿ＨＤＡ，ＢＬＫ＿ＨＤＢは対応する主メモリブロックＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂのステータスを示す。ブロックヘッダＢＬＫ＿ＨＤＡ，ＢＬＫ＿ＨＤＢが示すステータスは、アクティブＡＣＴ又はブランクＢＬＮＫであり、前記アクティブＡＣＴは書き込み対象であることを示し、前記ブランクＢＬＮＫは消去済みであることを示す。
【００４７】
次に、上記主メモリブロックＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂ及び副メモリブロックＳＭＢＬＫ＿Ａ，ＳＭＢＬＫ＿Ｂを用いたデータの管理制御方法について説明する。図３には管理制御の処理フローが例示され、図４には管理制御の進行に伴うステータスの遷移が例示される。
【００４８】
例えば主メモリブロックＭＭＢＬ＿ＡがアクティブＡＣＴにされ、その記憶領域には図１に例示されるように先頭からデータＤａｔａ＃０〜Ｄａｔａ＃１２７が格納され、対応する副メモリブロックＳＭＢＬＫ＿Ａは消去された後にブロックヘッダＢＬＫ＿ＨＤＡにはアクティブＡＣＴのステータスデータが書き込まれている（図４の時刻Ｔ１）。他方の主メモリブロックＭＭＢＬ＿Ａは全体が消去され、対応する副メモリブロックＳＭＢＬＫ＿Ｂは消去された後にブロックヘッダＢＬＫ＿ＨＤＢにブランクＢＬＮＫのステータスデータが書き込まれている（図４の時刻Ｔ１）。この状態で、例えば図示を省略する機器の操作によってデータの更新が要求されるのを待ち(図３のＳ１)、要求されると、ブロックヘッダＢＬＫ＿ＨＤＡ，ＢＬＫ＿ＨＤＢを参照してアクティブＡＣＴの副メモリブロックＳＭＢＬＫ＿Ａに空きがあるかを判別する(図３のＳ２)。空きがあれば、データの更新要求に従って、副メモリブロックＳＭＢＬＫ＿Ａにおいてその直前に書き込みが行われたデータヘッダの領域の次に対応するデータヘッダＤａｔａ＿H＃ｉを書き込み、直前に書き込みが行われたデータ領域の次にデータＤａｔａ＃１を書き込む（図３のＳ６）。例えば図１の例に従えば、Ｘ２で指標されるデータＤａｔａ＃３とデータヘッダＤａｔａ＿ＨＤ＃３を書き込む。
【００４９】
図３のステップＳ２において空き領域がない場合には、当該副メモリブロックＳＭＢＬＫ＿Ａのデータと対応する主メモリブロックＭＭＢＬＫ＿Ａのデータとを最新の状態にマージしてブロックヘッダがブランクに対応する主メモリブロックＭＭＢＬＫ＿Ｂに書き込む（図３のＳ３、図４の時刻Ｔ２）。
【００５０】
このマージして書き込む処理は、例えば、主メモリブロックＭＭＢＬＫ＿Ａが記憶するデータを図示を省略するレジスタに転送し、更に副メモリブロックＳＭＢＬＫ＿Ａから新しい順にデータＤａｔａ＃ｉと対応するデータヘッダＤａｔａ＿ＨＤ＃ｉを読み出して当該データにコードを用いて対応するデータＤａｔａ＃ｉをレジスタの対応データに上書きする。一旦上書きを行ったデータと同じデータヘッダが出現してもそのデータは最新のデータに既にマージ済みであるから無視する。この操作を、副メモリブロックＳＭＢＬＫ＿Ａの全てのデータに対して行う。このマージ処理による書き込まれた例を図１に従って説明すると、Ｘ１で示されるデータＤａｔａ＃０はデータヘッダＤａｔａ＿ＤＨ＃０の値に従ってＭＭＢＬＫ＿Ｂに書き込まれ、Ｘ２で示されるデータＤａｔａ＃３はデータヘッダＤａｔａ＿ＤＨ＃３の値に従ってＭＭＢＬＫ＿Ｂに書き込まれ、Ｘ３で示されるデータＤａｔａ＃０は既にマージ処理されて書き込み済みであるから無視され、Ｘ４で示されるデータＤａｔａ＃３は既にマージ処理されて書き込み済みであるから無視される。データＤａｔａ＃２のように副メモリブロックＳＭＢＬＫ＿Ａに対応するデータがない場合には主メモリブロックＭＭＢＬＫ＿Ａが保持しているデータＤａｔａ＃２が他方の主メモリブロックＭＭＢＬＫ＿Ｂに書き込まれる。
【００５１】
最新の状態にマージされたデータの書き込み動作を完了したとき、書き込みデータ元である当該副メモリブロックＳＭＢＬＫ＿Ａと対応する主メモリブロックＭＭＢＬＫ＿Ａを消去（図４の時刻Ｔ３）して当該副メモリブロックにおけるブロックヘッダのステータスをブランクＢＬＮＫとすると共に（図３のＳ４、図４の時刻Ｔ４）、他方の副メモリブロックＳＭＢＬＫ＿ＢにおけるブロックヘッダのステータスをブランクＢＬＮＫからアクティブＡＣＴに変更し（図３のＳ５、図４の時刻Ｔ４）、アクティブに変更された主メモリブロックに対応する副メモリブロックに前記データの更新要求に応ずる書き込みを行う(図３のＳ６)。これ以降は、図４の時刻Ｔ４〜Ｔ７に例示されるように、メモリブロックＭＭＢＬＫ＿Ａ、ＳＭＢＬＫ＿ＡとメモリブロックＭＭＢＬＫ＿Ｂ、ＳＭＢＬＫ＿Ｂと関係が逆転する。
【００５２】
上記データプロセッサ１によるデータの記憶管理制御によれば、データＤａｔａ＃ｉとその属性であるデータヘッダＤａｔａ＿ＤＨ＃ｉをペアとして副メモリブロックＳＭＢＬＫ＿Ａ又はＳＭＢＬＫ＿Ｂに書き込んでいくから、属性の同じデータを何度更新しても書き込みアドレスに対する特別なアドレス管理を必要とせず、データの更新順序は副メモリブロックへの書き込み順序によって容易に把握することができる。副メモリブロックＳＭＢＬＫ＿Ａ（ＳＭＢＬＫ＿Ｂ）が一杯になったときは、副メモリブロックＳＭＢＬＫ＿Ａ（ＳＭＢＬＫ＿Ｂ）のデータと一の主メモリブロックＭＭＢＬＫ＿Ａ（ＭＭＢＬＫＪ＿Ｂ）のデータとを前記データヘッダを参照して最新の状態にマージしたデータを他の主メモリブロックＭＭＢＬＫ＿Ｂ（ＭＭＢＬＫＪ＿Ａ）に書き込むから、重ねて更新されたデータも最新のデータだけを他方の主メモリブロックに保持することができる。したがって、主メモリブロックにはデータの属性に応じた格納アドレスを予め割り当てておくことが可能になり、主メモリブロックはデータとその属性を示すデータヘッダとをペアとして保持することを要しない。この点で、データ記憶に必要なメモリ容量に対して、副メモリブロック分のメモリ容量を追加的に使用するだけでよい。仮に、メモリブロックを交互に切換えながらデータとその属性を常にペアとして保持する構成の場合には、副メモリブロックを必用としないが、夫々のメモリブロックは、全てのデータ記憶に必要なメモリ容量に対して、全てのデータと夫々ペアを成すデータヘッダ分の余裕容量が必要になり、また、同じ属性のデータが何回も更新されることを想定して更に余裕のあるメモリ容量を確保しなければならず、結果として大きな記憶容量のリソースが必要になる。例えば図５に示されるようにメモリブロックＭＢＬＫ＿ＡとＭＢＬＫ＿Ｂを用意し、上記サブメモリブロックＳＭＢＬＫ＿Ａ，ＳＭＢＬＫ＿Ｂで説明したと同様の手法で順次データＤａｔａ＃ｉとデータヘッダＤａｔａ＿ＤＨ＃ｉをペアで格納する場合を想定すると、一つのメモリブロックに空き領域が無くなると、データヘッダＤａｔａ＿ＤＨ＃ｉを用いて同じ属性のデータを最新のデータにマージして他方のメモリブロックにデータコピーを行う。この場合、例えば、必要なデータＤａｔａ＃ｉの全容量を４ＫＢと、データヘッダＤａｔａ＿ＤＨ＃ｉの全容量を１ＫＢと摺ると、同じ属性のデータが何回も更新されることを想定して更に余裕のあるメモリ容量例えば１ＫＢ程度を確保しなければならず、合わせて、１２ＫＢのメモリ要領が必要になる。これに対して上記実施の形態の場合には１０ＫＢのメモリ容量で済む。データＤａｔａの全体量が多くなればなるほど、１個のデータヘッダのビット数が増える結果、上記実施の形態に比べて必要とされる記憶容量の増加率が大きくなる。したがって、上記データプロセッサ１によるデータの管理制御方法によれば、書き込み単位が消去単位よりも小さな不揮発性メモリを用いて頻繁にデータの書き換えを行う用途に少ないリソースで対応することができる。
【００５３】
上記実施の形態では主メモリブロックと副メモリブロックのペアを一対用いてデータの記憶管理を行うようにしたが、副メモリブロックを一対の主メモリブロックに共通化して用いることによってデータの記憶管理を行うようにしてもよい。特に図示はしないが、前記副メモリブロックは前記一対の主メモリブロックに対して共通化され、副メモリブロックは、主メモリブロック毎にそのステータスを示すブロックヘッダを有する。前記データ処理部はブロックヘッダが保持する当該ステータスを参照してデータの更新要求に応答して用いる主メモリブロックを判別する。例えば、前記夫々のブロックヘッダが示す前記ステータスはアクティブ又はブランクであり、前記アクティブは記憶データが有効であることを示し、前記ブランクは消去済みであることを示す。ＣＰＵとその動作プログラムによって構成されるプログラム処理部は、データの更新が要求されたとき何れかのブロックヘッダのステータスがアクティブであることを条件に副メモリブロックへのデータに書き込みを行う。副メモリブロックの空き領域がなくなったとき、当該副メモリブロックのデータとアクティブのステータスに対応する主メモリブロックのデータとを最新の状態にマージして、ブランクのステータスに対応する主メモリブロックに書き込み、この書き込み動作を完了したとき、書き込み元の主メモリブロックと副メモリブロックを消去し、消去された主メモリブロックのステータスをブランクとすると共に書き込み先の主メモリブロックのステータスをアクティブに変更して、副メモリブロックに前記データの更新要求に応ずる書き込みを行う。
【００５４】
この構成によっても、上記同様に、書き込み単位が消去単位よりも小さな不揮発性メモリを用いて頻繁にデータの書き換えを行う用途に少ないリソースで対応することができる。先に説明したデータプロセッサ１による記憶管理制御に比べて必要なメモリ容量を更に低減することができる。
【００５５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００５６】
例えばデータプロセッサは１個の半導体基板に形成されるものに限定されず、前記中央処理装置及び前記不揮発性メモリと、前記プログラムメモリとを夫々個別に半導体集積回路化してマルチチップでデータプロセッサを構成することも可能である。また、主メモリブロックは必ずしも夫々１個の一括消去単位のメモリブロックであることに限定されず、例えば、１ＫＢの消去単位ブロックを４個用いて４ＫＢのメモリブロックとして用いてもよい。副メモリブロックに付いても同様である。
【符号の説明】
【００５７】
１  データプロセッサ（ＤＰＵ）
２  中央処理装置（ＣＰＵ）
４  キャッシュメモリ（ＣＡＣＨＥ）
３  アクセラレータ（ＡＣＣＬ）
５  ＲＡＭ
６  内部バス
９  バスステートコントローラ（ＢＳＸ）
１０  周辺バス
８  割込みコントローラ
７  クロックパルスジェネレータ（ＣＰＧ）
１２  タイマ（ＴＭＲ）
１１  フラッシュメモリ（ＦＬＳＨ）
１３  入出力ポート回路（ＰＯＲＴ）
ＭＭＢＬＫ＿Ａ，ＭＭＢＬＫ＿Ｂ  主メモリブロック
ＳＭＢＬＫ＿Ａ，ＳＭＢＬＫ＿Ｂ  副メモリブロック
Ｄａｔａ＃０〜Ｄａｔａ＃１２７（Ｄａｔａ＃ｉ）  データ
ＢＬＫ＿ＨＤＡ、ＢＬＫ＿ＨＤＢ  ブロックヘッダ
Ｄａｔａ＿ＨＤ＃ｉ  データヘッダ
ＡＣＴ  アクティブ
ＢＬＮＫ  ブランク
【図１】
2011215768.tif 000003
【図２】
2011215768.tif 000004
【図３】
2011215768.tif 000005
【図４】
2011215768.tif 000006
【図５】
2011215768.tif 000007