(57)【特許請求の範囲】
【請求項１】
外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、
前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断部と、
前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを格納するアクセス処理部と
を備えることを特徴とする外部記憶装置。
【請求項２】
前記データパターンは、特定のデータ値の繰り返しによるデータパターンであり、
前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記特定のデータ値に対応付けられた前記識別情報と、前記オフセット情報及び不一致である前記データ値とを格納することを特徴とする請求項１記載の外部記憶装置。
【請求項３】
前記データパターンを、当該データパターンを識別する前記識別情報に対応付けて登録する登録部を更に備え、
前記判断部は、前記登録部が登録する前記データパターンを用いて前記データブロックを記録可能かどうかを判断し、
前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記登録部が登録する前記データパターンに対応付けられた前記識別情報と、前記オフセット情報及び不一致である前記データ値とを格納する
ことを特徴とする請求項１記載の外部記憶装置。
【請求項４】
前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納するデータブロック記憶領域を更に備え、
前記アクセス処理部は、前記登録部が登録する前記データパターンが変更される場合に、変更される前記データパターンを用いて格納している前記データブロックの内容を、変更される前記データパターンを用いて生成し、前記データブロック記憶領域に格納することを特徴とする請求項３記載の外部記憶装置。
【請求項５】
前記登録部は、前記アクセス処理部が前記データパターンを用いて格納している前記データブロックの個数である参照数を、当該データパターンを識別する前記識別情報に対応付けて登録し、
前記登録部に新たな前記データパターンが登録される場合に、前記登録部が登録する１以上の前記データパターンのうち、前記参照数が最小であると判断した前記データパターンを新たな前記データパターンに置換することを特徴とする請求項４記載の外部記憶装置。
【請求項６】
前記データブロックを格納するデータブロック記憶領域を更に備え、
前記アクセス処理部は、
前記データブロックの格納位置を示す位置情報を格納する位置情報部を有し、
前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、前記オフセット情報及び不一致である前記データ値とを前記位置情報部に格納し、
前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納することを特徴とする請求項１記載の外部記憶装置。
【請求項７】
外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、
特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部と、
前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断部と、
前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを格納するアクセス処理部と
を備えることを特徴とする外部記憶装置。
【請求項８】
前記データパターンは、特定のデータ値の繰り返しによるデータパターンであり、
前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記特定のデータ値に対応付けられた前記識別情報と、不一致である前記データ値とを格納することを特徴とする請求項７記載の外部記憶装置。
【請求項９】
前記データパターンを、当該データパターンを識別する前記識別情報に対応付けて登録する登録部を更に備え、
前記判断部は、前記登録部が登録する前記データパターンを用いて前記データブロックを記録可能かどうかを判断し、
前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記登録部が登録する前記データパターンに対応付けられた前記識別情報と、不一致である前記データ値とを格納する
ことを特徴とする請求項７記載の外部記憶装置。
【請求項１０】
前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納するデータブロック記憶領域を更に備え、
前記アクセス処理部は、前記登録部が登録する前記データパターンが変更される場合に、変更される前記データパターンを用いて格納している前記データブロックの内容を、変更される前記データパターンを用いて生成し、前記データブロック記憶領域に格納することを特徴とする請求項９記載の外部記憶装置。
【請求項１１】
前記登録部は、前記アクセス処理部が前記データパターンを用いて格納している前記データブロックの個数である参照数を、当該データパターンを識別する前記識別情報に対応付けて登録し、
前記登録部に新たな前記データパターンが登録される場合に、前記登録部が登録する１以上の前記データパターンのうち、前記参照数が最小であると判断した前記データパターンを新たな前記データパターンに置換することを特徴とする請求項１０記載の外部記憶装置。
【請求項１２】
前記データブロックを格納するデータブロック記憶領域を更に備え、
前記アクセス処理部は、
前記データブロックの格納位置を示す位置情報を格納する位置情報部を有し、
前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、不一致である前記データ値とを前記位置情報部に格納し、
前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納することを特徴とする請求項７記載の外部記憶装置。
【請求項１３】
外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、
前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断ステップと、
前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを格納するアクセス処理ステップと
を備えることを特徴とする外部記憶装置制御方法。
【請求項１４】
前記外部記憶装置は、前記データブロックを格納するデータブロック記憶領域と、前記データブロックの格納位置を示す位置情報を格納する位置情報部とを備え、
前記アクセス処理ステップは、
前記判断ステップにおいて前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、前記オフセット情報及び不一致である前記データ値とを前記位置情報部に格納し、
前記判断ステップにおいて前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納する
ことを特徴とする請求項１３記載の外部記憶装置制御方法。
【請求項１５】
外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、
前記外部記憶装置は、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を備え、
前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断ステップと、
前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを格納する
ことを特徴とする外部記憶装置制御方法。
【請求項１６】
前記外部記憶装置は、前記データブロックを格納するデータブロック記憶領域と、前記データブロックの格納位置を示す位置情報を格納する位置情報部とを備え、
前記アクセス処理ステップは、
前記判断ステップにおいて前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、不一致である前記データ値とを前記位置情報部に格納し、
前記判断ステップにおいて前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納する
ことを特徴とする請求項１５記載の外部記憶装置制御方法。
【請求項１７】
外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、
前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と前記外部記憶装置に判断させる判断モジュールと、
前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを前記外部記憶装置に格納させるアクセス処理モジュールと
を備えることを特徴とするプログラム。
【請求項１８】
前記外部記憶装置は、前記データブロックを格納するデータブロック記憶領域と、前記データブロックの格納位置を示す位置情報を格納する位置情報部とを備え、
前記アクセス処理モジュールは、
前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、前記オフセット情報及び不一致である前記データ値とを前記外部記憶装置により前記位置情報部に格納させ、
前記判断モジュールが前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記外部記憶装置により前記位置情報部に格納させる
ことを特徴とする請求項１７記載のプログラム。
【請求項１９】
外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、
前記外部記憶装置は、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を備え、
前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と前記外部記憶装置に判断させる判断モジュールと、
前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを前記外部記憶装置に格納させるアクセス処理モジュールと
を備えることを特徴とするプログラム。
【請求項２０】
前記外部記憶装置は、前記データブロックを格納するデータブロック記憶領域と、前記データブロックの格納位置を示す位置情報を格納する位置情報部とを備え、
前記アクセス処理モジュールは、
前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、不一致である前記データ値とを前記外部記憶装置により前記位置情報部に格納させ、
前記判断モジュールが前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記外部記憶装置により前記位置情報部に格納させる
ことを特徴とする請求項１９記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体に関する。特に本発明は、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体に関する。
【０００２】
【従来の技術】
従来、外部記憶装置を実現する記録媒体として、ハードディスクが多用されている。ハードディスクは、低いビット単価、大容量、不揮発性等の特長を備える。一方、ハードディスクは、ディスクの回転や磁気ヘッドの移動等の機械的な動作によりデータを読み書きする記録媒体であるため、電気的にデータを読み書きする半導体メモリ等と比較しアクセス速度が遅いという欠点がある。
【０００３】
このため、高速アクセスが要求される計算機システム向けに、半導体メモリを記録媒体とする外部記憶装置が提供されている。この様な外部記録装置を実現する技術は、例えば特開２０００−２９６３６に開示されている。特開２０００−２９６３６は、データを圧縮して書き込む半導体ディスク装置を提供する。
【０００４】
【発明が解決しようとする課題】
以上に示した特開２０００−２９６３６においては、データを圧縮して半導体ディスク装置のビット単価を低減する。しかし、データ圧縮の効率は圧縮するデータの内容に応じて異なることから、圧縮機能を付加するのみでは半導体ディスク装置が備える半導体メモリより大きい特定の記憶容量の外部記憶装置として提供するのが難しい。
【０００５】
また、半導体メモリを記録媒体とする外部記憶装置を、ハードディスクを記録媒体とする外部記憶装置の代替として用いる場合、ハードディスクが備える特長を可能な限り半導体メモリを記録媒体とする外部記憶装置において実現することが望ましい。
【０００６】
そこで本発明は、上記の課題を解決することのできる外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【０００７】
【課題を解決するための手段】
即ち、本発明の第１の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断部と、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを格納するアクセス処理部とを備えることを特徴とする外部記憶装置を提供する。
【０００８】
前記データパターンは、特定のデータ値の繰り返しによるデータパターンであってよく、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記特定のデータ値に対応付けられた前記識別情報と、前記オフセット情報及び不一致である前記データ値とを格納してもよい。
【０００９】
前記データパターンを、当該データパターンを識別する前記識別情報に対応付けて登録する登録部を更に備え、前記判断部は、前記登録部が登録する前記データパターンを用いて前記データブロックを記録可能かどうかを判断し、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記登録部が登録する前記データパターンに対応付けられた前記識別情報と、前記オフセット情報及び不一致である前記データ値とを格納してもよい。
【００１０】
前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納するデータブロック記憶領域を更に備え、前記アクセス処理部は、前記登録部が登録する前記データパターンが変更される場合に、変更される前記データパターンを用いて格納している前記データブロックの内容を、変更される前記データパターンを用いて生成し、前記データブロック記憶領域に格納してもよい。
【００１１】
前記登録部は、前記アクセス処理部が前記データパターンを用いて格納している前記データブロックの個数である参照数を、当該データパターンを識別する前記識別情報に対応付けて登録し、前記登録部に新たな前記データパターンが登録される場合に、前記登録部が登録する１以上の前記データパターンのうち、前記参照数が最小であると判断した前記データパターンを新たな前記データパターンに置換してもよい。
【００１２】
前記データブロックを格納するデータブロック記憶領域を更に備え、前記アクセス処理部は、前記データブロックの格納位置を示す位置情報を格納する位置情報部を有し、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、前記オフセット情報及び不一致である前記データ値とを前記位置情報部に格納し、前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納してもよい。
【００１３】
本発明の第２の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部と、前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断部と、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを格納するアクセス処理部とを備えることを特徴とする外部記憶装置を提供する。
【００１４】
本発明の第３の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断ステップと、前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを格納するアクセス処理ステップとを備えることを特徴とする外部記憶装置制御方法を提供する。
【００１５】
本発明の第４の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を備え、前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断ステップと、前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを格納することを特徴とする外部記憶装置制御方法を提供する。
【００１６】
本発明の第５の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と前記外部記憶装置に判断させる判断モジュールと、前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを前記外部記憶装置に格納させるアクセス処理モジュールとを備えることを特徴とするプログラムを提供する。
【００１７】
本発明の第６の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、前記外部記憶装置は、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を備え、前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と前記外部記憶装置に判断させる判断モジュールと、前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを前記外部記憶装置に格納させるアクセス処理モジュールとを備えることを特徴とするプログラムを提供する。
【００１８】
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【００１９】
【発明の実施の形態】
以下、発明の実施形態を通じて本発明を説明するが、実施形態はクレームにかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２０】
図１は、本発明の実施形態に係る計算機システム１００の構成の一例を示す。本実施形態に係る計算機システム１００は、外部記憶装置１１０、計算機１２０、及びネットワーク１４０を備える。
【００２１】
外部記憶装置１１０は、計算機１２０等の外部の装置から受け取ったファイル等のデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置である。本実施形態に係る外部記憶装置１１０は、１６ＧＢの容量を備える。また、本実施形態に係る外部記憶装置１１０は、第１の記録媒体として２ＧＢの揮発性の半導体メモリを、第２の記録媒体として１８ＧＢの不揮発性の記録媒体を用いる。外部記憶装置１１０は、第１の記録媒体として、ＳＲＡＭやＤＲＡＭ等の揮発性の半導体メモリ、フラッシュメモリやＩＣカードメモリ等の不揮発性の半導体メモリ、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、ハードディスク等の磁気記録媒体、テープ媒体等を用いてもよい。同様に、外部記憶装置１１０は、第２の記録媒体として、ＳＲＡＭやＤＲＡＭ等の揮発性の半導体メモリ、フラッシュメモリやＩＣカードメモリ等の不揮発性の半導体メモリ、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、ハードディスク等の磁気記録媒体、テープ媒体等を用いてもよい。ただし、本実施形態に係る外部記憶装置１１０の機能の一部は、第１の記録媒体より第２の記録媒体のアクセス速度が遅い場合に好適である。また、本実施形態に係る外部記憶装置１１０の機能の一部は、第１の記録媒体が揮発性である場合に好適である。
【００２２】
計算機１２０は、プログラムを実行し、プログラムの指示に従いネットワーク１４０を介して外部記憶装置１１０をアクセスする。
【００２３】
ネットワーク１４０は、外部記憶装置１１０と計算機１２０を接続するローカルエリアネットワークである。ネットワーク１４０は、ローカルエリアネットワークに代えて、例えばインターネットや電話回線等の公衆回線網、ＳＡＮ（Ｓｅｒｖｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の専用通信網による種々のネットワーク、及びこれらの組合せであってよい。また、計算機１２０は、ＩＤＥ接続、Ｅ−ＩＤＥ接続、ＳＣＳＩ接続、ＵＳＢ接続、ファイバーチャネル接続等を用いて、ネットワーク１４０を介さず直接外部記憶装置１１０を接続してもよい。
【００２４】
図２は、本発明の実施形態に係る外部記憶装置１１０が計算機１２０に対して提供する記憶領域のデータ構造を示す。本実施形態において、外部記憶装置１１０は、５１２Ｂ（Ｂｙｔｅ）のブロック単位でデータを格納する。これに代えて、外部記憶装置１１０は、例えば、２５６Ｂ、１０２４Ｂ、２０４８Ｂ等の他の大きさのブロックを用いてもよい。
計算機１２０は、外部記憶装置１１０を、５１２Ｂのブロックを３２Ｍ個（Ｍｅｇａ個）有する、１６ＧＢ（５１２Ｂｙｔｅ×３２Ｍｅｇａ個＝１６ＧｉｇａＢｙｔｅ）の記憶容量を備える記憶装置と見なしてアクセスする。一方、外部記憶装置１１０において、第１の記録媒体内にデータブロックを格納するために用いるデータブロック記憶領域は、第１の記録媒体より小さい記憶容量を備える。従って、外部記憶装置１１０は、データブロック記憶領域の記憶容量より大きい記憶容量の記憶領域を計算機１２０に提供する。
【００２５】
計算機１２０は、外部記憶装置１１０へのアクセスの一例として、外部記憶装置１１０内の特定のブロックに対して５１２Ｂのデータブロックを書き込む書込みアクセス、外部記憶装置１１０内の特定のブロックから５１２Ｂのデータブロックを読み出す読出しアクセス、及び外部記憶装置１１０の記憶容量を示す容量情報の読み出しを要求する容量読出しアクセスを用いる。また、計算機１２０は、５１２Ｂ未満のデータを外部記憶装置１１０に書き込む場合には、書き込むデータのサイズ指定を書込みアクセスに含める。外部記憶装置１１０及び計算機１２０は、これらのアクセスに加え、ブロックの整数倍等のクラスタ単位のアクセス等をサポートしてもよい。
【００２６】
図３は、本発明の実施形態に係る外部記憶装置１１０の構成を示す。本発明の実施形態に係る外部記憶装置１１０は、半導体メモリ２００、ハードディスク２１０、通信インターフェイス２４５、容量管理部２４７、判断部２７５、登録部２７４、アクセス処理部２７７及びパターン置換部２９２を備える。半導体メモリ２００は、本発明に係る第１の記録媒体の一例である。ハードディスク２１０は、本発明に係る第２の記録媒体の一例である。
【００２７】
半導体メモリ２００は、揮発性の半導体メモリによる記録媒体である。本実施形態において半導体メモリ２００は、２ＧＢの容量を備える。半導体メモリ２００は、位置テーブル３１０及びＭデータブロック記憶領域３２０を有する。
【００２８】
位置テーブル３１０は、外部記憶装置１１０に格納されたデータブロックの格納位置を示す４Ｂの情報を、図２に示した外部記憶装置１１０のブロックのそれぞれに対応付けて格納する。
【００２９】
Ｍデータブロック記憶領域３２０は、データブロックの内容を半導体メモリ２００に格納するためのデータ領域である。本実施形態に係るＭデータブロック記憶領域３２０は、計算機１２０から受け取ったデータを、６４ＢのブロックであるＭブロック（メモリブロック）に分割して格納する。
【００３０】
ハードディスク２１０は、不揮発性の記録媒体である。本実施形態に係るハードディスク２１０は、半導体メモリ２００よりアクセス速度が遅い。本実施形態に係るハードディスク２１０は、計算機１２０から受け取ったデータを、５１２ＢのブロックであるＨブロック（ハードディスクブロック）に分割して格納する。また、本実施形態に係るハードディスク２１０は、１８ＧＢの容量を持つものとする。
【００３１】
通信インターフェイス２４５は、計算機１２０からのアクセスに関する送受信処理を行う。
【００３２】
容量管理部２４７は、ネットワーク１４０を介して計算機１２０から容量読出しアクセスを受信した場合に、半導体メモリ２００内のＭデータブロック記憶領域３２０の記憶容量より大きい記憶容量を示す容量情報を計算機１２０に返信する。本実施形態に係る外部記憶装置１１０は、図２に示した様に、１６ＧＢの記憶容量を備える。従って、容量管理部２４７は、半導体メモリ２００の記憶容量２ＧＢより大きい１６ＧＢの記憶容量を示す容量情報を、計算機１２０に返信する。
ここで、容量情報は、記憶容量そのものでなく、記憶容量の算出に用いられるパラメータ値であってもよい。例えば、容量情報は、記憶容量そのものに代えて、ブロック数、セクタ数、トラック数、シリンダ数、及び／又はブロックサイズ等を含む情報であってもよい。また、例えば、計算機１２０と外部記憶装置１１０がＳＣＳＩ接続されている場合、計算機１２０は、容量読出しアクセスの一例であるＲｅａｄ  Ｃａｐａｃｉｔｙコマンドを用いて、外部記憶装置１１０のブロック数とブロックサイズを取得してもよい。
【００３３】
判断部２７５は、計算機１２０からデータブロックの書込みアクセスを受信すると、書込みの対象データブロックを位置テーブル３１０、Ｍデータブロック記憶領域３２０、及びハードディスク２１０のいずれに格納するかを判断する。判断部２７５は、第１判断部２７２と第２判断部２７３とを有する。
【００３４】
第１判断部２７２は、計算機１２０からデータブロックの書込みアクセスを受信すると、対象データブロックを特定のデータパターンを用いて記録可能かどうかを判断する。本実施形態に係る第１判断部２７２は、データパターンとして、登録部２７４内の登録テーブル２７６に格納されたデータパターン、及び特定のデータ値の繰り返しによるデータパターンを用いる。また、第１判断部２７２は、登録部２７４に書込みの対象データブロックを登録し、対象データブロックを、登録したデータパターンを用いて記録可能とする機能を備える。対象データブロックを特定のデータパターンを用いて記録可能と判断した場合、第１判断部２７２は、対象データブロックの内容をＭデータブロック記憶領域３２０又はハードディスク２１０に格納するのに代えて、対象データブロックに対応するデータパターンを識別する情報である識別情報等を、アクセス処理部２７７内の位置テーブル３１０に格納する様格納部２９０に指示する。
【００３５】
第２判断部２７３は、第１判断部２７２が特定のデータパターンを用いて書込みの対象データブロックを記録不可能と判断した場合に、書込みの対象データブロックを半導体メモリ２００内のＭデータブロック記憶領域３２０に格納可能かどうかを判断する。すなわち、まず第２判断部２７３は、半導体メモリ２００内のＭデータブロック記憶領域３２０の空きＭブロック数を、アクセス処理部２７７内の格納部２９０から取得する。次に、第２判断部２７３は、半導体メモリ２００の空きＭブロック数が８以上（すなわち、データブロック５１２Ｂを圧縮無しに格納できるＭブロックの個数以上）の場合に、対象データブロックを半導体メモリ２００内のＭデータブロック記憶領域３２０に格納可能と判断する。これに代えて、第２判断部２７３は、まず対象データブロックをアクセス処理部２７７内の圧縮部２８０に圧縮させ、圧縮された対象データブロックを格納できる数の空きブロックが存在するかどうかに基づき本判定を行ってもよい。
【００３６】
登録部２７４は、第１判断部２７２が使用するデータパターンを、当該データパターンを識別する識別情報に対応付けて登録する。登録部２７４は、第１判断部２７２及びパターン置換部２９２が用いるデータパターン等の情報を登録する登録テーブル２７６を有する。本実施形態に代えて、登録部２７４は、登録テーブル２７６を半導体メモリ２００又はハードディスク２１０上に格納してもよい。
【００３７】
アクセス処理部２７７は、圧縮部２８０、割当部２８５、格納部２９０、復元部２９７、及び位置テーブル３１０を含む。
【００３８】
圧縮部２８０は、半導体メモリ２００内のＭデータブロック記憶領域３２０に格納すると判断された対象データブロックを、例えばランレングス符号化、Ｈｕｆｆｍａｎ符号化、又はＺｉｐ−Ｌｅｍｐｅｌ符号化等の圧縮アルゴリズムを用いて圧縮する。圧縮アルゴリズムや対象データブロックの内容等によっては、圧縮した対象データブロックの格納に８以上のＭブロックを要し、対象データブロックを圧縮する効果が得られない場合がある。この様な場合には、圧縮部２８０は、対象データブロックを圧縮しないまま割当部２８５に渡す。本実施形態に係る圧縮部２８０は、ハードディスク２１０に格納すると判断された対象データブロックについては圧縮を行わない。
【００３９】
割当部２８５は、半導体メモリ２００内のＭデータブロック記憶領域３２０に格納すると判断された対象データブロックを、対象データブロックに応じた個数のＭブロックに分割し、Ｍブロックを割り当てる。すなわち、割当部２８５は、圧縮部２８０により圧縮されなかった５１２Ｂの対象データブロックを、６４ＢのＭブロック８個に分割する。一方、割当部２８５は、圧縮部２８０により圧縮された対象データブロックを、圧縮後のサイズに応じた個数のＭブロックに分割する。また、割当部２８５は、５１２Ｂ未満のデータを書き込む書込みアクセスに対しては、対象データブロックの格納に必要な個数のＭブロックに分割する。すなわち、対象データブロックの一部が未使用である場合に、対象データブロックの使用部分をＭブロックに分割する。
【００４０】
格納部２９０は、半導体メモリ２００及びハードディスク２１０に対するアクセスの制御を行う。
格納部２９０は、対象データブロックの識別情報等を、アクセス処理部２７７内の位置テーブル３１０に格納する様第１判断部２７２から指示を受けると、指示に従い対象データブロックの識別情報等を位置テーブル３１０に格納する。
また、格納部２９０は、書込みアクセスにおいて、半導体メモリ２００内のＭデータブロック記憶領域３２０に格納すると判断された対象データブロックを、割当部２８５が割り当てた１以上のＭブロックに格納する。また、格納部２９０は、書込みアクセスにおいて、ハードディスク２１０に格納すると判断された対象データブロックをハードディスク２１０に格納する。
【００４１】
また、格納部２９０は、通信インターフェイス２４５を介して読出しアクセスを受信すると、対象データブロックを位置テーブル３１０、Ｍデータブロック記憶領域３２０又はハードディスク２１０のいずれかより読み出し復元部２９７に送付する。具体的には、格納部２９０は、読出しアクセスを受信した場合に、位置テーブル３１０を参照し、読出し対象のデータである対象データブロックが、半導体メモリ２００及びハードディスク２１０のいずれに格納されているかを判断する。そして、格納部２９０は、対象データブロックが位置テーブル３１０内の識別情報として格納されている場合、位置テーブル３１０から対象データブロックに対応する識別情報等を取得し、復元部２９７を介してパターン置換部２９２に転送する。
また、格納部２９０は、対象データブロックが半導体メモリ２００内のＭデータブロック記憶領域３２０に格納されている場合には、対象データブロックを半導体メモリ２００内のＭデータブロック記憶領域３２０から読み出す。一方、格納部２９０は、対象データブロックがハードディスク２１０に格納されている場合には、対象データブロックをハードディスク２１０から読み出す。そして、格納部２９０は、復元部２９７に対象データブロックを転送する。
【００４２】
復元部２９７は、半導体メモリ２００内のＭデータブロック記憶領域３２０から読み出された読出しアクセスの対象データブロックが圧縮されている場合、対象データブロックを復元する。そして、復元部２９７は、読出しアクセスの対象データブロックを、パターン置換部２９２を介して計算機１２０に返信する。一方、格納部２９０から対象データブロックに対応する識別情報等を受信した場合、復元部２９７は、受信した識別情報等をパターン置換部２９２に転送する。
【００４３】
パターン置換部２９２は、復元部２９７を介して格納部２９０から対象データブロックに対応する識別情報等を取得する。そして、パターン置換部２９２は、取得した識別情報に対応するデータパターンに基づき対象データブロックを生成する。ここで、パターン置換部２９２は、識別情報が登録部２７４内の登録テーブル２７６に登録されたデータパターンを指定している場合、登録部２７４から対応するデータパターン等を取得し対象データブロックを生成する。
一方、パターン置換部２９２は、読出しの対象データブロックを復元部２９７から受信すると、読み出しの対象データブロックを通信インターフェイス２４５に転送する。
【００４４】
図４は、本発明の実施形態に係る半導体メモリ２００のデータ構造を示す。半導体メモリ２００は、位置テーブル３１０、管理情報３１５、及びＭデータブロック記憶領域３２０を有する。
【００４５】
位置テーブル３１０は、外部記憶装置１１０に格納されたデータブロックの格納位置を示す４Ｂの情報を、図２に示した外部記憶装置１１０のブロックのそれぞれに対応付けて格納する。位置テーブル３１０は、外部記憶装置１１０の各ブロックに対応して３２Ｍ個のエントリを有し、１２８ＭＢ（４Ｂ×３２Ｍエントリ）の領域サイズをとる。各エントリの４Ｂの情報は、データブロックが半導体メモリ２００内のＭデータブロック記憶領域３２０及びハードディスク２１０のいずれに格納されたかを示す情報、データブロックが圧縮されているかどうかを示す情報、データブロックが特定のデータパターンを用いて記録されているかどうかを示す情報、及びデータブロックが格納されたＭブロックの番号を示す情報を含む。本実施形態に代えて、格納部２９０は、位置テーブル３１０及び／又は管理情報３１５を、半導体メモリ２００とは異なる記録媒体に格納してもよい。
【００４６】
管理情報３１５は、外部記憶装置１１０を管理するために用いる６４Ｂの管理情報を格納する。管理情報３１５は、空きＭブロックを指示する空きＭブロックポインタ、及び空きＭブロック個数を含む。
空きＭブロックポインタは、未使用のＭブロックの１つを指示する。格納部２９０は、未使用のＭブロックを、空きＭブロックポインタにより先頭が指示される片方向リスト形式で記憶する。すなわち、格納部２９０は、未使用のＭブロック内に、次の未使用のＭブロックの番号を示すリンク情報を書き込むことにより、未使用のＭブロック同士を連結し、片方向リストとする。そして、格納部２９０は、未使用のＭブロックの片方向リストの先頭に位置するＭブロックの番号を、空きＭブロックポインタに格納する。格納部２９０は、対象データブロックをＭデータブロック記憶領域３２０に書き込む際に、例えば空きＭブロックのリストの先頭から必要な個数のＭブロックを使用してもよい。また、格納部２９０は、対象データブロックを半導体メモリ２００又はハードディスク２１０に書き込んだ結果不要となったＭブロックを、例えば空きＭブロックのリストの先頭に加えてもよい。また、格納部２９０は、連続する空きＭブロックを確保しやすくするために、例えば定期的に空きＭブロックの片方向リストをＭブロックの番号順に並べ変えてもよい。また、格納部２９０は、空きＭブロックをなるべく連続させる様に、例えば定期的に使用中のＭブロックを移動させてもよい。
【００４７】
空きＭブロック個数は、未使用のＭブロックの個数を格納する。格納部２９０は、空きＭブロックのリストから空きＭブロックを取得する際、又は空きＭブロックのリストに空きＭブロックを追加する際に、空きＭブロック個数を更新する。
【００４８】
以上に示した空きＭブロックの記憶方法に代えて、管理情報３１５は、例えば、各Ｍブロックに対応して、当該Ｍブロックが空きの場合に”１”となるビットを有するビットマップを用いる等の方法を用いて、空きＭブロックを記憶してもよい。
【００４９】
Ｍデータブロック記憶領域３２０は、半導体メモリ２００に格納されるＭブロックのデータ領域である。Ｍデータブロック記憶領域３２０は、本発明に係るデータブロック記憶領域の一例である。Ｍデータブロック記憶領域３２０は、６４ＢのＭブロックを３０Ｍ−１個格納する。従って、Ｍデータブロック記憶領域３２０の領域サイズは、１９２０ＭＢ−６４Ｂ（３０Ｍ×６４Ｂ−６４Ｂ）となる。Ｍブロックは、０〜Ｘ（ただし、Ｘ＝３０Ｍ−２）の番号が割り振られ、この番号を用いて識別される。
【００５０】
図５は、本発明の実施形態に係る位置テーブル３１０の一例を表形式により示す。位置テーブル３１０は、圧縮フラグ３１１、ＨＤＤフラグ３１２、パターン置換フラグ３１３、及び位置情報３１４の各フィールドを有する。ＨＤＤフラグ３１２、パターン置換フラグ３１３、及び位置情報３１４は、本発明に係る位置情報部の一例である。
【００５１】
圧縮フラグ３１１は、対象データブロックが圧縮されて格納されていない場合に”０”、圧縮されて格納されている場合に”１”を格納するフィールドである。
ＨＤＤフラグ３１２は、対象データブロックが半導体メモリ２００内のＭデータブロック記憶領域３２０に格納されている場合に”０”、ハードディスク２１０に格納されている場合に”１”を格納するフィールドである。
パターン置換フラグ３１３は、対象データブロックが特定のデータパターンを用いて記録された場合に”１”、特定のデータパターンを用いて記録されていない場合（すなわちＭデータブロック記憶領域３２０又はハードディスク２１０に格納されている場合）に”０”を格納するフィールドである。
位置情報３１４は、対象データブロックが特定のデータパターンを用いて記録されている場合に、データパターンの識別情報等を格納する。また、対象データブロックが１以上のＭブロックに格納されている場合に、位置情報３１４は、先頭のＭブロックの番号を格納する。一方、対象データブロックがＨブロックに格納されている場合は、対象データブロックは、位置テーブル３１０上のブロック番号で指定されるＨブロックに格納される。
【００５２】
以上に示した通り、位置テーブル３１０は、書込み対象のデータをＨブロック単位で分割した対象データブロックのそれぞれに対応付けて、対象データブロックに対応するデータパターンの識別情報等、又は、対象データブロックの格納位置を示す情報を格納する。すなわち、格納部２９０は、特定のデータパターンを用いて対象データブロックを格納する場合に、特定のデータパターンの識別情報等を位置情報３１４に格納する。一方、格納部２９０は、対象データブロックをＭデータブロック記憶領域３２０に格納する場合に、対象データブロックを格納する位置を示す情報として、ＨＤＤフラグ＝”０”（すなわち半導体メモリ２００内を示す）及びＭブロックの格納位置（Ｍブロックの番号）を位置テーブル３１０に格納する。また、格納部２９０は、対象データブロックをハードディスク２１０に格納する場合に、対象データブロックを格納する位置を示す情報として、ＨＤＤフラグ＝”１”（すなわちハードディスク２１０における対応するＨブロックを示す）を位置テーブル３１０に格納する。
【００５３】
格納部２９０は、図５の各行に例示した６通りの方法のいずれかを用いて対象データブロックを格納する。
（１）対象データブロックを圧縮し、Ｍデータブロック記憶領域３２０に格納する。（０番目）
格納部２９０は、対象データブロックを圧縮してＭデータブロック記憶領域３２０に格納する場合、圧縮フラグ３１１を”１”、ＨＤＤフラグ３１２を”０”、パターン置換フラグ３１３を”０”、位置情報３１４を対象データブロックを格納したＭデータブロック記憶領域３２０上のＭブロックの位置に設定する。
【００５４】
（２）対象データブロックを圧縮せず、Ｍデータブロック記憶領域３２０に格納する。（１番目）
格納部２９０は、対象データブロックを圧縮せずにＭデータブロック記憶領域３２０に格納する場合、圧縮フラグ３１１を”０”、ＨＤＤフラグ３１２を”０”、パターン置換フラグ３１３を”０”、位置情報３１４を対象データブロックを格納したＭデータブロック記憶領域３２０上のＭブロックの位置に設定する。
【００５５】
（３）対象データブロックを圧縮せず、ハードディスク２１０に格納する。（２番目）
格納部２９０は、対象データブロックを圧縮せずにハードディスク２１０に格納する場合、ＨＤＤフラグ３１２を”１”、パターン置換フラグ３１３を”０”に設定する。第２判断部２７３が対象データブロックをハードディスク２１０に格納すると判断した場合、割当部２８５及び格納部２９０は、対象データブロックを書込みアクセスで指定されたＨブロックに格納する。すなわち例えば、外部記憶装置１１０のブロック３に対象データブロックを書き込む書込みアクセスを受けた場合、割当部２８５及び格納部２９０は、ハードディスク２１０内の３番のＨブロックに対象データブロックを格納する。
【００５６】
（４）対象データブロックを特定のデータパターンを用いて記録する。（３番目）
格納部２９０は、対象データブロックを特定のデータパターンを用いて記録する場合、パターン置換フラグ３１３を”１”、位置情報３１４をデータパターンの識別情報等に設定する。
対象データブロックと、識別情報が「”００”＋５ｂｉｔ」であるデータパターンとが、一部のデータ値を除いて一致すると判断した場合、第１判断部２７２は、３番目の格納形式を選択する。この場合、格納部２９０は、不一致であるデータ値の対象データブロック内の位置を示すオフセット情報９ｂｉｔ、および不一致であるデータ値１Ｂを、当該データパターンの識別情報に対応付けて位置情報３１４に格納する。
読出しアクセスを受けると、まず、パターン置換部２９２は、識別情報に対応するデータパターンを登録部２７４から取得する。そして、パターン置換部２９２は、登録部２７４から取得したデータパターンにおける、位置情報３１４のオフセット情報で指定される位置のデータを、位置情報３１４のデータ値に置換する。これにより、パターン置換部２９２は、３番目の格納形式により格納された情報に基づき、対象データブロックを生成することができる。
この格納形式を用いれば、アクセス処理部２７７は、データパターンと任意の１Ｂが異なる対象データブロックを、当該データパターンを用いて格納することができる。
【００５７】
（５）対象データブロックを特定のデータパターンを用いて記録する。（４番目）
対象データブロックと、識別情報が「”０１”＋５ｂｉｔ」であるデータパターンとが、一部のデータ値を除いて一致すると判断した場合、第１判断部２７２は、４番目の格納形式を選択する。この場合、格納部２９０は、不一致である２つの１Ｂのデータ値を、当該データパターンの識別情報に対応付けて位置情報３１４に格納する。ここで、登録テーブル２７６は、識別情報が「”０１”＋５ｂｉｔ」であるデータパターンに対応付けて、対象データブロックにおける各データ値の位置を指定するオフセット情報を２個登録している。従って、第１判断部２７２は、登録テーブル２７６に登録されたオフセット情報で指定される位置のデータ値のみが不一致となる場合に、本格納形式を選択できる。
読出しアクセスを受けると、パターン置換部２９２は、識別情報に対応するデータパターン、第１データ値に対応する第１オフセット情報、及び第２データ値に対応する第２オフセット情報を登録部２７４から取得する。そして、パターン置換部２９２は、登録部２７４から取得したデータパターンにおける、登録部２７４から取得した第１オフセット情報で指定される位置のデータを第１データ値に、登録部２７４から取得した第２オフセット情報で指定される位置のデータを第２データ値にそれぞれ置換する。これにより、パターン置換部２９２は、４番目の格納形式により格納された情報に基づき、対象データブロックを生成することができる。
この格納形式を用いれば、アクセス処理部２７７は、データパターンに対してそれぞれ位置が指定された１Ｂのデータ値２つが異なる対象データブロックを、当該データパターンを用いて格納することができる。
【００５８】
（６）対象データブロックを特定のデータパターンを用いて記録する。（５番目）
特定の２Ｂのデータ値の繰り返しによるデータパターンを用いて対象データブロックを記録可能と判断した場合、第１判断部２７２は、５番目の格納形式を選択する。この場合、格納部２９０は、データパターン中で繰り返される２Ｂのデータ値に対応付けられた識別情報である「”１０”＋予備フィールド１４ｂｉｔ＋データ値２Ｂ」を、位置情報３１４に格納する。
読出しアクセスを受けると、パターン置換部２９２は、位置情報３１４から取得した２Ｂのデータ値を２５６個並べて対象データブロックを生成する。これにより、パターン置換部２９２は、５番目の格納形式により格納された情報に基づき、対象データブロックを生成することができる。
この格納形式を用いれば、アクセス処理部２７７は、特定のデータ値の繰り返しによる対象データブロックを、当該データパターンを用いて格納することができる。
【００５９】
以上のそれぞれの格納形式において、アクセス処理部２７７は、（１）〜（２）の場合には対象データブロックを格納するＭデータブロック記憶領域３２０の位置を示す情報を、（４）〜（６）の場合には対象データブロックに対応する識別情報を位置情報３１４に格納する。これにより、アクセス処理部２７７は、（１）〜（２）、及び（４）〜（６）を別個の記録領域に格納する場合と比較し、位置テーブル３１０の格納に要する記憶容量を低減できる。
【００６０】
以上に示した様に、本実施形態に係る外部記憶装置１１０は、対象データブロックとデータパターンとが不一致であるデータ値として、１Ｂのデータ値を用いる。また、本実施形態に係る外部記憶装置１１０は、特定のデータ値の繰り返しによるデータパターンを生成するために使用するデータ値として、２Ｂのデータ値を用いる。外部記憶装置１１０は、これらに代えて、４ｂｉｔ、４Ｂ、８Ｂ等の対象データブロック未満の任意の長さのデータ値を用いてもよい。ここで、位置テーブル３１０の記憶容量を抑えるためには、外部記憶装置１１０は、位置情報３１４に識別情報等が格納できる長さのデータ値を用いることが望ましい。
【００６１】
図６は、本発明の実施形態に係るハードディスク２１０のデータ構造を示す。ハードディスク２１０は、Ｈデータブロック記憶領域３４０及びバックアップ領域３４５を有する。
【００６２】
Ｈデータブロック記憶領域３４０は、ハードディスク２１０に格納されるＨブロックのデータ領域である。Ｈデータブロック記憶領域３４０は、５１２ＢのＨブロックを３２Ｍ個格納する。従って、Ｈデータブロック記憶領域３４０のサイズは、１６ＧＢ（３２Ｍ×５１２Ｂ）となる。Ｈブロックは、０〜Ｙ（ただし、Ｙ＝３２Ｍ−１）の番号が割り当てられ、この番号を用いて識別される。Ｈデータブロック記憶領域３４０は、計算機１２０からの書込みアクセスの対象データブロックを格納するために使用するハードディスク２１０上の領域である。本実施形態に係るＨデータブロック記憶領域３４０は、図２に示した外部記憶装置１１０のデータ構造と同一の構成をとる。容量管理部２４７は、計算機１２０から容量読出しアクセスを受信した場合に、Ｈデータブロック記憶領域３４０の領域の容量を示す容量情報を計算機１２０に返信する。以上の処理に代えて、容量管理部２４７は、Ｈデータブロック記憶領域３４０に格納されるファイルの管理に用いる領域を除いた容量を示す容量情報を計算機１２０に返信してもよい。
【００６３】
バックアップ領域３４５は、半導体メモリ２００内のデータのバックアップに用いられる領域である。外部記憶装置１１０の電源がＯＦＦにされる際に、格納部２９０は、半導体メモリ２００内のデータをバックアップ領域３４５に格納する。そして、外部記憶装置１１０の電源がＯＮになった際に、格納部２９０は、バックアップ領域３４５内のデータを半導体メモリ２００に格納する。
【００６４】
図７は、本発明の実施形態に係る登録テーブル２７６の一例を表形式により示す。登録テーブル２７６は、識別情報、データパターン、第１オフセット情報、第２オフセット情報、及び参照数の各フィールドを備える。
【００６５】
識別情報フィールドは、当該行のデータパターンを識別する識別情報を格納する。本格納形式に代えて、登録テーブル２７６は、登録テーブル２７６内の位置に基づき当該行に対応する識別情報を定めてもよい。
データパターンフィールドは、当該行のデータパターンを格納する。
第１オフセット情報及び第２オフセット情報フィールドは、第１判断部２７２及びパターン置換部２９２が、図５中の４番目の格納形式において使用する、不一致であるデータ値の対象データブロック内における位置を示す。
参照数フィールドは、外部記憶装置１１０が当該行のデータパターンを用いて格納した対象データブロックの個数を示す。第１判断部２７２は、登録テーブル２７６に登録されたデータパターンを用いて対象データブロックを格納した場合に、当該データパターンに対応する参照数を１増加させる。また、第１判断部２７２は、登録テーブル２７６に登録されたデータパターンを用いて格納されたデータブロックが、異なるデータブロックに置き換えられた場合に、当該データパターンに対応する参照数を１減少させる。
【００６６】
第１判断部２７２は、書込みの対象データブロックを新たなデータパターンとして登録部２７４に登録し、登録したデータパターンを用いて対象データブロックを記録可能とする機能を備える。書込み対象のデータブロックを登録部２７４に登録する場合、登録部２７４は、登録テーブル２７６内のデータパターンのうち、参照数が最小であると判断したデータパターンに対応する行を、登録するデータパターンに変更又は置換する。これにより、登録部２７４は、多く用いられているデータパターンを登録テーブル２７６内に残すことができる。
登録部２７４内のデータパターンが変更又は置換される場合、第１判断部２７２は、変更又は置換されるデータパターンを使用する全てのブロックを、Ｍデータブロック記憶領域３２０又はハードディスク２１０に格納させる。すなわち、第１判断部２７２は、変更又は置換されるデータパターンを使用するブロックを、位置テーブル３１０内の位置情報３１４から検索する。次に、第１判断部２７２は、格納部２９０及びパターン置換部２９２を介して当該データパターンに対応する対象データブロックを生成し、第２判断部２７３に送信する。そして、アクセス処理部２７７は、生成された対象データブロックを、圧縮部２８０、割当部２８５、及び格納部２９０を介してＭデータブロック記憶領域３２０又はハードディスク２１０に格納する。ここで、生成された対象データブロックをＭデータブロック記憶領域３２０に格納する場合、アクセス処理部２７７は、書込みアクセスの対象データブロックを格納する場合と同様の処理を行う。すなわち、アクセス処理部２７７は、生成された対象データブロックを、圧縮部２８０により圧縮してＭデータブロック領域３２０に格納してもよい。あるいは、アクセス処理部２７７は、生成された対象データブロックを、圧縮せずにＭデータブロック領域３２０に格納してもよい。
【００６７】
以上の処理に代えて、登録部２７４は、参照数が予め定められた値より小さいデータパターンを使用するブロックの参照数を０に近づける様に、例えば定期的に上記動作を行ってもよい。これにより、第１判断部２７２がデータパターンを登録部２７４に登録する処理時間を低減することができる。
【００６８】
図８は、本発明の実施形態に係る外部記憶装置１１０に格納されるデータの格納形式の一例を示す。格納部２９０は、図５に示した６通りの格納方法のいずれかを用いて、対象データブロックを格納する。ここで、Ｍデータブロック記憶領域３２０に対する格納方法（図５中の０番目及び１番目）は、以下に示す３通りの格納方法に細分できる。
（１−Ａ）対象データブロックを圧縮し、１個のＭブロックを用いて格納する。
対象データブロックのサイズが圧縮の結果６３Ｂ以下となった場合、割当部２８５及び格納部２９０は、対象データブロックを１個のＭブロックを用いて格納する。この場合、格納部２９０は、Ｍブロックを、Ｍブロック３３０ａに示す形式で格納する。
Ｍブロック３３０ａは、リンクフラグ１ｂｉｔ、サイズフィールド７ｂｉｔ、及びデータフィールド６３Ｂを含む。リンクフラグは、当該Ｍブロックが後続のＭブロックを指示するリンク情報を持つ場合に”１”となるフラグである。Ｍブロック３３０ａはリンク情報を持たないため、先頭１ｂｉｔは”０”である。サイズフィールド（図中ｓｚ）は、圧縮後の対象データブロックのサイズ（０〜６３Ｂ）を示す。データフィールド（図中ｄａｔａ）は、対象データブロックの格納領域である。
【００６９】
（１−Ｂ）対象データブロックを圧縮し、２以上のＭブロックを用いて格納する。
対象データブロックのサイズが圧縮の結果６４Ｂ以上となった場合、割当部２８５及び格納部２９０は、対象データブロックを２個以上のＭブロックを用いて格納する。この場合、格納部２９０は、Ｍブロックを、Ｍブロック３３０ｂ及びＭブロック３３０ｃに示す形式で格納する。
【００７０】
Ｍブロック３３０ｂは、対象データブロックの先頭に対応するＭブロックである。Ｍブロック３３０ｂは、リンクフラグ１ｂｉｔ、サイズフィールド９ｂｉｔ、データフィールド５８Ｂ、及びリンク情報４Ｂを含む。リンクフラグは、（１−Ａ）におけるリンクフラグと同様のフラグである。Ｍブロック３３０ｂはリンク情報を持つため、先頭１ｂｉｔは”１”である。サイズフィールド（図中ｓｚ）は、圧縮後の対象データブロックのサイズ（０〜５１２Ｂ）を示す。データフィールド（図中ｄａｔａ）は、対象データブロックのデータの格納領域である。リンクフィールド（図中ｌｉｎｋ）は、後続のＭブロックの番号を示す。
【００７１】
Ｍブロック３３０ｃは、対象データブロックの２番目以降に対応するＭブロックである。Ｍブロック３３０ｃは、データフィールド６０Ｂ、及びリンク情報４Ｂを含む。データフィールド（図中ｄａｔａ）は、対象データブロックの格納領域である。リンクフィールド（図中ｌｉｎｋ）は、後続のＭブロックの番号を示す。
【００７２】
この様に、対象データブロックを２以上のＭブロックを用いて格納する場合、格納部２９０は、サイズフィールドに示される圧縮後の対象データブロックのサイズに対応する個数のＭブロックを、リンク情報を用いた片方向リストとして格納する。すなわち、２以上のＭブロックを用いて対象データブロックをＭデータブロック記憶領域３２０に格納する場合に、格納部２９０は、対象データブロックを格納する１番目のＭブロックの位置を示す情報を位置テーブル３１０に格納し、対象データブロックを格納する複数のＭブロックのそれぞれに、各Ｍブロックの後続のＭブロックの位置を示す情報であるリンク情報を格納する。
【００７３】
（２）対象データブロックを圧縮せず、８個のＭブロックを用いて格納する。
圧縮部２８０が対象データブロックを圧縮しなかった場合、アクセス処理部２７７は、対象データブロックを連続する８個のＭブロックを用いて格納する。
【００７４】
以上に示した（１−Ａ）、（１−Ｂ）、及び（２）の格納方法に対応し、格納部２９０及び復元部２９７は、以下の方法を用いて、対象データブロックを読み出す。
（１−Ａ）読み出し対象のブロックに対応する圧縮フラグ＝１、ＨＤＤフラグ＝０、リンクフラグ＝０
格納部２９０は、読出し対象のブロックに対応する位置テーブル３１０内の位置情報で指定される１個のＭブロックを、半導体メモリ２００から読み出す。復元部２９７は、格納部２９０が読み出した対象データブロックを復元し、パターン置換部２９２及び通信インターフェイス２４５を介して計算機１２０に送信する。
（１−Ｂ）読み出し対象のブロックに対応する圧縮フラグ＝１、ＨＤＤフラグ＝０、リンクフラグ＝１
格納部２９０は、読出し対象のブロックに対応する位置テーブル３１０内の位置情報で指定される複数個のＭブロックを、リンク情報に基づき半導体メモリ２００から読み出す。復元部２９７は、格納部２９０が読み出した対象データブロックを復元し、パターン置換部２９２及び通信インターフェイス２４５を介して計算機１２０に送信する。
【００７５】
（２）読み出し対象のブロックに対応する圧縮フラグ＝０、ＨＤＤフラグ＝０
格納部２９０は、読出し対象のブロックに対応する位置テーブル３１０の位置情報で指定される、連続する８個のＭブロックを、半導体メモリ２００から読み出す。復元部２９７は、格納部２９０が読み出した対象データブロックを、パターン置換部２９２及び通信インターフェイス２４５を介して計算機１２０に送信する。
【００７６】
図９は、本発明の実施形態に係る外部記憶装置１１０のデータ書込処理の流れを示す。
計算機１２０は、例えば起動時又は外部記憶装置１１０の接続時等に、外部記憶装置１１０に対して容量読出しアクセスを送信する。容量管理部２４７は、ネットワーク１４０及び通信インターフェイス２４５を介して容量読出しアクセスを受信する（Ｓ７００）。次に、容量管理部２４７は、外部記憶装置１１０の記憶容量を示す容量情報を計算機１２０に返信する（Ｓ７０１）。
【００７７】
次に、判断部２７５は、ネットワーク１４０及び通信インターフェイス２４５を介して計算機１２０から書込みアクセスを受信する（Ｓ７０２）。次に、第１判断部２７２は、対象データブロックを特定のデータパターンを用いて記録可能かどうかを判断する（Ｓ７０３）。第１判断部２７２が特定のデータパターンを用いて対象データブロックを記録可能と判断した場合（Ｓ７０４）、アクセス処理部２７７は、対象データブロックの内容を外部記憶装置１１０内のＭデータブロック記憶領域３２０又はハードディスク２１０に格納するのに代えて、特定のデータパターンの識別情報等を位置テーブル３１０に格納する（Ｓ７５０）。
【００７８】
第１判断部２７２が、対象データブロックを特定のデータパターンを用いて記録不可能と判断した場合、第２判断部２７３は、対象データブロックをＭデータブロック記憶領域３２０に格納可能かどうかを判断する。すなわち、第２判断部２７３は、Ｍデータブロック記憶領域３２０の空きＭブロック数が８以上かどうかをチェックする（Ｓ７０５）。Ｍデータブロック記憶領域３２０の空きＭブロック数が８未満の場合、第２判断部２７３は、対象データブロックをハードディスク２１０に格納すると判断する。そして、格納部２９０は、圧縮部２８０及び割当部２８５を介して対象データブロックを取得して、計算機１２０からの書込みアクセスで指定されたブロック番号に対応するＨブロックに格納する（Ｓ７４０）。
【００７９】
一方、Ｍデータブロック記憶領域３２０の空きＭブロック数が８以上の場合、第２判断部２７３は、対象データブロックをＭデータブロック記憶領域３２０に格納すると判断する。次に、圧縮部２８０は、判断部２７５から対象データブロックを取得して圧縮する（Ｓ７１０）。次に、圧縮部２８０は、圧縮した対象データブロックの格納に要するＭブロックの数が７以下かどうかを判定する（Ｓ７１５）。圧縮した対象データブロックの格納に要するＭブロックの数が７以下の場合、圧縮部２８０は、圧縮した対象データブロックを、半導体メモリ２００に格納する対象データブロックとする（Ｓ７２０）。一方、圧縮した対象データブロックの格納に要するＭブロックの数が８以上の場合、圧縮部２８０は、元の対象データブロックを、Ｍデータブロック記憶領域３２０に格納する対象データブロックとする（Ｓ７２５）。
【００８０】
次に、割当部２８５は、圧縮部２８０から対象データブロックを取得して、対象データブロックに応じた個数のＭブロックに分割し、これらのＭブロックを割り当てる（Ｓ７３０）。次に、格納部２９０は、対象データブロックを割当部２８５が割り当てた個数のＭブロックに格納する（Ｓ７３５）。
【００８１】
次に、格納部２９０は、Ｓ７３５又はＳ７４０の処理内容に基づき位置テーブル３１０を更新する（Ｓ７４５）。
【００８２】
図１０は、本発明の実施形態に係る外部記憶装置１１０のデータ読出処理の流れを示す。
まず、格納部２９０は、通信インターフェイス２４５を介して計算機１２０から読出しアクセスを受信する（Ｓ８００）。次に、格納部２９０は、読出しアクセスの対象データブロックの格納位置を示す情報を、半導体メモリ２００上の位置テーブル３１０から読み出す（Ｓ８１０）。
【００８３】
次に、格納部２９０は、対象データブロックについてのパターン置換フラグが”１”かどうかを判定する（Ｓ８１５）。パターン置換フラグが”１”の場合、格納部２９０は、対象データブロックについての位置情報３１４等の情報を復元部２９７を介してパターン置換部２９２に転送する。パターン置換部２９２は、対象データブロックについての位置情報３１４等の情報に基づき、対象データブロックを生成し（Ｓ８１７）、通信インターフェイス２４５を介して計算機１２０に返信する（Ｓ８８０）。
【００８４】
Ｓ８１５でパターン置換フラグが”０”の場合、格納部２９０は、対象データブロックについてのＨＤＤフラグが”０”かどうかを判定する（Ｓ８２０）。ＨＤＤフラグが”０”でない場合、格納部２９０は、ハードディスク２１０から対象データブロックを読み出す（Ｓ８２５）。そして、格納部２９０は、対象データブロックをパターン置換部２９２に転送し、パターン置換部２９２にＳ８８０の処理を行わせる。
【００８５】
Ｓ８２０においてＨＤＤフラグが”０”の場合、格納部２９０は、対象データブロックについての圧縮フラグが”１”かどうかを判定する（Ｓ８３０）。圧縮フラグが”１”でない場合、格納部２９０は、位置情報で指定される連続する８個のＭブロックをＭデータブロック記憶領域３２０から読み出して、対象データブロックを取得する（Ｓ８３５）。そして、格納部２９０は、対象データブロックをパターン置換部２９２に転送し、パターン置換部２９２にＳ８８０の処理を行わせる。
【００８６】
Ｓ８３０において圧縮フラグが”１”の場合、格納部２９０は、位置情報で指定される先頭のＭブロックを読み出す（Ｓ８４０）。そして、格納部２９０は、先頭のＭブロックのリンクフラグが”０”かどうかを判定する（Ｓ８５０）。リンクフラグが”０”の場合、格納部２９０は、Ｓ８４０で取得したＭブロックを対象データブロックと見なして、パターン置換部２９２に転送する。
【００８７】
Ｓ８５０においてリンクフラグが”１”の場合、格納部２９０は、先頭のＭブロックのサイズフィールド、及び各Ｍブロックのリンクフィールドに基づき、片方向リストに含まれる複数のＭブロックを読み出す（Ｓ８６０）。そして、格納部２９０は、読み出した複数のＭブロックを対象データブロックと見なして、パターン置換部２９２に転送する。
【００８８】
次に、復元部２９７は、Ｓ８５０又はＳ８６０で格納部２９０から転送された対象データブロックを復元する（Ｓ８７０）。
【００８９】
次に、パターン置換部２９２は、Ｓ８１７、Ｓ８２５、Ｓ８３５、又はＳ８７０のいずれかの処理を行って得られた対象データブロックを、通信インターフェイス２４５を介して計算機１２０に送信する（Ｓ８８０）。
【００９０】
図１１は、本発明の実施形態に係る第１判断部２７２が有する、対象データブロックと特定のデータパターンの一致検出回路の構成を示す。第１判断部２７２内の一致検出回路は、データレジスタ１１００、一致検出回路Ａ１１６０、一致検出回路Ｂ１１７０、一致検出回路Ｃ１１８０、及び選択部１１５０を含む。
【００９１】
データレジスタ１１００は、書込みの対象データブロックの各データ値を通信インターフェイス２４５から受信し、一致検出回路Ａ１１６０、一致検出回路Ｂ１１７０、一致検出回路Ｃ１１８０、及び選択部１１５０に出力する。一致検出回路Ａ１１６０は、対象データブロックの先頭のデータ値の繰り返しによるデータパターン（識別情報の先頭２ｂｉｔ＝”１０”）を用いて対象データブロックを記録可能かを判断する。一致検出回路Ｂ１１７０は、対象データブロックとデータパターン（識別情報の先頭２ｂｉｔ＝”０１”）とが、登録テーブル２７６内の第１及び／又は第２オフセット情報で指定された位置にある２つの１Ｂのデータ値を除いて一致する場合に、当該データパターンを用いて対象データブロックを記録可能と判断する。一致検出回路Ｃ１１８０は、対象データブロックとデータパターン（識別情報の先頭２ｂｉｔ＝”００”）とが、任意の位置の１Ｂのデータ値を除いて一致する場合に、当該データパターンを用いて対象データブロックを記録可能と判断する。選択部１１５０は、一致検出回路Ａ１１６０による識別情報等、一致検出回路Ｂ１１７０による識別情報等、一致検出回路Ｃ１１８０による識別情報等、又は対象データブロックの内容のいずれを用いて対象データブロックを格納するかを選択する。
【００９２】
一致検出回路Ｂ１１７０は、登録テーブル２７６内に登録可能なデータパターン（識別情報の先頭２ｂｉｔ＝”０１”）のエントリそれぞれに対して１個ずつ割り当てられる。同様に、一致検出回路Ｃ１１８０は、登録テーブル２７６内に登録可能なデータパターン（識別情報の先頭２ｂｉｔ＝”００”）のエントリそれぞれに対して１個ずつ割り当てられる。図１１において、一致検出回路Ｂ１１７０及び一致検出回路Ｃ１１８０は、これらを代表してそれぞれ１個のみを図示する。
【００９３】
一致検出回路Ａ１１６０は、先頭データレジスタ１１０２、比較演算器１１１０、及び比較結果レジスタ１１１４を含む。
先頭データレジスタ１１０２は、対象データブロックの先頭のデータ値を格納する。
比較演算器１１１０は、データレジスタ１１００内の対象データブロックの各々のデータ値と、先頭データレジスタ１１０２のデータ値を比較する。比較演算器１１１０は、各データ値の比較毎に、一致した場合”０”、一致しなかった場合”１”を出力する。
比較結果レジスタ１１１４は、比較演算器１１１０による比較結果を、対象データブロック毎に累積する。すなわち、比較結果レジスタ１１１４は、データレジスタ１１００が対象データブロックの先頭のデータ値を入力した時点で”０”に設定される。そして、比較結果レジスタ１１１４は、対象データブロック全体の比較が終了するまで比較演算器１１１０の出力をＯＲ演算により累積する。
【００９４】
以上により、比較結果レジスタ１１１４は、対象データブロック内のいずれかのデータ値が先頭データレジスタ１１０２と不一致であった場合に”１”となる。
一致検出回路Ａ１１６０は、以上に示した様に、対象データブロックの先頭のデータ値と、対象データブロックの各データ値とを比較する。そして、これらが全て一致した場合、比較結果レジスタ１１１４は、一致したことを示す情報である”０”を出力する。また、先頭データレジスタ１１０２は、位置情報３１４に格納される情報である”１０”＋先頭のデータ値を出力する。
【００９５】
一致検出回路Ｂ１１７０は、比較演算器１１２０、比較結果レジスタ１１２４、及びデータ値レジスタ１１２６を含む。
比較演算器１１２０は、データレジスタ１１００内の対象データブロックのデータ値と、登録テーブル２７６内のデータパターン（識別情報の先頭２ｂｉｔ＝”０１”）の対応するデータ値を比較する。比較演算器１１２０は、各データ値の比較毎に、一致した場合”０”、一致しなかった場合”１”を出力する。
比較結果レジスタ１１２４は、比較演算器１１２０による比較結果を、対象データブロック毎に累積する。すなわち、比較結果レジスタ１１２４は、データレジスタ１１００が対象データブロックの先頭のデータ値を入力した時点で”０”に設定される。そして、比較結果レジスタ１１２４は、対象データブロック全体の比較が終了するまで比較演算器１１２０の出力をＯＲ演算により累積する。ここで、比較中のデータ値が登録部２７４の第１オフセット情報で指定されるデータ値である場合、比較結果レジスタ１１２４は、データレジスタ１１００のデータ値をデータ値レジスタ１１２６に第１データ値として格納する。また、比較中のデータ値が登録部２７４の第２オフセット情報で指定されるデータ値である場合、比較結果レジスタ１１２４は、データレジスタ１１００のデータ値をデータ値レジスタ１１２６に第２データ値として格納する。データレジスタ１１００のデータ値をデータ値レジスタ１１２６に格納した場合、比較結果レジスタ１１２４は、比較中のデータ値が一致したものと見なす。
【００９６】
以上により、比較結果レジスタ１１２４は、対象データブロックとデータパターンとが、登録テーブル２７６で指定された位置にある２つの１Ｂのデータ値を除いて一致する場合に”０”となる。
一致検出回路Ｂ１１７０は、以上に示した様に、対象データブロックと、登録テーブル２７６内のデータパターンとを比較する。そして、これらが登録テーブル２７６の第１及び第２オフセット情報で指定された位置のデータ値を除いて一致した場合、比較結果レジスタ１１２４は、一致したことを示す情報である”０”を出力する。また、一致検出回路Ｂ１１７０は、位置情報３１４に格納される情報である識別情報（先頭２ｂｉｔ＝”０１”）＋第１データ値＋第２データ値を出力する。
【００９７】
一致検出回路Ｃ１１８０は、比較演算器１１３０、比較結果レジスタ１１３４、データ値レジスタ１１３６及びオフセットレジスタ１１３８を含む。
比較演算器１１３０は、データレジスタ１１００による対象データブロックのデータ値と、登録テーブル２７６内のデータパターン（識別情報の先頭２ｂｉｔ＝”００”）の対応するデータ値を比較する。比較演算器１１３０は、各データ値の比較毎に、一致した場合”０”、一致しなかった場合”１”を出力する。
比較結果レジスタ１１３４は、比較演算器１１３０による比較結果を、対象データブロック毎に累積する。すなわち、比較結果レジスタ１１３４は、データレジスタ１１００が対象データブロックの先頭のデータ値を入力した時点で”０”に設定される。そして、比較結果レジスタ１１３４は、対象データブロック全体の比較が終了するまで比較演算器１１３０の出力をＯＲ演算により累積する。ここで、データ値が不一致であった場合、比較結果レジスタ１１３４は、不一致となったデータレジスタ１１００のデータ値をデータ値レジスタ１１３６に格納し、不一致となったデータ値の対象データブロック内の位置を示すオフセット情報をオフセットレジスタ１１３８に格納する。また、この場合、比較結果レジスタ１１２４は、比較中のデータ値が一致したものと見なす。この後、比較結果レジスタ１１３４は、対象データブロックについて不一致であるデータ値を再度検出した場合には、”１”を設定て不一致を記録する。
【００９８】
以上により、比較結果レジスタ１１３４は、対象データブロックとデータパターンとが、任意の位置にある１Ｂのデータ値を除いて一致する場合に、”０”となる。
一致検出回路Ｃ１１８０は、以上に示した様に、対象データブロックと、登録テーブル２７６内のデータパターンとを比較する。そして、これらが任意の位置の１Ｂのデータ値を除いて一致した場合、比較結果レジスタ１１３４は、一致したことを示す情報である”０”を出力する。また、一致検出回路Ｃ１１８０は、位置情報３１４に格納される情報である識別情報（先頭２ｂｉｔ＝”００”）＋オフセット情報＋データ値を出力する。
【００９９】
選択部１１５０は、一致検出回路Ａ１１６０、一致検出回路Ｂ１１７０、及び一致検出回路Ｃ１１８０による対象データブロックの一致検出処理が終了すると、比較結果レジスタ１１１４、比較結果レジスタ１１２４、及び比較結果レジスタ１１３４の出力に基づき対象データブロックの格納形式を選択する。すなわち、選択部１１５０は、比較結果レジスタ１１１４、比較結果レジスタ１１２４、及び比較結果レジスタ１１３４のいずれかが”０”の場合、対応する一致検出回路Ａ１１６０、一致検出回路Ｂ１１７０、及び一致検出回路Ｃ１１８０のいずれかが検出したデータパターンを用いて対象データブロックを格納する様格納部２９０に指示する。ここで、選択部１１５０は、比較結果レジスタ１１１４、比較結果レジスタ１１２４、及び比較結果レジスタ１１３４の複数が”０”の場合、予め定められた優先順位に従い、対応する一致検出回路Ａ１１６０、一致検出回路Ｂ１１７０、及び一致検出回路Ｃ１１８０のいずれが検出したデータパターンを用いるかを決定する。一方、選択部１１５０は、比較結果レジスタ１１１４、比較結果レジスタ１１２４、及び比較結果レジスタ１１３４の全てが”１”の場合、対象データブロックの内容をＭデータブロック記憶領域３２０又はハードディスク２１０に格納する様第２判断部２７３に指示する。
【０１００】
図１２は、本発明の実施形態に係る外部記憶装置１１０のハードウェア構成の一例を示す。本実施形態に係る外部記憶装置１１０の機能は、ＣＰＵ５１０、ＲＯＭ５２０、ＲＡＭ５３０、通信インターフェイス５４０、ハードディスクドライブ５５０、出力装置５８０、及び入力装置５８５を備える計算機５００と、計算機５００上で実行されるプログラムとの連携により実現される。計算機５００は、フロッピーディスクドライブ５６０及び／又はＣＤ−ＲＯＭドライブ５７０を更に備えてもよい。
【０１０１】
外部記憶装置１１０を実現するプログラムは、通信インターフェイスモジュールと、容量管理モジュールと、判断モジュールと、登録モジュールと、アクセス処理モジュールと、パターン置換モジュールとを備える。これらのモジュールは、計算機５００を、通信インターフェイス２４５、容量管理部２４７、判断部２７５、登録部２７４、アクセス処理部２７７、及びパターン置換部２９２として動作させるプログラムである。判断モジュールは、第１判断モジュールと、第２判断モジュールとを有する。これらのモジュールは、計算機５００を、第１判断部２７２、及び第２判断部２７３として動作させるプログラムである。アクセス処理モジュールは、圧縮モジュールと、割当モジュールと、格納モジュールと、復元モジュールとを有する。これらのモジュールは、計算機５００を、圧縮部２８０、割当部２８５、格納部２９０、及び復元部２９７として動作させるプログラムである。また、ＲＡＭ５３０及びハードディスクドライブ５５０は、それぞれ半導体メモリ２００及びハードディスク２１０の内容を格納する記録媒体として使用されてもよい。
【０１０２】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フロッピーディスク５９０、ＣＤ−ＲＯＭ５９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワーク１４０又は計算機１２０に接続されたネットワーク等を介してプログラムを計算機５００に提供してもよい。
【０１０３】
以上に示した様に、本実施形態に係る外部記憶装置１１０によれば、比較的小容量の半導体メモリ２００と、比較的大容量のハードディスク２１０とを組み合わせた記憶装置を提供することができる。この様な外部記憶装置は、外部の計算機等からは、特定の記憶容量を備える大容量ハードディスクとしてアクセス可能である。一方、外部記憶装置に格納されるデータブロックの多くを圧縮して半導体メモリ２００に格納するため、外部記憶装置１１０は、半導体メモリ２００に近いアクセス速度を実現できる。
【０１０４】
また、本実施形態に係る外部記憶装置１１０によれば、対象データブロックを、特定のデータパターンを用いて位置テーブル３１０内の位置情報３１４に格納することができる。外部記憶装置１１０は、特定のデータパターンを用いて位置テーブル３１０内の位置情報３１４に格納した対象データブロックについては、Ｍデータブロック記憶領域３２０又はハードディスク２１０にデータの内容を格納せずに記録することができる。
初期化データやファイルシステム管理領域等のデータを外部記憶装置１１０に書き込む場合においては、計算機１２０等は、同一又は略同一の内容を持つデータブロックを、外部記憶装置１１０の多数のブロックに書き込むことが多い。この場合、本実施の形態に係る外部記憶装置１１０は、同一又は略同一の内容を持つデータブロックをＭデータブロック記憶領域３２０内の多数のＭブロックに格納するのに代えて、これらのデータブロックに対応するデータパターンの識別情報等を位置テーブル３１０内の位置情報３１４に格納する。この結果、本実施形態に係る外部記憶装置１１０によれば、初期化の際にＭデータブロック記憶領域３２０に格納されるデータブロックの数を低減することができる。従って、外部記憶装置１１０は、より多くのデータブロックを半導体メモリ２００上に格納でき、半導体メモリ２００に近いアクセス速度を実現できる。
【０１０５】
また、特定のデータパターンを用いて対象データブロックを格納する機能を備えない場合、外部記憶装置は、初期化において初期化用のデータブロックの各々を、Ｍデータブロック記憶領域内の１以上のＭブロックに格納する。この結果、初期化が完了した時点で、Ｍデータブロック記憶領域内の全Ｍブロックが、初期化用のデータブロックを格納するために使用される。このため、外部記憶装置は、後に受けた書込みアクセスの対象データブロックのそれぞれに対して、初期化データとして格納した数より多くのＭブロックを割り当てることができず、当該対象データブロックをある割合でハードディスクに書き込むこととなる。従って、特定のデータパターンを用いて対象データブロックを格納する機能を備えない場合、外部記憶装置は、初期化用のデータブロックの影響を受けて、新たに書き込まれるデータブロックの平均アクセス速度を低下させてしまう。
一方、本実施形態に係る外部記憶装置１１０は、特定のデータパターンを用いて初期化用のデータブロックのほぼ全てを位置情報３１４に格納することができる。このため、外部記憶装置１１０は、初期化が完了した時点で、Ｍデータブロック記憶領域３２０をほぼ未使用とし、後に受けた書込みアクセスの対象データブロックをＭデータブロック記憶領域３２０に格納可能とすることができる。従って、本実施形態に係る外部記憶装置１１０は、Ｍデータブロック記憶領域３２０が満たされるまで新たに書き込まれたデータブロックをハードディスク２１０へ格納しないため、アクセス速度を高速に保つことができる。
【０１０６】
また、本実施形態に係る外部記憶装置１１０は、位置テーブル３１０内の位置情報３１４に格納されたデータブロックを、位置テーブル３１０を１回読み出すのみで取得できる。一方、外部記憶装置１１０は、Ｍデータブロック記憶領域３２０に格納されたデータブロックを、位置テーブル３１０を１回読み出して対象データブロックの格納位置を取得した後、Ｍデータブロック記憶領域３２０を１回以上読み出して対象データブロックを取得する。このため、データブロックの一部を特定のデータパターンを用いて位置テーブル３１０内の位置情報３１４に格納することにより、半導体メモリ２００の平均アクセス速度を高めることができる。
【０１０７】
また、本実施形態に係る外部記憶装置１１０によれば、ブロックサイズの異なる半導体メモリ２００及びハードディスク２１０を用いて対象データブロックを格納する方法を提供する。これにより、外部記憶装置１１０は、対象データブロックを、対象データブロックの内容等に応じた個数のＭブロックに格納するか、１個のＨブロックに格納するかを選択して格納することができる。この機能は、例えば半導体メモリ２００とハードディスク２１０のアクセス速度が同一であった場合においても、ファイルの末尾等の５１２Ｂ未満のデータを優先して半導体メモリ２００に格納することにより、記憶領域の使用効率を高める等の効果を生じる。
【０１０８】
以上の様に、本実施形態に係る外部記憶装置１１０は、半導体メモリを記録媒体とする外部記憶装置を、ハードディスクを記録媒体とする外部記憶装置の代替として用いるのに好適な機能を実現する。そして、本実施形態に係る外部記憶装置１１０は、ハードディスクが備える特長と、半導体メモリが備える特長とを兼ね備える。
【０１０９】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１１０】
以上に説明した実施形態によれば、以下の各項目に示す外部記憶装置、外部記憶装置制御方法、プログラム、及び記録媒体が実現される。
【０１１１】
（項目１）  外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、前記データブロックを、特定のデータパターンを用いて記録可能かどうかを判断する判断部と、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を格納するアクセス処理部とを備えることを特徴とする外部記憶装置。
【０１１２】
（項目２）  前記判断部は、前記データブロックと前記データパターンとが一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判定することを特徴とする項目１記載の外部記憶装置。
（項目３）  前記判断部は、前記データブロックと前記データパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断することを特徴とする項目１記載の外部記憶装置。
（項目４）  前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値を、前記識別情報に対応付けて格納することを特徴とする項目３記載の外部記憶装置。
（項目５）  前記データパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を更に備え、前記判断部は、前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断し、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、不一致である前記データ値を前記識別情報に対応付けて格納することを特徴とする項目３記載の外部記憶装置。
【０１１３】
（項目６）  前記データパターンは、特定のデータ値の繰り返しによるデータパターンであり、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記特定のデータ値に対応付けられた前記識別情報を格納することを特徴とする項目１記載の外部記憶装置。
（項目７）  前記判断部は、前記データブロックの先頭のデータ値を格納する先頭データレジスタを有し、前記データブロック内の各々のデータ値と、前記先頭データレジスタ内のデータ値との比較結果に基づき、前記データブロックの前記先頭のデータ値の繰り返しによる前記データパターンを用いて前記データブロックを記録可能かどうかを判断することを特徴とする項目６記載の外部記憶装置。
【０１１４】
（項目８）  前記データパターンを、当該データパターンを識別する前記識別情報に対応付けて登録する登録部を更に備え、前記判断部は、前記登録部が登録する前記データパターンを用いて前記データブロックを記録可能かどうかを判断し、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記登録部が登録する前記データパターンに対応付けられた前記識別情報を格納することを特徴とする項目１記載の外部記憶装置。
（項目９）  前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納するデータブロック記憶領域を更に備え、前記アクセス処理部は、前記登録部が登録する前記データパターンが変更される場合に、変更される前記データパターンを用いて格納している前記データブロックの内容を、変更される前記データパターンを用いて生成し、前記データブロック記憶領域に格納することを特徴とする項目８記載の外部記憶装置。
（項目１０）  前記登録部は、前記アクセス処理部が前記データパターンを用いて格納している前記データブロックの個数である参照数を、当該データパターンを識別する前記識別情報に対応付けて登録し、前記登録部に新たな前記データパターンが登録される場合に、前記登録部が登録する１以上の前記データパターンのうち、前記参照数が最小であると判断した前記データパターンを新たな前記データパターンに置換することを特徴とする項目９記載の外部記憶装置。
（項目１１）  前記データブロックを格納するデータブロック記憶領域を更に備え、前記アクセス処理部は、前記データブロックの格納位置を示す位置情報を格納する位置情報部を有し、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報を前記位置情報部に格納し、前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納することを特徴とする項目１記載の外部記憶装置。
【０１１５】
（項目１２）  外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、前記外部記憶装置に前記データブロックを書き込む場合に、前記データブロックを特定のデータパターンを用いて記録可能かどうかを判断する第１判断部と、前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを前記第１の記録媒体に格納可能かどうかを判断する第２判断部と、前記第１判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を前記第１の記録媒体内の識別情報記憶領域に格納し、前記第２判断部が前記データブロックを前記第１の記録媒体に格納可能と判断した場合に、前記データブロックを前記第１の記録媒体内のデータブロック記憶領域に格納し、前記第２判断部が前記データブロックを前記第１の記録媒体に格納不可能と判断した場合に、前記データブロックを前記第２の記録媒体に格納するアクセス処理部とを備え、前記外部記憶装置は、前記第１の記録媒体内の前記データブロック記憶領域の記憶容量と比較し大きい記憶容量の記憶領域を提供することを特徴とする外部記憶装置。
【０１１６】
（項目１３）  外部から前記外部記憶装置の記憶容量を示す容量情報の読み出しを要求する容量読出しアクセスを受信した場合に、前記第１の記録媒体内の前記データブロック記憶領域より大きい記憶容量を示す前記容量情報を返信する容量管理部を更に備えることを特徴とする項目１２記載の外部記憶装置。
（項目１４）  前記第２の記録媒体は、不揮発性の記録媒体であることを特徴とする項目１２記載の外部記憶装置。
（項目１５）  前記アクセス処理部は、前記データブロックを前記第１の記録媒体内の前記データブロック記憶領域に格納する場合に、前記データブロックを圧縮する圧縮部を有することを特徴とする項目１２記載の外部記憶装置。
【０１１７】
（項目１６）  外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記データブロックを、特定のデータパターンを用いて記録可能かどうかを判断し、前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を格納することを特徴とする外部記憶装置制御方法。
（項目１７）  外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、前記外部記憶装置に前記データブロックを書き込む場合に、前記データブロックを特定のデータパターンを用いて記録可能かどうかを判断し、前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを前記第１の記録媒体に格納可能かどうかを判断し、前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を前記第１の記録媒体内の識別情報記憶領域に格納し、前記データブロックを前記第１の記録媒体に格納可能と判断した場合に、前記データブロックを前記第１の記録媒体内のデータブロック記憶領域に格納し、前記データブロックを前記第１の記録媒体に格納不可能と判断した場合に、前記データブロックを前記第２の記録媒体に格納し、前記外部記憶装置は、前記第１の記録媒体内の前記データブロック記憶領域の記憶容量と比較し大きい記憶容量の記憶領域を提供することを特徴とする外部記憶装置制御方法。
【０１１８】
（項目１８）  外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、前記データブロックを、特定のデータパターンを用いて記録可能かどうかを前記外部記憶装置に判断させる判断モジュールと、前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を前記外部記憶装置に格納させるアクセス処理モジュールとを備えることを特徴とするプログラム。
（項目１９）  外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、前記外部記憶装置に前記データブロックを書き込む場合に、前記データブロックを特定のデータパターンを用いて記録可能かどうかを前記外部記憶装置に判断させる第１判断モジュールと、前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを前記第１の記録媒体に格納可能かどうかを前記外部記憶装置に判断させる第２判断モジュールと、前記第１判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納させるのに代えて、前記データパターンを識別する識別情報を前記第１の記録媒体内の識別情報記憶領域に格納させ、前記第２判断モジュールが前記データブロックを前記第１の記録媒体に格納可能と判断した場合に、前記データブロックを前記第１の記録媒体内のデータブロック記憶領域に格納させ、前記第２判断モジュールが前記データブロックを前記第１の記録媒体に格納不可能と判断した場合に、前記データブロックを前記第２の記録媒体に格納させるアクセス処理モジュールとを備え、前記外部記憶装置に、前記第１の記録媒体内の前記データブロック記憶領域の記憶容量と比較し大きい記憶容量の記憶領域を提供させることを特徴とするプログラム。
【０１１９】
（項目２０）  外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムを記録した記録媒体であって、前記プログラムは、前記データブロックを、特定のデータパターンを用いて記録可能かどうかを前記外部記憶装置に判断させる判断モジュールと、前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を前記外部記憶装置に格納させるアクセス処理モジュールとを備えることを特徴とする記録媒体。
（項目２１）  外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムを記録した記録媒体であって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、前記プログラムは、  前記外部記憶装置に前記データブロックを書き込む場合に、前記データブロックを特定のデータパターンを用いて記録可能かどうかを前記外部記憶装置に判断させる第１判断モジュールと、前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを前記第１の記録媒体に格納可能かどうかを前記外部記憶装置に判断させる第２判断モジュールと、前記第１判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納させるのに代えて、前記データパターンを識別する識別情報を前記第１の記録媒体内の識別情報記憶領域に格納させ、前記第２判断モジュールが前記データブロックを前記第１の記録媒体に格納可能と判断した場合に、前記データブロックを前記第１の記録媒体内のデータブロック記憶領域に格納させ、前記第２判断モジュールが前記データブロックを前記第１の記録媒体に格納不可能と判断した場合に、前記データブロックを前記第２の記録媒体に格納させるアクセス処理モジュールとを備え、前記外部記憶装置に、前記第１の記録媒体内の前記データブロック記憶領域の記憶容量と比較し大きい記憶容量の記憶領域を提供させることを特徴とする記録媒体。
【０１２０】
【発明の効果】
上記説明から明らかなように、本発明によれば記録媒体の使用効率を高め、又、複数の記録媒体を備えてこれらの特長を兼備する外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体を提供することができる。
【図面の簡単な説明】
【図１】  本発明の実施形態に係る計算機システム１００の構成の一例を示す図。
【図２】  本発明の実施形態に係る外部記憶装置１１０が提供する記憶領域のデータ構造を示す図。
【図３】  本発明の実施形態に係る外部記憶装置１１０の構成を示す図。
【図４】  本発明の実施形態に係る半導体メモリ２００のデータ構造を示す図。
【図５】  本発明の実施形態に係る位置テーブル３１０の一例を表形式により示す図。
【図６】  本発明の実施形態に係るハードディスク２１０のデータ構造を示す図。
【図７】  本発明の実施形態に係る登録テーブル２７６の一例を表形式により示す図。
【図８】  本発明の実施形態に係る外部記憶装置１１０に格納されるデータの格納形式の一例を示す図。
【図９】  本発明の実施形態に係る外部記憶装置１１０のデータ書込処理の流れ図。
【図１０】  本発明の実施形態に係る外部記憶装置１１０のデータ読出処理の流れ図。
【図１１】  本発明の実施形態に係る第１判断部２７２が有する、対象データブロックとデータパターンの一致検出回路の構成を示す図。
【図１２】  本発明の実施形態に係る外部記憶装置１１０のハードウェア構成の一例を示す図。
【符号の説明】
１００  計算機システム
１１０  外部記憶装置
１２０  計算機
１４０  ネットワーク
２００  半導体メモリ
２１０  ハードディスク
２４５  通信インターフェイス
２４７  容量管理部
２７２  第１判断部
２７３  第２判断部
２７４  登録部
２７５  判断部
２７６  登録テーブル
２７７  アクセス処理部
２８０  圧縮部
２８５  割当部
２９０  格納部
２９２  パターン置換部
２９７  復元部
３１０  位置テーブル
３１１  圧縮フラグ
３１２  ＨＤＤフラグ
３１３  パターン置換フラグ
３１４  位置情報
３１５  管理情報
３２０  Ｍデータブロック記憶領域
３３０ａ〜ｃ  Ｍブロック
３４０  Ｈデータブロック記憶領域
３４５  バックアップ領域
３５０  Ｈブロック
５００  計算機
５１０  ＣＰＵ
５２０  ＲＯＭ
５３０  ＲＡＭ
５４０  通信インターフェイス
５５０  ハードディスクドライブ
５６０  フロッピーディスクドライブ
５７０  ＣＤ−ＲＯＭドライブ
５８０  出力装置
５８５  入力装置
５９０  フロッピーディスク
５９５  ＣＤ−ＲＯＭ
１１００  データレジスタ
１１０２  先頭データレジスタ
１１１０  比較演算器
１１１４  比較結果レジスタ
１１２０  比較演算器
１１２４  比較結果レジスタ
１１２６  データ値レジスタ
１１３０  比較演算器
１１３４  比較結果レジスタ
１１３６  データ値レジスタ
１１３８  オフセットレジスタ
１１５０  選択部
１１６０  一致検出回路Ａ
１１７０  一致検出回路Ｂ
１１８０  一致検出回路Ｃ
【図１】
0003723960.tif 000002
【図２】
0003723960.tif 000003
【図３】
0003723960.tif 000004
【図４】
0003723960.tif 000005
【図５】
0003723960.tif 000006
【図６】
0003723960.tif 000007
【図７】
0003723960.tif 000008
【図８】
0003723960.tif 000009
【図９】
0003723960.tif 000010
【図１０】
0003723960.tif 000011
【図１１】
0003723960.tif 000012
【図１２】
0003723960.tif 000013