(57)【特許請求の範囲】
【請求項１】
マイクロコントローラにより任意のデータを、メインデータ長のメインデータと、メインデータ長より短いサブデータ長のサブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、データ保存部の対応したアドレスに割り当てると共に、
前記マイクロコントローラにより前記メインデータ長と、前記メインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、前記サブデータ長と、前記サブデータのアドレスで規定されるサブデータ領域のデータフォーマットを、前記データ保存部の論理フォーマットとして設定し、
かつ、
前記マイクロコントローラにより任意のタイミングで、前記データ保存部に保存されている全てのデータの長さの平均値が予め定めた閾値より小さいかを判定し、小さい場合は、前記サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、前記メインデータデータのアドレスを増加させるよう、前記メインデータ領域に割り当てる論理フォーマットに変換することを特徴とする論理フォーマット変換方法。
【請求項２】
マイクロコントローラにより任意のデータを、メインデータ長のメインデータと、メインデータ長より短いサブデータ長のサブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、データ保存部の対応したアドレスに割り当てると共に、
前記マイクロコントローラにより前記メインデータ長と、前記メインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、前記サブデータ長と、前記サブデータのアドレスで規定されるサブデータ領域のデータフォーマットを、前記データ保存部の論理フォーマットとして設定し、
かつ、
前記マイクロコントローラにより任意のタイミングで、前記データ保存部に保存されている全てのデータの長さの平均値が予め定めた閾値より大きいかを判定し、大きい場合は、前記サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、前記メインデータ長を長くするよう前記メインデータ領域に割り当てる論理フォーマットとすることを特徴とする論理フォーマット変換方法。
【請求項３】
請求項１において、
前記マイクロコントローラは、データ保存部に保存されている全てのデータの長さの平均値が、閾値より大きかった場合は、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、前記メインデータ長を長くするよう前記メインデータ領域に割り当てることを特徴とする論理フォーマット変換方法。
【請求項４】
データ保存部とマイクロコントローラからなるデータ保存媒体であって、
前記データ保存部は、前記マイクロコントローラによりメインデータ長と、当該メインデータ長のメインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、前記メインデータ長より短いサブデータ長と、当該サブデータ長のサブデータのアドレスで規定されるサブデータ領域のデータフォーマットを、その論理フォーマットとして設定され、
前記マイクロコントローラは、外部装置より任意のデータの保存要求を受けた場合は、当該データを、前記メインデータと、前記サブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、前記データ保存部の対応したアドレスに割り当てると共に、
任意のタイミングで、前記データ保存部に格納されている全てのデータの長さの平均値が予め定めた閾値より小さいかを判定し、小さい場合は、前記データ保存部の論理フォーマットを、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、前記メインデータのアドレスを増加させるよう前記メインデータ領域に割り当てた論理フォーマットに変更することを特徴とするデータ保存媒体。
【請求項５】
データ保存部とマイクロコントローラからなるデータ保存媒体であって、
前記データ保存部は、前記マイクロコントローラによりメインデータ長と、当該メインデータ長のメインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、前記メインデータ長より短いサブデータ長と、当該サブデータ長のサブデータのアドレスで規定されるサブデータ領域のデータフォーマットを、その論理フォーマットとして設定され、
前記マイクロコントローラは、外部装置より任意のデータの保存要求を受けた場合は、当該データを、前記メインデータと、前記サブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、前記データ保存部の対応したアドレスに割り当てると共に、
任意のタイミングで、前記データ保存部に格納されている全てのデータの長さの平均値が予め定めた閾値より大きいかを判定し、大きい場合は、前記データ保存部に対して、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、前記メインデータ長を長くするよう前記メインデータ領域に割り当てた論理フォーマットに変更することを特徴とするデータ保存媒体。
【請求項６】
請求項４において、
前記マイクロコントローラは、データ保存部に格納されている全てのデータの長さの平均値が予め定めた閾値より小さいかを判定した結果、前記平均値が前記閾値より大きかった場合は、前記データ保存部に対して、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、前記メインデータ長を長くするよう前記メインデータ領域に割り当てた論理フォーマットに変更することを特徴とするデータ保存媒体。
【請求項７】
請求項４〜６のいずれかにおいて、
前記マイクロコントローラは、外部装置より論理フォーマットの変更の指示を受けた場合に、論理フォーマットの変更を行うよう構成されていることを特徴とするデータ保存媒体。
【請求項８】
請求項４〜６のいずれかにおいて、
前記マイクロコントローラは、自身の判断により論理フォーマットの変更を行うよう構成されていることを特徴とするデータ保存媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理フォーマットを可変にすることで、メモリの記憶容量を無駄にすることなく、可変長データの保存を行うことのできる論理フォーマット変換方法に関する。
【０００２】
【従来の技術】
フラッシュメモリ等の半導体メモリを用いて構成された半導体ディスク装置は、上位装置から見て磁気ディスク装置等と同様の制御が可能な構成となっている。従来、このような半導体メモリをデータ保存部として用いた半導体ディスク装置では、その論理フォーマットは固定となっていた。
【０００３】
図６は、従来の半導体ディスク装置の説明図である。
図において、１００はデータ保存媒体、２００は外部装置を示している。データ保存媒体１００は、例えばフラッシュメモリを用いたデータ保存部１０１と、外部装置２００とのデータのやり取りを行い、データ保存部１０１のデータアクセスを制御するためのマイクロコントローラ１０２を備えている。また、外部装置２００は、例えばコンピュータであり、データ保存媒体１００に格納するためのデータ２０１を保有している。
【０００４】
このように構成されたデータ保存媒体１００では、そのデータ保存部１０１はセクタサイズ１０１ａとセクタ数１０１ｂにより複数のセクタ１０１−１〜１０１−ｎに区分けされたデータ保存構造（論理フォーマット１０３）になっている。そして、セクタサイズ１０１ａは、固定された値であるため、論理フォーマット１０３も固定された状態となっていた。
【０００５】
【発明が解決しようとする課題】
しかしながら、このような固定された状態の論理フォーマットで、可変長のデータを格納する場合は、メモリを有効に使用することができない。
【０００６】
図７は、従来技術の問題点の説明図である。
図７の（ａ）は、固定された論理フォーマットで可変長のデータを格納する場合の説明図である。
【０００７】
例えば、可変長データとして圧縮データがある。一般にデータを圧縮すると、圧縮データは元のデータより小さいサイズとなるが、図７（ａ）のように、元のデータのサイズが同じでも、データの内容が異なれば、圧縮データのサイズは同じにならない。その結果、固定された論理フォーマットで圧縮データを保存する場合、メモリの記憶容量を無駄にしてしまうことになる。
【０００８】
更に、圧縮データのサイズが、論理フォーマットのセクタサイズにほぼ等しい場合、図７（ｂ）に示すように、圧縮データを伸長し、編集（データ内容の変更）を行った後に再度圧縮した場合、圧縮データが以前の圧縮データより大きなサイズになると、以前と同じアドレスには保存できなくなるおそれがあった。
【０００９】
このような点から可変長データを効率よく保存することのできる方法の実現が望まれていた。
【００１０】
【課題を解決するための手段】
本発明は、前述の課題を解決するため次の構成を採用する。
〈請求項１の構成〉
マイクロコントローラにより任意のデータを、メインデータ長のメインデータと、メインデータ長より短いサブデータ長のサブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、データ保存部の対応したアドレスに割り当てると共に、マイクロコントローラによりメインデータ長と、メインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、サブデータ長と、サブデータのアドレスで規定されるサブデータ領域のデータフォーマットを、データ保存部の論理フォーマットとして設定し、かつ、マイクロコントローラにより任意のタイミングで、データ保存部に保存されている全てのデータの長さの平均値が予め定めた閾値より小さいかを判定し、小さい場合は、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、メインデータデータのアドレスを増加させるよう、メインデータ領域に割り当てる論理フォーマットに変換することを特徴とする論理フォーマット変換方法である。
【００１１】
〈請求項１の説明〉
請求項１の発明は、マイクロコントローラにより任意のデータを、メインデータ長のメインデータと、メインデータ長より短いサブデータ長のサブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、データ保存部の対応したアドレスに割り当てる。ここで、メインデータ長、サブデータ長は任意の値に設定可能である。また、これらメインデータ長とそのメインデータのアドレス、およびサブデータ長とそのサブデータのアドレスで規定される論理フォーマットを任意のタイミングで最適な論理フォーマットに変換する。ここで、データ保存部に保存されている全てのデータの長さの平均値が予め定めた閾値より小さいかを判定することにより、最適論理フォーマットが存在するかを調べる理由は、もし、そうであった場合は、現在の状態では、サブデータ領域に無駄な容量が存在するからである。即ち、現在の論理フォーマットでデータを保存した場合、メインデータ領域が一杯になってもサブデータ領域には空き容量が存在し、サブデータ領域を有効利用できない状態である。そこで、論理フォーマットを、現在の保存されているデータに適した最適論理フォーマットとすることにより、あらゆるデータサイズに対して柔軟にかつ効率良く対応することができる。また、メインデータアドレスが増加することで、データ保存部の容量を見かけ上増加させることができる。
【００１２】
〈請求項２の構成〉
マイクロコントローラにより任意のデータを、メインデータ長のメインデータと、メインデータ長より短いサブデータ長のサブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、データ保存部の対応したアドレスに割り当てると共に、マイクロコントローラによりメインデータ長と、メインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、サブデータ長と、サブデータのアドレスで規定されるサブデータ領域のデータフォーマットを、データ保存部の論理フォーマットとして設定し、かつ、マイクロコントローラにより任意のタイミングで、データ保存部に保存されている全てのデータの長さの平均値が予め定めた閾値より大きいかを判定し、大きい場合は、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、メインデータ長を長くするようメインデータ領域に割り当てる論理フォーマットとすることを特徴とする論理フォーマット変換方法である。
【００１３】
〈請求項２の説明〉
請求項２の発明は、マイクロコントローラにより最適論理フォーマットが存在するかを、データ保存部に保存されている全てのデータの長さの平均値が予め定めた閾値より大きいかを判定することにより判断するようにしたものである。ここで、閾値より大きい場合とは、現在の状態では、メインデータ領域に無駄な容量が存在する場合である。即ち、現在の論理フォーマットでデータを保存した場合、メインデータ領域が一杯になる前にサブデータ領域に空き容量が不足してしまう状態である。そこで、論理フォーマットを、現在の保存されているデータに適した最適論理フォーマットとすることにより、あらゆるデータサイズに対して柔軟にかつ効率良く対応することができる。また、リンクするサブデータ数が少なくなるため、外部からのデータに対するアクセスを高速に行うことができる。
【００１４】
〈請求項３の構成〉
請求項１において、マイクロコントローラは、データ保存部に保存されている全てのデータの長さの平均値が、閾値より大きかった場合は、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、メインデータ長を長くするようメインデータ領域に割り当てることを特徴とする論理フォーマット変換方法である。
【００１５】
〈請求項３の説明〉
請求項３の発明は、請求項１の発明と請求項２の発明とを備えた発明である。即ち、データ保存部に保存されている全てのデータの長さの平均値を閾値と比較し、いずれの場合でも最適な論理フォーマットに変換する。これにより、更に、あらゆるデータサイズに対して柔軟にかつ効率よく対応することができる。
【００１６】
〈請求項４の構成〉
データ保存部とマイクロコントローラからなるデータ保存媒体であって、データ保存部は、マイクロコントローラによりメインデータ長と、当該メインデータ長のメインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、メインデータ長より短いサブデータ長と、当該サブデータ長のサブデータのアドレスで規定されるサブデータ領域のデータフォーマットを、その論理フォーマットとして設定され、マイクロコントローラは、外部装置より任意のデータの保存要求を受けた場合は、当該データを、メインデータと、サブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、データ保存部の対応したアドレスに割り当てると共に、任意のタイミングで、データ保存部に格納されている全てのデータの長さの平均値が予め定めた閾値より小さいかを判定し、小さい場合は、データ保存部の論理フォーマットを、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、メインデータのアドレスを増加させるようメインデータ領域に割り当てた論理フォーマットに変更することを特徴とするデータ保存媒体である。
【００１７】
〈請求項４の説明〉
請求項４の発明は、データ保存部の論理フォーマットとして、メインデータ長と、メインデータ長のメインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、メインデータ長より短いサブデータ長と、サブデータ長のサブデータのアドレスで規定されるサブデータ領域のデータフォーマットとし、マイクロコントローラが、この論理フォーマットを、データ保存部内に保存されているデータの長さによって変換するか否かを判断するようにしたものである。これにより、データ保存媒体として、あらゆるデータサイズに対して柔軟にかつ効率良く対応することができる。また、メインデータアドレスが増加することで、外部装置に対するデータ保存媒体の容量を見かけ上増加させることができる。
【００１８】
〈請求項５の構成〉
データ保存部とマイクロコントローラからなるデータ保存媒体であって、データ保存部は、マイクロコントローラによりメインデータ長と、当該メインデータ長のメインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、メインデータ長より短いサブデータ長と、当該サブデータ長のサブデータのアドレスで規定されるサブデータ領域のデータフォーマットを、その論理フォーマットとして設定されマイクロコントローラは、外部装置より任意のデータの保存要求を受けた場合は、当該データを、メインデータと、サブデータとに分割し、これらメインデータと、サブデータとを、それぞれ、データ保存部の対応したアドレスに割り当てると共に、任意のタイミングで、データ保存部に格納されている全てのデータの長さの平均値が予め定めた閾値より大きいかを判定し、大きい場合は、データ保存部に対して、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、メインデータ長を長くするようメインデータ領域に割り当てた論理フォーマットに変更することを特徴とするデータ保存媒体である。
【００１９】
〈請求項５の説明〉
請求項５の発明は、データ保存部の論理フォーマットとして、メインデータ長と、メインデータ長のメインデータのアドレスで規定されるメインデータ領域のデータフォーマットと、メインデータ長より短いサブデータ長と、サブデータ長のサブデータのアドレスで規定されるサブデータ領域のデータフォーマットとし、マイクロコントローラが、この論理フォーマットを、データ保存部内に保存されているデータの長さによって変換するか否かを判断するようにしたものである。また、最適な論理フォーマットに変換するかは、データ保存部に保存されている全てのデータの長さの平均値が予め定めた閾値より大きいかを判定することにより判断するようにしている。これにより、データ保存媒体として、あらゆるデータサイズに対して柔軟にかつ効率良く対応することができる。また、リンクするサブデータ数が少なくなるため、外部装置からのデータに対するアクセスを高速に行うことができる。
【００２０】
〈請求項６の構成〉
請求項４において、マイクロコントローラは、データ保存部に格納されている全てのデータの長さの平均値が予め定めた閾値より小さいかを判定した結果、平均値が閾値より大きかった場合は、データ保存部に対して、サブデータ長を短くし、その結果生じるサブデータ領域の減少分を、メインデータ長を長くするようメインデータ領域に割り当てた論理フォーマットに変更するよう構成されていることを特徴とするデータ保存媒体である。
【００２１】
〈請求項６の説明〉
請求項６の発明は、請求項４の発明と請求項５の発明とを備えた発明である。即ち、制御部は、データ保存部に保存されている全てのデータの長さの平均値を閾値と比較し、いずれの場合でも最適な論理フォーマットに変換する。これにより、更に、あらゆるデータサイズに対して柔軟にかつ効率よく対応することができる。
【００２２】
〈請求項７の構成〉
請求項４〜６のいずれかにおいて、マイクロコントローラは、外部装置より論理フォーマットの変更の指示を受けた場合に、論理フォーマットの変更を行うよう構成されていることを特徴とするデータ保存媒体である。
【００２３】
〈請求項７の説明〉
請求項７の発明は、論理フォーマットの最適化を外部装置からの指示により行うようにしたものである。これにより、任意の時点でその最適化を行うことができる。
【００２４】
〈請求項８の構成〉
請求項４〜６のいずれかにおいて、マイクロコントローラは、自身の判断により論理フォーマットの変更を行うよう構成されていることを特徴とするデータ保存媒体である。
【００２５】
〈請求項８の説明〉
請求項８の発明は、論理フォーマットの最適化を制御部自身の判断により行うようにしたものである。ここで、最適化を行うタイミングは種々の場合が選択可能である。このような構成により、データ保存媒体自身で最適化を行うことができるため、データ保存部の容量をより効率よく使用することができる。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
【００２７】
《具体例１》
図１は本発明の論理フォーマット変換方法の具体例１を示す説明図であるが、これに先立ち、本発明の原理の構成を説明する。
【００２８】
〈構成〉
図２は、本発明の論理フォーマット変換方法が適用される半導体ディスク装置の構成図である。
図の装置は、データ保存媒体１と外部装置２からなり、データ保存媒体１は、マイクロコントローラ３とデータ保存部４からなる。マイクロコントローラ３は、半導体ディスク装置としての制御を行う制御部であり、データ保有部５を有している。データ保存部４は、フラッシュメモリからなる記憶部であり、図中の６はデータ保存部４に保存されるデータを示している。
【００２９】
次に、データ保存部４の保存構造について説明する。
図３は、具体例１の原理の説明図である。
図示のように、データ保存部４内の保存構造は、メインデータ領域４１とサブデータ領域４２からなるデータ領域４０となっている。また、マイクロコントローラ３内のデータ保有部５は、メインテーブル領域５１とサブテーブル領域５２からなるテーブル領域５０を持つ。データ保存部４のメインデータ領域４１と、データ保有部５のメインテーブル領域５１は対となっている（リンクしている）。また、サブデータ領域４２と、サブテーブル領域５２についても同様にリンクしている。メインデータ領域４１およびサブデータ領域４２には、それぞれ実メインデータＡ（２１）と、実サブデータａ、ｂ（２２、２３）が入る。
【００３０】
メインデータアドレス１１は、実メインデータＡ（２１）がメインデータ領域４１内で保存されるアドレス範囲を示し、サブデータアドレス１２は、実サブデータａ、ｂ（２２、２３）がサブデータ領域４２内で保存されるアドレス範囲を示している。
【００３１】
メインテーブルＡ（５１Ａ）には、実メインデータＡ（２１）に続く実サブデータａ（２２）が保存されているアドレス１２ａが入り、サブテーブルａ（５２ａ）には、この実サブデータａ（２２）に続く実サブデータｂ（２３）が保存されているアドレス１２ｂが入る。また、サブデータ長３２は、メインデータ長３１より小さい。
【００３２】
〈動作〉
次に、このように構成されたデータ保存媒体１において、データの保存動作について説明する。
図４に、データ６の構成を示す。
データ６がデータ保存媒体１に保存される場合、先ず、データ６はマイクロコントローラ３によりメインデータ長３１とサブデータ長３２とで分割され、実メインデータＡ（２１）と、実サブデータａ、ｂ（２２、２３）になる。即ち、実メインデータＡ（２１）と実サブデータａ、ｂ（２２、２３）のデータ長の合計がデータサイズ３０となる。
【００３３】
そして、実メインデータＡ（２１）をメインデータ領域４１内のアドレス１１Ａに保存する。次に、実メインデータＡ（２１）に続く実サブデータａ（２２）があるため、実サブデータａ（２２）が保存されているサブデータ領域４２内のアドレス１２ａを、実メインデータＡ（２１）とリンクしているメインテーブルＡ（５１Ａ）に保存し、実サブデータａ（２２）をアドレス１２ａに保存する。
【００３４】
次に、実サブデータａ（２２）には、続く実サブデータｂ（２３）があるため、実サブデータｂ（２３）が保存されるサブデータ領域４２内のアドレス１２ｂを実サブデータａ（２２）とリンクしているサブテーブルａ（５２ａ）に保存し、実サブデータｂ（２３）をアドレス１２ｂに保存する。実サブデータｂ（２３）には続く実サブデータがないため、サブテーブルｂ（５２ｂ）にはこれを示すフラグ等が保存される。以上の動作によりデータ６は保存される。
【００３５】
次に、データ読み出し時の動作について説明する。
データ６を読み出す場合には、マイクロコントローラ３は、保存されているメインデータ領域４１内のアドレス１１Ａから、実メインデータＡ（２１）を読み出す。次に、メインテーブルＡ（５１Ａ）を参照し、続く実サブデータａ（２２）が保存されているアドレス１２ａを参照し、サブデータ領域４２から実サブデータａ（２２）を読み出す。次に、サブテーブルａ（５２ａ）を参照し、続く実サブデータｂ（２３）が保存されているアドレス１２ｂを参照し、サブデータ領域４２から実サブデータｂ（２３）を読み出し、読み出し動作は終了する。実メインデータＡ（２１）と実サブデータａ、ｂ（２２、２３）を繋げることにより、正しくデータ６を読み出すことができたことになる。
【００３６】
更に、本具体例では、任意のタイミングで、データ保存部４内に格納されているデータを最適論理フォーマットでデータ保存部４に保存し直す制御（以下、最適化という）を行う。以下、この動作を図１を参照して説明する。
【００３７】
図２に示したマイクロコントローラ３は、外部装置２からの指示により、データ保存部４内に保存している全データのデータサイズ３０を調べ、現在の論理フォーマット、即ち、図３におけるメインデータ長３１、メインデータアドレス１１、サブデータ長３２、サブデータアドレス１２より無駄なく保存できる論理フォーマット（以下、最適論理フォーマットという）が存在するかを判定する。
【００３８】
この最適論理フォーマットが存在するかを判定するため、具体例１ではデータ長の判定基準としての閾値を設け、前記データのデータサイズ３０の平均値がこの閾値より小さい場合に、最適論理フォーマットが存在すると判断する。この閾値は、例えば、「メインデータ長＋サブデータ長」とする。現在のメインデータ長＝２５６バイト、サブデータ長＝６４バイトであった場合（図３に示す状態）は、２５６＋６４＝３２０バイトと決定する。
【００３９】
ここで、現在のデータサイズ３０の平均値が閾値以下であった場合とは、サブデータ領域４２に無駄な容量が存在する場合である。例えば、現在の論理フォーマットでデータを保存した場合、メインデータ領域４１が一杯になってもサブデータ領域４２には空き容量が存在することになり、サブデータ領域４２を有効利用できないことになる。
【００４０】
従って、このような場合は、現在の論理フォーマットのサブデータ長を小さくし、その結果、生成されたメモリ領域をメインデータ領域４１に割り当てる。また、メインデータ領域４１に割り当てる場合は、メインデータアドレス１１を大きくした最適論理フォーマットとする。
【００４１】
以下、最適化の動作を詳細に説明する。
外部装置２からデータ保存媒体１のマイクロコントローラ３に対し、最適化の指示が入力されると、マイクロコントローラ３は、現在データ保存部４内に保存されているデータ６のデータサイズ３０を調べ、最適論理フォーマットが存在するか、即ち、データサイズ３０の平均値が閾値より小さいかを調べる。最適論理フォーマットが存在した場合は最適化を行うが、存在しない場合には最適化は行わない。
【００４２】
現在の論理フォーマットが「メインデータ長（３１）＝２５６バイト、メインデータアドレス（１１）＝２０４８、サブデータ長（３２）＝６４バイト、サブデータアドレス（１２）＝８１９２」であり、最適論理フォーマットが、図１に示すように、「メインデータ長（３３）＝２５６バイト、サブデータ長（３４）＝３２バイト、サブデータアドレス（１４）＝８１９２」であるとした場合、サブデータ領域４４として使用されなくなった容量（斜線Ｍ部６１：サブデータ長（３２バイト）×サブデータアドレス（８１９２））を、メインデータ領域４３に割り当て（斜線Ｍ′部６２）、メインデータアドレス１３を、２０４８から３０７２に変更する。メインデータアドレス１３が増加することで、外部装置２に対するデータ保存媒体１の容量が増加したように見える。
【００４３】
このような最適論理フォーマットで、マイクロコントローラ３は、データ６を保存し直す。以下、この保存動作を説明するが、これは、上記図３で説明した動作と同様に行う。
【００４４】
データ６は、マイクロコントローラ３により、メインデータ長３３とサブデータ長３４に分割され、図３に示す実メインデータＡ（２１）と実サブデータａ、ｂ（２２、２３）は、図１に示すように、実メインデータＡ′（２４）と実サブデータａ′、ｂ′、ｃ′（２５、２６、２７）となる。
【００４５】
実メインデータＡ′（２４）をメインデータ領域４３内のアドレス１３Ａに保存する。次に実メインデータＡ′（２４）には、続く実サブデータａ′（２５）があるため、実サブデータａ′（２５）が保存されるサブデータ領域４４内のアドレス１４ａを、実メインデータＡ′（２４）とリンクしているメインテーブルＡ′（５３Ａ）に保存し、実サブデータａ′（２５）をアドレス１４ａに保存する。次に、実サブデータａ′（２５）には、続く実サブデータｂ′（２６）があるため、実サブデータｂ′（２６）が保存されるサブデータ領域４４内のアドレス１４ｂを、実サブデータａ′（２５）とリンクしているサブテーブルａ′（５４ａ）に保存し、実サブデータｂ′（２６）をアドレス１４ｂに保存する。続いて、実サブデータｂ′（２６）には、続く実サブデータｃ′（２７）があるため、実サブデータｃ′（２７）が保存されるサブデータ領域４４内のアドレス１４ｃを、実サブデータｂ′（２６）とリンクしているサブテーブルｂ′（５４ｂ）に保存し、実サブデータｃ′（２７）をアドレス１４ｃに保存する。以上の動作により、データ６は保存される。
【００４６】
〈効果〉
以上のように具体例１によれば、あらゆるデータサイズに柔軟にかつ効率よく対応させることができる。また、メインデータアドレスが増加することで、外部装置２に対するデータ保存媒体１の容量を見かけ上増加させることができる。
【００４７】
《具体例２》
〈構成〉
具体例２の論理フォーマット変換方法が適用される半導体ディスク装置の構成は、具体例１で説明した図２の構成と同様であるため、ここでの説明は省略する。また、具体例２において、最適化を行う前のデータ保存媒体１の状態は図３に示した状態であるとする。
【００４８】
図５は、具体例２による論理フォーマット変換方法の説明図である。
具体例２においては、データ保存媒体１のマイクロコントローラ３は、外部装置２からの指示により、データ保存部４内に保存している全データのデータサイズ３０を調べ、最適論理フォーマットが存在するかを判定する。具体例２では、データサイズ３０の平均が予め設定した閾値より大きい場合に、メインデータアドレスを変えずに、サブデータ長を小さくした最適論理フォーマットを採用する。
【００４９】
上記閾値は、例えば、具体例１と同様に、「メインデータ長＋サブデータ長」とする。現在のメインデータ長＝２５６バイト、サブデータ長＝６４バイトであった場合（図３に示す状態）は、２５６＋６４＝３２０バイトと決定する。
【００５０】
ここで、現在のデータサイズ３０の平均値が閾値より大きい場合とは、メインデータ領域４１に無駄な容量が存在する場合である。例えば、現在の論理フォーマットでデータを保存した場合、メインデータ領域４１が一杯になる前にサブデータ領域４２に空き容量がなくなってしまい、メインデータ領域４１を有効利用できないことになる。
【００５１】
従って、このような場合は、現在の論理フォーマットのサブデータ長を小さくし、その結果、生成されたメモリ領域をメインデータ領域４１に割り当てる。また、メインデータ領域４１に割り当てる場合は、メインデータ長を長くした最適論理フォーマットとする。
【００５２】
〈動作〉
外部装置２からデータ保存媒体１のマイクロコントローラ３に対し、最適化の指示が入力されると、マイクロコントローラ３は、現在、データ保存部４に保存されているデータ６のデータサイズ３０を調べ、最適論理フォーマットが存在するかを判定する。存在した場合は最適化を行うが、存在しない場合には最適化は行わない。
【００５３】
現在の論理フォーマット（図３の状態）が、「メインデータ長（３１）＝２５６バイト、メインデータアドレス（１１）＝２０４８、サブデータ長（３２）＝６４バイト、サブデータアドレス（１２）＝８１９２」であり、最適論理フォーマットが、図５に示すように、「メインデータ長（３５）＝３２０バイト、サブデータ長（３６）＝３２バイト、サブデータアドレス（１６）＝１２１６２」であるとした場合、サブデータ領域４６として使用されなくなった容量のうち、斜線Ｎ部７１の容量をメインデータ領域４５に割り当て（斜線Ｎ′部７２）、メインデータ長３５を、２５６バイトから３２０バイトに変更する。メインデータアドレス１５の変更がないため、外部装置２には、データ保存媒体１が何も変化していないように見える。
【００５４】
このような最適論理フォーマットで、マイクロコントローラ３は、データ６を保存し直す。以下、この保存動作を説明するが、本具体例においても、その動作は、上記図３で説明した場合と同様である。
【００５５】
データ６は、マイクロコントローラ３により、メインデータ長３５とサブデータ長３６に分割され、図３に示す実メインデータＡ（２１）と実サブデータａ、ｂ（２２、２３）は、図５に示すように、実メインデータＡ″（２８）と、実サブデータａ″（２９）となる。
【００５６】
そして、実メインデータＡ″（２８）をメインデータ領域４５内のアドレス１５Ａに保存する。次に実メインデータＡ″（２８）には、続く実サブデータａ″（２９）があるため、実サブデータａ″（２９）が保存されるサブデータ領域４６内のアドレス１６ａを、実メインデータＡ″（２８）とリンクしているメインテーブルＡ″（５５Ａ）に保存し、実サブデータａ″（２９）をアドレス１６ａに保存する。実サブデータａ″（２９）には続く実サブデータがないため、サブテーブルａ″（５６ａ）にはこれを示すフラグ等が保存される。以上の動作により、データ６は保存される。
【００５７】
〈効果〉
以上のように具体例２によれば、あらゆるデータサイズに柔軟にかつ効率よく対応させることができる。また、リンクするサブデータ数が少なくなるため、外部装置２からのデータに対するアクセスを高速に行うことができる。
【００５８】
《利用形態》
上記各具体例では、最適化が行われる場合として、外部装置２から最適化の指示が与えられた時としたが、データ保存媒体１内で独立に最適化を行うようにしてもよい。この方法としては、例えばマイクロコントローラ３が定期的（データ保存媒体１の電源投入時やデータの入力が行われた時等）に行うか、あるいはある条件が整ったとき（データ保存媒体１へ保存する回数が予め設定した閾値を超えた場合や平均データ長が閾値を超えた場合等）に行ってもよい。
【００５９】
また、各具体例で用いたメインデータ長、メインデータアドレス、サブデータ長、サブデータアドレスは一例であり、これ以外の数値を用いてもよい。更に、最適論理フォーマットが存在するかを判定するための閾値は、条件等によって種々選択が可能である。
【００６０】
そして、上記具体例では、データ保存部４の構成としてフラッシュメモリを用いた場合を説明したが、これに限定されるものではなく、論理フォーマットが存在する種々のデータ保存媒体に対して適用可能である。
【図面の簡単な説明】
【図１】本発明の具体例１による論理フォーマット変換方法の説明図である。
【図２】本発明の論理フォーマット変換方法が適用される半導体ディスク装置の構成図である。
【図３】本発明の具体例１による論理フォーマット変換方法の原理の説明図である。
【図４】本発明の論理フォーマット変換方法におけるデータの構成図である。
【図５】本発明の具体例２による論理フォーマット変換方法の説明図である。
【図６】従来の半導体ディスク装置の説明図である。
【図７】従来の問題点の説明図である。
【符号の説明】
１  データ保存媒体
２  外部装置
３  マイクロコントローラ（制御部）
４  データ保存部
５  データ保有部
６  データ
１１、１３、１５  メインデータアドレス
１２、１４、１６  サブデータアドレス
２１  実メインデータＡ
２２  実サブデータａ
２３  実サブデータｂ
２４  実メインデータＡ′
２５  実サブデータａ′
２６  実サブデータｂ′
２７  実サブデータｃ′
２８  実メインデータＡ″
２９  実サブデータａ″
３０  データサイズ
３１、３３、３５  メインデータ長
３２、３４、３６  サブデータ長
４１、４３、４５  メインデータ領域
４２、４４、４６  サブデータ領域
５１  メインテーブル領域
５２  サブテーブル領域
５１Ａ  メインテーブルＡ
５３Ａ  メインテーブルＡ′
５５Ａ  メインテーブルＡ″
５２ａ  サブテーブルａ
５２ｂ  サブテーブルｂ
５４ａ  サブテーブルａ′
５４ｂ  サブテーブルｂ′
５４ｃ  サブテーブルｃ′
５６ａ  サブテーブルａ″
６１  Ｍ部
６２  Ｍ′部
７１  Ｎ部
７２  Ｎ′部
【図１】
0003766188.tif 000002
【図２】
0003766188.tif 000003
【図３】
0003766188.tif 000004
【図４】
0003766188.tif 000005
【図５】
0003766188.tif 000006
【図６】
0003766188.tif 000007
【図７】
0003766188.tif 000008