JP3723960B2 - 外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体 - Google Patents

外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP3723960B2
JP3723960B2 JP2001353775A JP2001353775A JP3723960B2 JP 3723960 B2 JP3723960 B2 JP 3723960B2 JP 2001353775 A JP2001353775 A JP 2001353775A JP 2001353775 A JP2001353775 A JP 2001353775A JP 3723960 B2 JP3723960 B2 JP 3723960B2
Authority
JP
Japan
Prior art keywords
data
data block
storage device
external storage
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001353775A
Other languages
English (en)
Other versions
JP2003167679A (ja
Inventor
伸宜 田中
明宏 小倉
篤也 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2001353775A priority Critical patent/JP3723960B2/ja
Priority to US10/298,413 priority patent/US7062603B2/en
Publication of JP2003167679A publication Critical patent/JP2003167679A/ja
Application granted granted Critical
Publication of JP3723960B2 publication Critical patent/JP3723960B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • G11B2020/1285Status of the record carrier, e.g. space bit maps, flags indicating a formatting status or a write permission
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1291Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
    • G11B2020/1292Enhancement of the total storage capacity
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1291Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
    • G11B2020/1294Increase of the access speed
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Description

【0001】
【発明の属する技術分野】
本発明は、外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体に関する。特に本発明は、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体に関する。
【0002】
【従来の技術】
従来、外部記憶装置を実現する記録媒体として、ハードディスクが多用されている。ハードディスクは、低いビット単価、大容量、不揮発性等の特長を備える。一方、ハードディスクは、ディスクの回転や磁気ヘッドの移動等の機械的な動作によりデータを読み書きする記録媒体であるため、電気的にデータを読み書きする半導体メモリ等と比較しアクセス速度が遅いという欠点がある。
【0003】
このため、高速アクセスが要求される計算機システム向けに、半導体メモリを記録媒体とする外部記憶装置が提供されている。この様な外部記録装置を実現する技術は、例えば特開2000−29636に開示されている。特開2000−29636は、データを圧縮して書き込む半導体ディスク装置を提供する。
【0004】
【発明が解決しようとする課題】
以上に示した特開2000−29636においては、データを圧縮して半導体ディスク装置のビット単価を低減する。しかし、データ圧縮の効率は圧縮するデータの内容に応じて異なることから、圧縮機能を付加するのみでは半導体ディスク装置が備える半導体メモリより大きい特定の記憶容量の外部記憶装置として提供するのが難しい。
【0005】
また、半導体メモリを記録媒体とする外部記憶装置を、ハードディスクを記録媒体とする外部記憶装置の代替として用いる場合、ハードディスクが備える特長を可能な限り半導体メモリを記録媒体とする外部記憶装置において実現することが望ましい。
【0006】
そこで本発明は、上記の課題を解決することのできる外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【0007】
【課題を解決するための手段】
即ち、本発明の第1の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断部と、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを格納するアクセス処理部とを備えることを特徴とする外部記憶装置を提供する。
【0008】
前記データパターンは、特定のデータ値の繰り返しによるデータパターンであってよく、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記特定のデータ値に対応付けられた前記識別情報と、前記オフセット情報及び不一致である前記データ値とを格納してもよい。
【0009】
前記データパターンを、当該データパターンを識別する前記識別情報に対応付けて登録する登録部を更に備え、前記判断部は、前記登録部が登録する前記データパターンを用いて前記データブロックを記録可能かどうかを判断し、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記登録部が登録する前記データパターンに対応付けられた前記識別情報と、前記オフセット情報及び不一致である前記データ値とを格納してもよい。
【0010】
前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納するデータブロック記憶領域を更に備え、前記アクセス処理部は、前記登録部が登録する前記データパターンが変更される場合に、変更される前記データパターンを用いて格納している前記データブロックの内容を、変更される前記データパターンを用いて生成し、前記データブロック記憶領域に格納してもよい。
【0011】
前記登録部は、前記アクセス処理部が前記データパターンを用いて格納している前記データブロックの個数である参照数を、当該データパターンを識別する前記識別情報に対応付けて登録し、前記登録部に新たな前記データパターンが登録される場合に、前記登録部が登録する1以上の前記データパターンのうち、前記参照数が最小であると判断した前記データパターンを新たな前記データパターンに置換してもよい。
【0012】
前記データブロックを格納するデータブロック記憶領域を更に備え、前記アクセス処理部は、前記データブロックの格納位置を示す位置情報を格納する位置情報部を有し、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、前記オフセット情報及び不一致である前記データ値とを前記位置情報部に格納し、前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納してもよい。
【0013】
本発明の第2の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部と、前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断部と、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを格納するアクセス処理部とを備えることを特徴とする外部記憶装置を提供する。
【0014】
本発明の第3の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断ステップと、前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを格納するアクセス処理ステップとを備えることを特徴とする外部記憶装置制御方法を提供する。
【0015】
本発明の第4の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を備え、前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断ステップと、前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを格納することを特徴とする外部記憶装置制御方法を提供する。
【0016】
本発明の第5の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と前記外部記憶装置に判断させる判断モジュールと、前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを前記外部記憶装置に格納させるアクセス処理モジュールとを備えることを特徴とするプログラムを提供する。
【0017】
本発明の第6の形態によると、外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、前記外部記憶装置は、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を備え、前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と前記外部記憶装置に判断させる判断モジュールと、前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを前記外部記憶装置に格納させるアクセス処理モジュールとを備えることを特徴とするプログラムを提供する。
【0018】
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【0019】
【発明の実施の形態】
以下、発明の実施形態を通じて本発明を説明するが、実施形態はクレームにかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0020】
図1は、本発明の実施形態に係る計算機システム100の構成の一例を示す。本実施形態に係る計算機システム100は、外部記憶装置110、計算機120、及びネットワーク140を備える。
【0021】
外部記憶装置110は、計算機120等の外部の装置から受け取ったファイル等のデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置である。本実施形態に係る外部記憶装置110は、16GBの容量を備える。また、本実施形態に係る外部記憶装置110は、第1の記録媒体として2GBの揮発性の半導体メモリを、第2の記録媒体として18GBの不揮発性の記録媒体を用いる。外部記憶装置110は、第1の記録媒体として、SRAMやDRAM等の揮発性の半導体メモリ、フラッシュメモリやICカードメモリ等の不揮発性の半導体メモリ、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、ハードディスク等の磁気記録媒体、テープ媒体等を用いてもよい。同様に、外部記憶装置110は、第2の記録媒体として、SRAMやDRAM等の揮発性の半導体メモリ、フラッシュメモリやICカードメモリ等の不揮発性の半導体メモリ、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、ハードディスク等の磁気記録媒体、テープ媒体等を用いてもよい。ただし、本実施形態に係る外部記憶装置110の機能の一部は、第1の記録媒体より第2の記録媒体のアクセス速度が遅い場合に好適である。また、本実施形態に係る外部記憶装置110の機能の一部は、第1の記録媒体が揮発性である場合に好適である。
【0022】
計算機120は、プログラムを実行し、プログラムの指示に従いネットワーク140を介して外部記憶装置110をアクセスする。
【0023】
ネットワーク140は、外部記憶装置110と計算機120を接続するローカルエリアネットワークである。ネットワーク140は、ローカルエリアネットワークに代えて、例えばインターネットや電話回線等の公衆回線網、SAN(Server Area Network)等の専用通信網による種々のネットワーク、及びこれらの組合せであってよい。また、計算機120は、IDE接続、E−IDE接続、SCSI接続、USB接続、ファイバーチャネル接続等を用いて、ネットワーク140を介さず直接外部記憶装置110を接続してもよい。
【0024】
図2は、本発明の実施形態に係る外部記憶装置110が計算機120に対して提供する記憶領域のデータ構造を示す。本実施形態において、外部記憶装置110は、512B(Byte)のブロック単位でデータを格納する。これに代えて、外部記憶装置110は、例えば、256B、1024B、2048B等の他の大きさのブロックを用いてもよい。
計算機120は、外部記憶装置110を、512Bのブロックを32M個(Mega個)有する、16GB(512Byte×32Mega個=16GigaByte)の記憶容量を備える記憶装置と見なしてアクセスする。一方、外部記憶装置110において、第1の記録媒体内にデータブロックを格納するために用いるデータブロック記憶領域は、第1の記録媒体より小さい記憶容量を備える。従って、外部記憶装置110は、データブロック記憶領域の記憶容量より大きい記憶容量の記憶領域を計算機120に提供する。
【0025】
計算機120は、外部記憶装置110へのアクセスの一例として、外部記憶装置110内の特定のブロックに対して512Bのデータブロックを書き込む書込みアクセス、外部記憶装置110内の特定のブロックから512Bのデータブロックを読み出す読出しアクセス、及び外部記憶装置110の記憶容量を示す容量情報の読み出しを要求する容量読出しアクセスを用いる。また、計算機120は、512B未満のデータを外部記憶装置110に書き込む場合には、書き込むデータのサイズ指定を書込みアクセスに含める。外部記憶装置110及び計算機120は、これらのアクセスに加え、ブロックの整数倍等のクラスタ単位のアクセス等をサポートしてもよい。
【0026】
図3は、本発明の実施形態に係る外部記憶装置110の構成を示す。本発明の実施形態に係る外部記憶装置110は、半導体メモリ200、ハードディスク210、通信インターフェイス245、容量管理部247、判断部275、登録部274、アクセス処理部277及びパターン置換部292を備える。半導体メモリ200は、本発明に係る第1の記録媒体の一例である。ハードディスク210は、本発明に係る第2の記録媒体の一例である。
【0027】
半導体メモリ200は、揮発性の半導体メモリによる記録媒体である。本実施形態において半導体メモリ200は、2GBの容量を備える。半導体メモリ200は、位置テーブル310及びMデータブロック記憶領域320を有する。
【0028】
位置テーブル310は、外部記憶装置110に格納されたデータブロックの格納位置を示す4Bの情報を、図2に示した外部記憶装置110のブロックのそれぞれに対応付けて格納する。
【0029】
Mデータブロック記憶領域320は、データブロックの内容を半導体メモリ200に格納するためのデータ領域である。本実施形態に係るMデータブロック記憶領域320は、計算機120から受け取ったデータを、64BのブロックであるMブロック(メモリブロック)に分割して格納する。
【0030】
ハードディスク210は、不揮発性の記録媒体である。本実施形態に係るハードディスク210は、半導体メモリ200よりアクセス速度が遅い。本実施形態に係るハードディスク210は、計算機120から受け取ったデータを、512BのブロックであるHブロック(ハードディスクブロック)に分割して格納する。また、本実施形態に係るハードディスク210は、18GBの容量を持つものとする。
【0031】
通信インターフェイス245は、計算機120からのアクセスに関する送受信処理を行う。
【0032】
容量管理部247は、ネットワーク140を介して計算機120から容量読出しアクセスを受信した場合に、半導体メモリ200内のMデータブロック記憶領域320の記憶容量より大きい記憶容量を示す容量情報を計算機120に返信する。本実施形態に係る外部記憶装置110は、図2に示した様に、16GBの記憶容量を備える。従って、容量管理部247は、半導体メモリ200の記憶容量2GBより大きい16GBの記憶容量を示す容量情報を、計算機120に返信する。
ここで、容量情報は、記憶容量そのものでなく、記憶容量の算出に用いられるパラメータ値であってもよい。例えば、容量情報は、記憶容量そのものに代えて、ブロック数、セクタ数、トラック数、シリンダ数、及び/又はブロックサイズ等を含む情報であってもよい。また、例えば、計算機120と外部記憶装置110がSCSI接続されている場合、計算機120は、容量読出しアクセスの一例であるRead Capacityコマンドを用いて、外部記憶装置110のブロック数とブロックサイズを取得してもよい。
【0033】
判断部275は、計算機120からデータブロックの書込みアクセスを受信すると、書込みの対象データブロックを位置テーブル310、Mデータブロック記憶領域320、及びハードディスク210のいずれに格納するかを判断する。判断部275は、第1判断部272と第2判断部273とを有する。
【0034】
第1判断部272は、計算機120からデータブロックの書込みアクセスを受信すると、対象データブロックを特定のデータパターンを用いて記録可能かどうかを判断する。本実施形態に係る第1判断部272は、データパターンとして、登録部274内の登録テーブル276に格納されたデータパターン、及び特定のデータ値の繰り返しによるデータパターンを用いる。また、第1判断部272は、登録部274に書込みの対象データブロックを登録し、対象データブロックを、登録したデータパターンを用いて記録可能とする機能を備える。対象データブロックを特定のデータパターンを用いて記録可能と判断した場合、第1判断部272は、対象データブロックの内容をMデータブロック記憶領域320又はハードディスク210に格納するのに代えて、対象データブロックに対応するデータパターンを識別する情報である識別情報等を、アクセス処理部277内の位置テーブル310に格納する様格納部290に指示する。
【0035】
第2判断部273は、第1判断部272が特定のデータパターンを用いて書込みの対象データブロックを記録不可能と判断した場合に、書込みの対象データブロックを半導体メモリ200内のMデータブロック記憶領域320に格納可能かどうかを判断する。すなわち、まず第2判断部273は、半導体メモリ200内のMデータブロック記憶領域320の空きMブロック数を、アクセス処理部277内の格納部290から取得する。次に、第2判断部273は、半導体メモリ200の空きMブロック数が8以上(すなわち、データブロック512Bを圧縮無しに格納できるMブロックの個数以上)の場合に、対象データブロックを半導体メモリ200内のMデータブロック記憶領域320に格納可能と判断する。これに代えて、第2判断部273は、まず対象データブロックをアクセス処理部277内の圧縮部280に圧縮させ、圧縮された対象データブロックを格納できる数の空きブロックが存在するかどうかに基づき本判定を行ってもよい。
【0036】
登録部274は、第1判断部272が使用するデータパターンを、当該データパターンを識別する識別情報に対応付けて登録する。登録部274は、第1判断部272及びパターン置換部292が用いるデータパターン等の情報を登録する登録テーブル276を有する。本実施形態に代えて、登録部274は、登録テーブル276を半導体メモリ200又はハードディスク210上に格納してもよい。
【0037】
アクセス処理部277は、圧縮部280、割当部285、格納部290、復元部297、及び位置テーブル310を含む。
【0038】
圧縮部280は、半導体メモリ200内のMデータブロック記憶領域320に格納すると判断された対象データブロックを、例えばランレングス符号化、Huffman符号化、又はZip−Lempel符号化等の圧縮アルゴリズムを用いて圧縮する。圧縮アルゴリズムや対象データブロックの内容等によっては、圧縮した対象データブロックの格納に8以上のMブロックを要し、対象データブロックを圧縮する効果が得られない場合がある。この様な場合には、圧縮部280は、対象データブロックを圧縮しないまま割当部285に渡す。本実施形態に係る圧縮部280は、ハードディスク210に格納すると判断された対象データブロックについては圧縮を行わない。
【0039】
割当部285は、半導体メモリ200内のMデータブロック記憶領域320に格納すると判断された対象データブロックを、対象データブロックに応じた個数のMブロックに分割し、Mブロックを割り当てる。すなわち、割当部285は、圧縮部280により圧縮されなかった512Bの対象データブロックを、64BのMブロック8個に分割する。一方、割当部285は、圧縮部280により圧縮された対象データブロックを、圧縮後のサイズに応じた個数のMブロックに分割する。また、割当部285は、512B未満のデータを書き込む書込みアクセスに対しては、対象データブロックの格納に必要な個数のMブロックに分割する。すなわち、対象データブロックの一部が未使用である場合に、対象データブロックの使用部分をMブロックに分割する。
【0040】
格納部290は、半導体メモリ200及びハードディスク210に対するアクセスの制御を行う。
格納部290は、対象データブロックの識別情報等を、アクセス処理部277内の位置テーブル310に格納する様第1判断部272から指示を受けると、指示に従い対象データブロックの識別情報等を位置テーブル310に格納する。
また、格納部290は、書込みアクセスにおいて、半導体メモリ200内のMデータブロック記憶領域320に格納すると判断された対象データブロックを、割当部285が割り当てた1以上のMブロックに格納する。また、格納部290は、書込みアクセスにおいて、ハードディスク210に格納すると判断された対象データブロックをハードディスク210に格納する。
【0041】
また、格納部290は、通信インターフェイス245を介して読出しアクセスを受信すると、対象データブロックを位置テーブル310、Mデータブロック記憶領域320又はハードディスク210のいずれかより読み出し復元部297に送付する。具体的には、格納部290は、読出しアクセスを受信した場合に、位置テーブル310を参照し、読出し対象のデータである対象データブロックが、半導体メモリ200及びハードディスク210のいずれに格納されているかを判断する。そして、格納部290は、対象データブロックが位置テーブル310内の識別情報として格納されている場合、位置テーブル310から対象データブロックに対応する識別情報等を取得し、復元部297を介してパターン置換部292に転送する。
また、格納部290は、対象データブロックが半導体メモリ200内のMデータブロック記憶領域320に格納されている場合には、対象データブロックを半導体メモリ200内のMデータブロック記憶領域320から読み出す。一方、格納部290は、対象データブロックがハードディスク210に格納されている場合には、対象データブロックをハードディスク210から読み出す。そして、格納部290は、復元部297に対象データブロックを転送する。
【0042】
復元部297は、半導体メモリ200内のMデータブロック記憶領域320から読み出された読出しアクセスの対象データブロックが圧縮されている場合、対象データブロックを復元する。そして、復元部297は、読出しアクセスの対象データブロックを、パターン置換部292を介して計算機120に返信する。一方、格納部290から対象データブロックに対応する識別情報等を受信した場合、復元部297は、受信した識別情報等をパターン置換部292に転送する。
【0043】
パターン置換部292は、復元部297を介して格納部290から対象データブロックに対応する識別情報等を取得する。そして、パターン置換部292は、取得した識別情報に対応するデータパターンに基づき対象データブロックを生成する。ここで、パターン置換部292は、識別情報が登録部274内の登録テーブル276に登録されたデータパターンを指定している場合、登録部274から対応するデータパターン等を取得し対象データブロックを生成する。
一方、パターン置換部292は、読出しの対象データブロックを復元部297から受信すると、読み出しの対象データブロックを通信インターフェイス245に転送する。
【0044】
図4は、本発明の実施形態に係る半導体メモリ200のデータ構造を示す。半導体メモリ200は、位置テーブル310、管理情報315、及びMデータブロック記憶領域320を有する。
【0045】
位置テーブル310は、外部記憶装置110に格納されたデータブロックの格納位置を示す4Bの情報を、図2に示した外部記憶装置110のブロックのそれぞれに対応付けて格納する。位置テーブル310は、外部記憶装置110の各ブロックに対応して32M個のエントリを有し、128MB(4B×32Mエントリ)の領域サイズをとる。各エントリの4Bの情報は、データブロックが半導体メモリ200内のMデータブロック記憶領域320及びハードディスク210のいずれに格納されたかを示す情報、データブロックが圧縮されているかどうかを示す情報、データブロックが特定のデータパターンを用いて記録されているかどうかを示す情報、及びデータブロックが格納されたMブロックの番号を示す情報を含む。本実施形態に代えて、格納部290は、位置テーブル310及び/又は管理情報315を、半導体メモリ200とは異なる記録媒体に格納してもよい。
【0046】
管理情報315は、外部記憶装置110を管理するために用いる64Bの管理情報を格納する。管理情報315は、空きMブロックを指示する空きMブロックポインタ、及び空きMブロック個数を含む。
空きMブロックポインタは、未使用のMブロックの1つを指示する。格納部290は、未使用のMブロックを、空きMブロックポインタにより先頭が指示される片方向リスト形式で記憶する。すなわち、格納部290は、未使用のMブロック内に、次の未使用のMブロックの番号を示すリンク情報を書き込むことにより、未使用のMブロック同士を連結し、片方向リストとする。そして、格納部290は、未使用のMブロックの片方向リストの先頭に位置するMブロックの番号を、空きMブロックポインタに格納する。格納部290は、対象データブロックをMデータブロック記憶領域320に書き込む際に、例えば空きMブロックのリストの先頭から必要な個数のMブロックを使用してもよい。また、格納部290は、対象データブロックを半導体メモリ200又はハードディスク210に書き込んだ結果不要となったMブロックを、例えば空きMブロックのリストの先頭に加えてもよい。また、格納部290は、連続する空きMブロックを確保しやすくするために、例えば定期的に空きMブロックの片方向リストをMブロックの番号順に並べ変えてもよい。また、格納部290は、空きMブロックをなるべく連続させる様に、例えば定期的に使用中のMブロックを移動させてもよい。
【0047】
空きMブロック個数は、未使用のMブロックの個数を格納する。格納部290は、空きMブロックのリストから空きMブロックを取得する際、又は空きMブロックのリストに空きMブロックを追加する際に、空きMブロック個数を更新する。
【0048】
以上に示した空きMブロックの記憶方法に代えて、管理情報315は、例えば、各Mブロックに対応して、当該Mブロックが空きの場合に”1”となるビットを有するビットマップを用いる等の方法を用いて、空きMブロックを記憶してもよい。
【0049】
Mデータブロック記憶領域320は、半導体メモリ200に格納されるMブロックのデータ領域である。Mデータブロック記憶領域320は、本発明に係るデータブロック記憶領域の一例である。Mデータブロック記憶領域320は、64BのMブロックを30M−1個格納する。従って、Mデータブロック記憶領域320の領域サイズは、1920MB−64B(30M×64B−64B)となる。Mブロックは、0〜X(ただし、X=30M−2)の番号が割り振られ、この番号を用いて識別される。
【0050】
図5は、本発明の実施形態に係る位置テーブル310の一例を表形式により示す。位置テーブル310は、圧縮フラグ311、HDDフラグ312、パターン置換フラグ313、及び位置情報314の各フィールドを有する。HDDフラグ312、パターン置換フラグ313、及び位置情報314は、本発明に係る位置情報部の一例である。
【0051】
圧縮フラグ311は、対象データブロックが圧縮されて格納されていない場合に”0”、圧縮されて格納されている場合に”1”を格納するフィールドである。
HDDフラグ312は、対象データブロックが半導体メモリ200内のMデータブロック記憶領域320に格納されている場合に”0”、ハードディスク210に格納されている場合に”1”を格納するフィールドである。
パターン置換フラグ313は、対象データブロックが特定のデータパターンを用いて記録された場合に”1”、特定のデータパターンを用いて記録されていない場合(すなわちMデータブロック記憶領域320又はハードディスク210に格納されている場合)に”0”を格納するフィールドである。
位置情報314は、対象データブロックが特定のデータパターンを用いて記録されている場合に、データパターンの識別情報等を格納する。また、対象データブロックが1以上のMブロックに格納されている場合に、位置情報314は、先頭のMブロックの番号を格納する。一方、対象データブロックがHブロックに格納されている場合は、対象データブロックは、位置テーブル310上のブロック番号で指定されるHブロックに格納される。
【0052】
以上に示した通り、位置テーブル310は、書込み対象のデータをHブロック単位で分割した対象データブロックのそれぞれに対応付けて、対象データブロックに対応するデータパターンの識別情報等、又は、対象データブロックの格納位置を示す情報を格納する。すなわち、格納部290は、特定のデータパターンを用いて対象データブロックを格納する場合に、特定のデータパターンの識別情報等を位置情報314に格納する。一方、格納部290は、対象データブロックをMデータブロック記憶領域320に格納する場合に、対象データブロックを格納する位置を示す情報として、HDDフラグ=”0”(すなわち半導体メモリ200内を示す)及びMブロックの格納位置(Mブロックの番号)を位置テーブル310に格納する。また、格納部290は、対象データブロックをハードディスク210に格納する場合に、対象データブロックを格納する位置を示す情報として、HDDフラグ=”1”(すなわちハードディスク210における対応するHブロックを示す)を位置テーブル310に格納する。
【0053】
格納部290は、図5の各行に例示した6通りの方法のいずれかを用いて対象データブロックを格納する。
(1)対象データブロックを圧縮し、Mデータブロック記憶領域320に格納する。(0番目)
格納部290は、対象データブロックを圧縮してMデータブロック記憶領域320に格納する場合、圧縮フラグ311を”1”、HDDフラグ312を”0”、パターン置換フラグ313を”0”、位置情報314を対象データブロックを格納したMデータブロック記憶領域320上のMブロックの位置に設定する。
【0054】
(2)対象データブロックを圧縮せず、Mデータブロック記憶領域320に格納する。(1番目)
格納部290は、対象データブロックを圧縮せずにMデータブロック記憶領域320に格納する場合、圧縮フラグ311を”0”、HDDフラグ312を”0”、パターン置換フラグ313を”0”、位置情報314を対象データブロックを格納したMデータブロック記憶領域320上のMブロックの位置に設定する。
【0055】
(3)対象データブロックを圧縮せず、ハードディスク210に格納する。(2番目)
格納部290は、対象データブロックを圧縮せずにハードディスク210に格納する場合、HDDフラグ312を”1”、パターン置換フラグ313を”0”に設定する。第2判断部273が対象データブロックをハードディスク210に格納すると判断した場合、割当部285及び格納部290は、対象データブロックを書込みアクセスで指定されたHブロックに格納する。すなわち例えば、外部記憶装置110のブロック3に対象データブロックを書き込む書込みアクセスを受けた場合、割当部285及び格納部290は、ハードディスク210内の3番のHブロックに対象データブロックを格納する。
【0056】
(4)対象データブロックを特定のデータパターンを用いて記録する。(3番目)
格納部290は、対象データブロックを特定のデータパターンを用いて記録する場合、パターン置換フラグ313を”1”、位置情報314をデータパターンの識別情報等に設定する。
対象データブロックと、識別情報が「”00”+5bit」であるデータパターンとが、一部のデータ値を除いて一致すると判断した場合、第1判断部272は、3番目の格納形式を選択する。この場合、格納部290は、不一致であるデータ値の対象データブロック内の位置を示すオフセット情報9bit、および不一致であるデータ値1Bを、当該データパターンの識別情報に対応付けて位置情報314に格納する。
読出しアクセスを受けると、まず、パターン置換部292は、識別情報に対応するデータパターンを登録部274から取得する。そして、パターン置換部292は、登録部274から取得したデータパターンにおける、位置情報314のオフセット情報で指定される位置のデータを、位置情報314のデータ値に置換する。これにより、パターン置換部292は、3番目の格納形式により格納された情報に基づき、対象データブロックを生成することができる。
この格納形式を用いれば、アクセス処理部277は、データパターンと任意の1Bが異なる対象データブロックを、当該データパターンを用いて格納することができる。
【0057】
(5)対象データブロックを特定のデータパターンを用いて記録する。(4番目)
対象データブロックと、識別情報が「”01”+5bit」であるデータパターンとが、一部のデータ値を除いて一致すると判断した場合、第1判断部272は、4番目の格納形式を選択する。この場合、格納部290は、不一致である2つの1Bのデータ値を、当該データパターンの識別情報に対応付けて位置情報314に格納する。ここで、登録テーブル276は、識別情報が「”01”+5bit」であるデータパターンに対応付けて、対象データブロックにおける各データ値の位置を指定するオフセット情報を2個登録している。従って、第1判断部272は、登録テーブル276に登録されたオフセット情報で指定される位置のデータ値のみが不一致となる場合に、本格納形式を選択できる。
読出しアクセスを受けると、パターン置換部292は、識別情報に対応するデータパターン、第1データ値に対応する第1オフセット情報、及び第2データ値に対応する第2オフセット情報を登録部274から取得する。そして、パターン置換部292は、登録部274から取得したデータパターンにおける、登録部274から取得した第1オフセット情報で指定される位置のデータを第1データ値に、登録部274から取得した第2オフセット情報で指定される位置のデータを第2データ値にそれぞれ置換する。これにより、パターン置換部292は、4番目の格納形式により格納された情報に基づき、対象データブロックを生成することができる。
この格納形式を用いれば、アクセス処理部277は、データパターンに対してそれぞれ位置が指定された1Bのデータ値2つが異なる対象データブロックを、当該データパターンを用いて格納することができる。
【0058】
(6)対象データブロックを特定のデータパターンを用いて記録する。(5番目)
特定の2Bのデータ値の繰り返しによるデータパターンを用いて対象データブロックを記録可能と判断した場合、第1判断部272は、5番目の格納形式を選択する。この場合、格納部290は、データパターン中で繰り返される2Bのデータ値に対応付けられた識別情報である「”10”+予備フィールド14bit+データ値2B」を、位置情報314に格納する。
読出しアクセスを受けると、パターン置換部292は、位置情報314から取得した2Bのデータ値を256個並べて対象データブロックを生成する。これにより、パターン置換部292は、5番目の格納形式により格納された情報に基づき、対象データブロックを生成することができる。
この格納形式を用いれば、アクセス処理部277は、特定のデータ値の繰り返しによる対象データブロックを、当該データパターンを用いて格納することができる。
【0059】
以上のそれぞれの格納形式において、アクセス処理部277は、(1)〜(2)の場合には対象データブロックを格納するMデータブロック記憶領域320の位置を示す情報を、(4)〜(6)の場合には対象データブロックに対応する識別情報を位置情報314に格納する。これにより、アクセス処理部277は、(1)〜(2)、及び(4)〜(6)を別個の記録領域に格納する場合と比較し、位置テーブル310の格納に要する記憶容量を低減できる。
【0060】
以上に示した様に、本実施形態に係る外部記憶装置110は、対象データブロックとデータパターンとが不一致であるデータ値として、1Bのデータ値を用いる。また、本実施形態に係る外部記憶装置110は、特定のデータ値の繰り返しによるデータパターンを生成するために使用するデータ値として、2Bのデータ値を用いる。外部記憶装置110は、これらに代えて、4bit、4B、8B等の対象データブロック未満の任意の長さのデータ値を用いてもよい。ここで、位置テーブル310の記憶容量を抑えるためには、外部記憶装置110は、位置情報314に識別情報等が格納できる長さのデータ値を用いることが望ましい。
【0061】
図6は、本発明の実施形態に係るハードディスク210のデータ構造を示す。ハードディスク210は、Hデータブロック記憶領域340及びバックアップ領域345を有する。
【0062】
Hデータブロック記憶領域340は、ハードディスク210に格納されるHブロックのデータ領域である。Hデータブロック記憶領域340は、512BのHブロックを32M個格納する。従って、Hデータブロック記憶領域340のサイズは、16GB(32M×512B)となる。Hブロックは、0〜Y(ただし、Y=32M−1)の番号が割り当てられ、この番号を用いて識別される。Hデータブロック記憶領域340は、計算機120からの書込みアクセスの対象データブロックを格納するために使用するハードディスク210上の領域である。本実施形態に係るHデータブロック記憶領域340は、図2に示した外部記憶装置110のデータ構造と同一の構成をとる。容量管理部247は、計算機120から容量読出しアクセスを受信した場合に、Hデータブロック記憶領域340の領域の容量を示す容量情報を計算機120に返信する。以上の処理に代えて、容量管理部247は、Hデータブロック記憶領域340に格納されるファイルの管理に用いる領域を除いた容量を示す容量情報を計算機120に返信してもよい。
【0063】
バックアップ領域345は、半導体メモリ200内のデータのバックアップに用いられる領域である。外部記憶装置110の電源がOFFにされる際に、格納部290は、半導体メモリ200内のデータをバックアップ領域345に格納する。そして、外部記憶装置110の電源がONになった際に、格納部290は、バックアップ領域345内のデータを半導体メモリ200に格納する。
【0064】
図7は、本発明の実施形態に係る登録テーブル276の一例を表形式により示す。登録テーブル276は、識別情報、データパターン、第1オフセット情報、第2オフセット情報、及び参照数の各フィールドを備える。
【0065】
識別情報フィールドは、当該行のデータパターンを識別する識別情報を格納する。本格納形式に代えて、登録テーブル276は、登録テーブル276内の位置に基づき当該行に対応する識別情報を定めてもよい。
データパターンフィールドは、当該行のデータパターンを格納する。
第1オフセット情報及び第2オフセット情報フィールドは、第1判断部272及びパターン置換部292が、図5中の4番目の格納形式において使用する、不一致であるデータ値の対象データブロック内における位置を示す。
参照数フィールドは、外部記憶装置110が当該行のデータパターンを用いて格納した対象データブロックの個数を示す。第1判断部272は、登録テーブル276に登録されたデータパターンを用いて対象データブロックを格納した場合に、当該データパターンに対応する参照数を1増加させる。また、第1判断部272は、登録テーブル276に登録されたデータパターンを用いて格納されたデータブロックが、異なるデータブロックに置き換えられた場合に、当該データパターンに対応する参照数を1減少させる。
【0066】
第1判断部272は、書込みの対象データブロックを新たなデータパターンとして登録部274に登録し、登録したデータパターンを用いて対象データブロックを記録可能とする機能を備える。書込み対象のデータブロックを登録部274に登録する場合、登録部274は、登録テーブル276内のデータパターンのうち、参照数が最小であると判断したデータパターンに対応する行を、登録するデータパターンに変更又は置換する。これにより、登録部274は、多く用いられているデータパターンを登録テーブル276内に残すことができる。
登録部274内のデータパターンが変更又は置換される場合、第1判断部272は、変更又は置換されるデータパターンを使用する全てのブロックを、Mデータブロック記憶領域320又はハードディスク210に格納させる。すなわち、第1判断部272は、変更又は置換されるデータパターンを使用するブロックを、位置テーブル310内の位置情報314から検索する。次に、第1判断部272は、格納部290及びパターン置換部292を介して当該データパターンに対応する対象データブロックを生成し、第2判断部273に送信する。そして、アクセス処理部277は、生成された対象データブロックを、圧縮部280、割当部285、及び格納部290を介してMデータブロック記憶領域320又はハードディスク210に格納する。ここで、生成された対象データブロックをMデータブロック記憶領域320に格納する場合、アクセス処理部277は、書込みアクセスの対象データブロックを格納する場合と同様の処理を行う。すなわち、アクセス処理部277は、生成された対象データブロックを、圧縮部280により圧縮してMデータブロック領域320に格納してもよい。あるいは、アクセス処理部277は、生成された対象データブロックを、圧縮せずにMデータブロック領域320に格納してもよい。
【0067】
以上の処理に代えて、登録部274は、参照数が予め定められた値より小さいデータパターンを使用するブロックの参照数を0に近づける様に、例えば定期的に上記動作を行ってもよい。これにより、第1判断部272がデータパターンを登録部274に登録する処理時間を低減することができる。
【0068】
図8は、本発明の実施形態に係る外部記憶装置110に格納されるデータの格納形式の一例を示す。格納部290は、図5に示した6通りの格納方法のいずれかを用いて、対象データブロックを格納する。ここで、Mデータブロック記憶領域320に対する格納方法(図5中の0番目及び1番目)は、以下に示す3通りの格納方法に細分できる。
(1−A)対象データブロックを圧縮し、1個のMブロックを用いて格納する。
対象データブロックのサイズが圧縮の結果63B以下となった場合、割当部285及び格納部290は、対象データブロックを1個のMブロックを用いて格納する。この場合、格納部290は、Mブロックを、Mブロック330aに示す形式で格納する。
Mブロック330aは、リンクフラグ1bit、サイズフィールド7bit、及びデータフィールド63Bを含む。リンクフラグは、当該Mブロックが後続のMブロックを指示するリンク情報を持つ場合に”1”となるフラグである。Mブロック330aはリンク情報を持たないため、先頭1bitは”0”である。サイズフィールド(図中sz)は、圧縮後の対象データブロックのサイズ(0〜63B)を示す。データフィールド(図中data)は、対象データブロックの格納領域である。
【0069】
(1−B)対象データブロックを圧縮し、2以上のMブロックを用いて格納する。
対象データブロックのサイズが圧縮の結果64B以上となった場合、割当部285及び格納部290は、対象データブロックを2個以上のMブロックを用いて格納する。この場合、格納部290は、Mブロックを、Mブロック330b及びMブロック330cに示す形式で格納する。
【0070】
Mブロック330bは、対象データブロックの先頭に対応するMブロックである。Mブロック330bは、リンクフラグ1bit、サイズフィールド9bit、データフィールド58B、及びリンク情報4Bを含む。リンクフラグは、(1−A)におけるリンクフラグと同様のフラグである。Mブロック330bはリンク情報を持つため、先頭1bitは”1”である。サイズフィールド(図中sz)は、圧縮後の対象データブロックのサイズ(0〜512B)を示す。データフィールド(図中data)は、対象データブロックのデータの格納領域である。リンクフィールド(図中link)は、後続のMブロックの番号を示す。
【0071】
Mブロック330cは、対象データブロックの2番目以降に対応するMブロックである。Mブロック330cは、データフィールド60B、及びリンク情報4Bを含む。データフィールド(図中data)は、対象データブロックの格納領域である。リンクフィールド(図中link)は、後続のMブロックの番号を示す。
【0072】
この様に、対象データブロックを2以上のMブロックを用いて格納する場合、格納部290は、サイズフィールドに示される圧縮後の対象データブロックのサイズに対応する個数のMブロックを、リンク情報を用いた片方向リストとして格納する。すなわち、2以上のMブロックを用いて対象データブロックをMデータブロック記憶領域320に格納する場合に、格納部290は、対象データブロックを格納する1番目のMブロックの位置を示す情報を位置テーブル310に格納し、対象データブロックを格納する複数のMブロックのそれぞれに、各Mブロックの後続のMブロックの位置を示す情報であるリンク情報を格納する。
【0073】
(2)対象データブロックを圧縮せず、8個のMブロックを用いて格納する。
圧縮部280が対象データブロックを圧縮しなかった場合、アクセス処理部277は、対象データブロックを連続する8個のMブロックを用いて格納する。
【0074】
以上に示した(1−A)、(1−B)、及び(2)の格納方法に対応し、格納部290及び復元部297は、以下の方法を用いて、対象データブロックを読み出す。
(1−A)読み出し対象のブロックに対応する圧縮フラグ=1、HDDフラグ=0、リンクフラグ=0
格納部290は、読出し対象のブロックに対応する位置テーブル310内の位置情報で指定される1個のMブロックを、半導体メモリ200から読み出す。復元部297は、格納部290が読み出した対象データブロックを復元し、パターン置換部292及び通信インターフェイス245を介して計算機120に送信する。
(1−B)読み出し対象のブロックに対応する圧縮フラグ=1、HDDフラグ=0、リンクフラグ=1
格納部290は、読出し対象のブロックに対応する位置テーブル310内の位置情報で指定される複数個のMブロックを、リンク情報に基づき半導体メモリ200から読み出す。復元部297は、格納部290が読み出した対象データブロックを復元し、パターン置換部292及び通信インターフェイス245を介して計算機120に送信する。
【0075】
(2)読み出し対象のブロックに対応する圧縮フラグ=0、HDDフラグ=0
格納部290は、読出し対象のブロックに対応する位置テーブル310の位置情報で指定される、連続する8個のMブロックを、半導体メモリ200から読み出す。復元部297は、格納部290が読み出した対象データブロックを、パターン置換部292及び通信インターフェイス245を介して計算機120に送信する。
【0076】
図9は、本発明の実施形態に係る外部記憶装置110のデータ書込処理の流れを示す。
計算機120は、例えば起動時又は外部記憶装置110の接続時等に、外部記憶装置110に対して容量読出しアクセスを送信する。容量管理部247は、ネットワーク140及び通信インターフェイス245を介して容量読出しアクセスを受信する(S700)。次に、容量管理部247は、外部記憶装置110の記憶容量を示す容量情報を計算機120に返信する(S701)。
【0077】
次に、判断部275は、ネットワーク140及び通信インターフェイス245を介して計算機120から書込みアクセスを受信する(S702)。次に、第1判断部272は、対象データブロックを特定のデータパターンを用いて記録可能かどうかを判断する(S703)。第1判断部272が特定のデータパターンを用いて対象データブロックを記録可能と判断した場合(S704)、アクセス処理部277は、対象データブロックの内容を外部記憶装置110内のMデータブロック記憶領域320又はハードディスク210に格納するのに代えて、特定のデータパターンの識別情報等を位置テーブル310に格納する(S750)。
【0078】
第1判断部272が、対象データブロックを特定のデータパターンを用いて記録不可能と判断した場合、第2判断部273は、対象データブロックをMデータブロック記憶領域320に格納可能かどうかを判断する。すなわち、第2判断部273は、Mデータブロック記憶領域320の空きMブロック数が8以上かどうかをチェックする(S705)。Mデータブロック記憶領域320の空きMブロック数が8未満の場合、第2判断部273は、対象データブロックをハードディスク210に格納すると判断する。そして、格納部290は、圧縮部280及び割当部285を介して対象データブロックを取得して、計算機120からの書込みアクセスで指定されたブロック番号に対応するHブロックに格納する(S740)。
【0079】
一方、Mデータブロック記憶領域320の空きMブロック数が8以上の場合、第2判断部273は、対象データブロックをMデータブロック記憶領域320に格納すると判断する。次に、圧縮部280は、判断部275から対象データブロックを取得して圧縮する(S710)。次に、圧縮部280は、圧縮した対象データブロックの格納に要するMブロックの数が7以下かどうかを判定する(S715)。圧縮した対象データブロックの格納に要するMブロックの数が7以下の場合、圧縮部280は、圧縮した対象データブロックを、半導体メモリ200に格納する対象データブロックとする(S720)。一方、圧縮した対象データブロックの格納に要するMブロックの数が8以上の場合、圧縮部280は、元の対象データブロックを、Mデータブロック記憶領域320に格納する対象データブロックとする(S725)。
【0080】
次に、割当部285は、圧縮部280から対象データブロックを取得して、対象データブロックに応じた個数のMブロックに分割し、これらのMブロックを割り当てる(S730)。次に、格納部290は、対象データブロックを割当部285が割り当てた個数のMブロックに格納する(S735)。
【0081】
次に、格納部290は、S735又はS740の処理内容に基づき位置テーブル310を更新する(S745)。
【0082】
図10は、本発明の実施形態に係る外部記憶装置110のデータ読出処理の流れを示す。
まず、格納部290は、通信インターフェイス245を介して計算機120から読出しアクセスを受信する(S800)。次に、格納部290は、読出しアクセスの対象データブロックの格納位置を示す情報を、半導体メモリ200上の位置テーブル310から読み出す(S810)。
【0083】
次に、格納部290は、対象データブロックについてのパターン置換フラグが”1”かどうかを判定する(S815)。パターン置換フラグが”1”の場合、格納部290は、対象データブロックについての位置情報314等の情報を復元部297を介してパターン置換部292に転送する。パターン置換部292は、対象データブロックについての位置情報314等の情報に基づき、対象データブロックを生成し(S817)、通信インターフェイス245を介して計算機120に返信する(S880)。
【0084】
S815でパターン置換フラグが”0”の場合、格納部290は、対象データブロックについてのHDDフラグが”0”かどうかを判定する(S820)。HDDフラグが”0”でない場合、格納部290は、ハードディスク210から対象データブロックを読み出す(S825)。そして、格納部290は、対象データブロックをパターン置換部292に転送し、パターン置換部292にS880の処理を行わせる。
【0085】
S820においてHDDフラグが”0”の場合、格納部290は、対象データブロックについての圧縮フラグが”1”かどうかを判定する(S830)。圧縮フラグが”1”でない場合、格納部290は、位置情報で指定される連続する8個のMブロックをMデータブロック記憶領域320から読み出して、対象データブロックを取得する(S835)。そして、格納部290は、対象データブロックをパターン置換部292に転送し、パターン置換部292にS880の処理を行わせる。
【0086】
S830において圧縮フラグが”1”の場合、格納部290は、位置情報で指定される先頭のMブロックを読み出す(S840)。そして、格納部290は、先頭のMブロックのリンクフラグが”0”かどうかを判定する(S850)。リンクフラグが”0”の場合、格納部290は、S840で取得したMブロックを対象データブロックと見なして、パターン置換部292に転送する。
【0087】
S850においてリンクフラグが”1”の場合、格納部290は、先頭のMブロックのサイズフィールド、及び各Mブロックのリンクフィールドに基づき、片方向リストに含まれる複数のMブロックを読み出す(S860)。そして、格納部290は、読み出した複数のMブロックを対象データブロックと見なして、パターン置換部292に転送する。
【0088】
次に、復元部297は、S850又はS860で格納部290から転送された対象データブロックを復元する(S870)。
【0089】
次に、パターン置換部292は、S817、S825、S835、又はS870のいずれかの処理を行って得られた対象データブロックを、通信インターフェイス245を介して計算機120に送信する(S880)。
【0090】
図11は、本発明の実施形態に係る第1判断部272が有する、対象データブロックと特定のデータパターンの一致検出回路の構成を示す。第1判断部272内の一致検出回路は、データレジスタ1100、一致検出回路A1160、一致検出回路B1170、一致検出回路C1180、及び選択部1150を含む。
【0091】
データレジスタ1100は、書込みの対象データブロックの各データ値を通信インターフェイス245から受信し、一致検出回路A1160、一致検出回路B1170、一致検出回路C1180、及び選択部1150に出力する。一致検出回路A1160は、対象データブロックの先頭のデータ値の繰り返しによるデータパターン(識別情報の先頭2bit=”10”)を用いて対象データブロックを記録可能かを判断する。一致検出回路B1170は、対象データブロックとデータパターン(識別情報の先頭2bit=”01”)とが、登録テーブル276内の第1及び/又は第2オフセット情報で指定された位置にある2つの1Bのデータ値を除いて一致する場合に、当該データパターンを用いて対象データブロックを記録可能と判断する。一致検出回路C1180は、対象データブロックとデータパターン(識別情報の先頭2bit=”00”)とが、任意の位置の1Bのデータ値を除いて一致する場合に、当該データパターンを用いて対象データブロックを記録可能と判断する。選択部1150は、一致検出回路A1160による識別情報等、一致検出回路B1170による識別情報等、一致検出回路C1180による識別情報等、又は対象データブロックの内容のいずれを用いて対象データブロックを格納するかを選択する。
【0092】
一致検出回路B1170は、登録テーブル276内に登録可能なデータパターン(識別情報の先頭2bit=”01”)のエントリそれぞれに対して1個ずつ割り当てられる。同様に、一致検出回路C1180は、登録テーブル276内に登録可能なデータパターン(識別情報の先頭2bit=”00”)のエントリそれぞれに対して1個ずつ割り当てられる。図11において、一致検出回路B1170及び一致検出回路C1180は、これらを代表してそれぞれ1個のみを図示する。
【0093】
一致検出回路A1160は、先頭データレジスタ1102、比較演算器1110、及び比較結果レジスタ1114を含む。
先頭データレジスタ1102は、対象データブロックの先頭のデータ値を格納する。
比較演算器1110は、データレジスタ1100内の対象データブロックの各々のデータ値と、先頭データレジスタ1102のデータ値を比較する。比較演算器1110は、各データ値の比較毎に、一致した場合”0”、一致しなかった場合”1”を出力する。
比較結果レジスタ1114は、比較演算器1110による比較結果を、対象データブロック毎に累積する。すなわち、比較結果レジスタ1114は、データレジスタ1100が対象データブロックの先頭のデータ値を入力した時点で”0”に設定される。そして、比較結果レジスタ1114は、対象データブロック全体の比較が終了するまで比較演算器1110の出力をOR演算により累積する。
【0094】
以上により、比較結果レジスタ1114は、対象データブロック内のいずれかのデータ値が先頭データレジスタ1102と不一致であった場合に”1”となる。
一致検出回路A1160は、以上に示した様に、対象データブロックの先頭のデータ値と、対象データブロックの各データ値とを比較する。そして、これらが全て一致した場合、比較結果レジスタ1114は、一致したことを示す情報である”0”を出力する。また、先頭データレジスタ1102は、位置情報314に格納される情報である”10”+先頭のデータ値を出力する。
【0095】
一致検出回路B1170は、比較演算器1120、比較結果レジスタ1124、及びデータ値レジスタ1126を含む。
比較演算器1120は、データレジスタ1100内の対象データブロックのデータ値と、登録テーブル276内のデータパターン(識別情報の先頭2bit=”01”)の対応するデータ値を比較する。比較演算器1120は、各データ値の比較毎に、一致した場合”0”、一致しなかった場合”1”を出力する。
比較結果レジスタ1124は、比較演算器1120による比較結果を、対象データブロック毎に累積する。すなわち、比較結果レジスタ1124は、データレジスタ1100が対象データブロックの先頭のデータ値を入力した時点で”0”に設定される。そして、比較結果レジスタ1124は、対象データブロック全体の比較が終了するまで比較演算器1120の出力をOR演算により累積する。ここで、比較中のデータ値が登録部274の第1オフセット情報で指定されるデータ値である場合、比較結果レジスタ1124は、データレジスタ1100のデータ値をデータ値レジスタ1126に第1データ値として格納する。また、比較中のデータ値が登録部274の第2オフセット情報で指定されるデータ値である場合、比較結果レジスタ1124は、データレジスタ1100のデータ値をデータ値レジスタ1126に第2データ値として格納する。データレジスタ1100のデータ値をデータ値レジスタ1126に格納した場合、比較結果レジスタ1124は、比較中のデータ値が一致したものと見なす。
【0096】
以上により、比較結果レジスタ1124は、対象データブロックとデータパターンとが、登録テーブル276で指定された位置にある2つの1Bのデータ値を除いて一致する場合に”0”となる。
一致検出回路B1170は、以上に示した様に、対象データブロックと、登録テーブル276内のデータパターンとを比較する。そして、これらが登録テーブル276の第1及び第2オフセット情報で指定された位置のデータ値を除いて一致した場合、比較結果レジスタ1124は、一致したことを示す情報である”0”を出力する。また、一致検出回路B1170は、位置情報314に格納される情報である識別情報(先頭2bit=”01”)+第1データ値+第2データ値を出力する。
【0097】
一致検出回路C1180は、比較演算器1130、比較結果レジスタ1134、データ値レジスタ1136及びオフセットレジスタ1138を含む。
比較演算器1130は、データレジスタ1100による対象データブロックのデータ値と、登録テーブル276内のデータパターン(識別情報の先頭2bit=”00”)の対応するデータ値を比較する。比較演算器1130は、各データ値の比較毎に、一致した場合”0”、一致しなかった場合”1”を出力する。
比較結果レジスタ1134は、比較演算器1130による比較結果を、対象データブロック毎に累積する。すなわち、比較結果レジスタ1134は、データレジスタ1100が対象データブロックの先頭のデータ値を入力した時点で”0”に設定される。そして、比較結果レジスタ1134は、対象データブロック全体の比較が終了するまで比較演算器1130の出力をOR演算により累積する。ここで、データ値が不一致であった場合、比較結果レジスタ1134は、不一致となったデータレジスタ1100のデータ値をデータ値レジスタ1136に格納し、不一致となったデータ値の対象データブロック内の位置を示すオフセット情報をオフセットレジスタ1138に格納する。また、この場合、比較結果レジスタ1124は、比較中のデータ値が一致したものと見なす。この後、比較結果レジスタ1134は、対象データブロックについて不一致であるデータ値を再度検出した場合には、”1”を設定て不一致を記録する。
【0098】
以上により、比較結果レジスタ1134は、対象データブロックとデータパターンとが、任意の位置にある1Bのデータ値を除いて一致する場合に、”0”となる。
一致検出回路C1180は、以上に示した様に、対象データブロックと、登録テーブル276内のデータパターンとを比較する。そして、これらが任意の位置の1Bのデータ値を除いて一致した場合、比較結果レジスタ1134は、一致したことを示す情報である”0”を出力する。また、一致検出回路C1180は、位置情報314に格納される情報である識別情報(先頭2bit=”00”)+オフセット情報+データ値を出力する。
【0099】
選択部1150は、一致検出回路A1160、一致検出回路B1170、及び一致検出回路C1180による対象データブロックの一致検出処理が終了すると、比較結果レジスタ1114、比較結果レジスタ1124、及び比較結果レジスタ1134の出力に基づき対象データブロックの格納形式を選択する。すなわち、選択部1150は、比較結果レジスタ1114、比較結果レジスタ1124、及び比較結果レジスタ1134のいずれかが”0”の場合、対応する一致検出回路A1160、一致検出回路B1170、及び一致検出回路C1180のいずれかが検出したデータパターンを用いて対象データブロックを格納する様格納部290に指示する。ここで、選択部1150は、比較結果レジスタ1114、比較結果レジスタ1124、及び比較結果レジスタ1134の複数が”0”の場合、予め定められた優先順位に従い、対応する一致検出回路A1160、一致検出回路B1170、及び一致検出回路C1180のいずれが検出したデータパターンを用いるかを決定する。一方、選択部1150は、比較結果レジスタ1114、比較結果レジスタ1124、及び比較結果レジスタ1134の全てが”1”の場合、対象データブロックの内容をMデータブロック記憶領域320又はハードディスク210に格納する様第2判断部273に指示する。
【0100】
図12は、本発明の実施形態に係る外部記憶装置110のハードウェア構成の一例を示す。本実施形態に係る外部記憶装置110の機能は、CPU510、ROM520、RAM530、通信インターフェイス540、ハードディスクドライブ550、出力装置580、及び入力装置585を備える計算機500と、計算機500上で実行されるプログラムとの連携により実現される。計算機500は、フロッピーディスクドライブ560及び/又はCD−ROMドライブ570を更に備えてもよい。
【0101】
外部記憶装置110を実現するプログラムは、通信インターフェイスモジュールと、容量管理モジュールと、判断モジュールと、登録モジュールと、アクセス処理モジュールと、パターン置換モジュールとを備える。これらのモジュールは、計算機500を、通信インターフェイス245、容量管理部247、判断部275、登録部274、アクセス処理部277、及びパターン置換部292として動作させるプログラムである。判断モジュールは、第1判断モジュールと、第2判断モジュールとを有する。これらのモジュールは、計算機500を、第1判断部272、及び第2判断部273として動作させるプログラムである。アクセス処理モジュールは、圧縮モジュールと、割当モジュールと、格納モジュールと、復元モジュールとを有する。これらのモジュールは、計算機500を、圧縮部280、割当部285、格納部290、及び復元部297として動作させるプログラムである。また、RAM530及びハードディスクドライブ550は、それぞれ半導体メモリ200及びハードディスク210の内容を格納する記録媒体として使用されてもよい。
【0102】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フロッピーディスク590、CD−ROM595の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワーク140又は計算機120に接続されたネットワーク等を介してプログラムを計算機500に提供してもよい。
【0103】
以上に示した様に、本実施形態に係る外部記憶装置110によれば、比較的小容量の半導体メモリ200と、比較的大容量のハードディスク210とを組み合わせた記憶装置を提供することができる。この様な外部記憶装置は、外部の計算機等からは、特定の記憶容量を備える大容量ハードディスクとしてアクセス可能である。一方、外部記憶装置に格納されるデータブロックの多くを圧縮して半導体メモリ200に格納するため、外部記憶装置110は、半導体メモリ200に近いアクセス速度を実現できる。
【0104】
また、本実施形態に係る外部記憶装置110によれば、対象データブロックを、特定のデータパターンを用いて位置テーブル310内の位置情報314に格納することができる。外部記憶装置110は、特定のデータパターンを用いて位置テーブル310内の位置情報314に格納した対象データブロックについては、Mデータブロック記憶領域320又はハードディスク210にデータの内容を格納せずに記録することができる。
初期化データやファイルシステム管理領域等のデータを外部記憶装置110に書き込む場合においては、計算機120等は、同一又は略同一の内容を持つデータブロックを、外部記憶装置110の多数のブロックに書き込むことが多い。この場合、本実施の形態に係る外部記憶装置110は、同一又は略同一の内容を持つデータブロックをMデータブロック記憶領域320内の多数のMブロックに格納するのに代えて、これらのデータブロックに対応するデータパターンの識別情報等を位置テーブル310内の位置情報314に格納する。この結果、本実施形態に係る外部記憶装置110によれば、初期化の際にMデータブロック記憶領域320に格納されるデータブロックの数を低減することができる。従って、外部記憶装置110は、より多くのデータブロックを半導体メモリ200上に格納でき、半導体メモリ200に近いアクセス速度を実現できる。
【0105】
また、特定のデータパターンを用いて対象データブロックを格納する機能を備えない場合、外部記憶装置は、初期化において初期化用のデータブロックの各々を、Mデータブロック記憶領域内の1以上のMブロックに格納する。この結果、初期化が完了した時点で、Mデータブロック記憶領域内の全Mブロックが、初期化用のデータブロックを格納するために使用される。このため、外部記憶装置は、後に受けた書込みアクセスの対象データブロックのそれぞれに対して、初期化データとして格納した数より多くのMブロックを割り当てることができず、当該対象データブロックをある割合でハードディスクに書き込むこととなる。従って、特定のデータパターンを用いて対象データブロックを格納する機能を備えない場合、外部記憶装置は、初期化用のデータブロックの影響を受けて、新たに書き込まれるデータブロックの平均アクセス速度を低下させてしまう。
一方、本実施形態に係る外部記憶装置110は、特定のデータパターンを用いて初期化用のデータブロックのほぼ全てを位置情報314に格納することができる。このため、外部記憶装置110は、初期化が完了した時点で、Mデータブロック記憶領域320をほぼ未使用とし、後に受けた書込みアクセスの対象データブロックをMデータブロック記憶領域320に格納可能とすることができる。従って、本実施形態に係る外部記憶装置110は、Mデータブロック記憶領域320が満たされるまで新たに書き込まれたデータブロックをハードディスク210へ格納しないため、アクセス速度を高速に保つことができる。
【0106】
また、本実施形態に係る外部記憶装置110は、位置テーブル310内の位置情報314に格納されたデータブロックを、位置テーブル310を1回読み出すのみで取得できる。一方、外部記憶装置110は、Mデータブロック記憶領域320に格納されたデータブロックを、位置テーブル310を1回読み出して対象データブロックの格納位置を取得した後、Mデータブロック記憶領域320を1回以上読み出して対象データブロックを取得する。このため、データブロックの一部を特定のデータパターンを用いて位置テーブル310内の位置情報314に格納することにより、半導体メモリ200の平均アクセス速度を高めることができる。
【0107】
また、本実施形態に係る外部記憶装置110によれば、ブロックサイズの異なる半導体メモリ200及びハードディスク210を用いて対象データブロックを格納する方法を提供する。これにより、外部記憶装置110は、対象データブロックを、対象データブロックの内容等に応じた個数のMブロックに格納するか、1個のHブロックに格納するかを選択して格納することができる。この機能は、例えば半導体メモリ200とハードディスク210のアクセス速度が同一であった場合においても、ファイルの末尾等の512B未満のデータを優先して半導体メモリ200に格納することにより、記憶領域の使用効率を高める等の効果を生じる。
【0108】
以上の様に、本実施形態に係る外部記憶装置110は、半導体メモリを記録媒体とする外部記憶装置を、ハードディスクを記録媒体とする外部記憶装置の代替として用いるのに好適な機能を実現する。そして、本実施形態に係る外部記憶装置110は、ハードディスクが備える特長と、半導体メモリが備える特長とを兼ね備える。
【0109】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0110】
以上に説明した実施形態によれば、以下の各項目に示す外部記憶装置、外部記憶装置制御方法、プログラム、及び記録媒体が実現される。
【0111】
(項目1) 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、前記データブロックを、特定のデータパターンを用いて記録可能かどうかを判断する判断部と、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を格納するアクセス処理部とを備えることを特徴とする外部記憶装置。
【0112】
(項目2) 前記判断部は、前記データブロックと前記データパターンとが一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判定することを特徴とする項目1記載の外部記憶装置。
(項目3) 前記判断部は、前記データブロックと前記データパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断することを特徴とする項目1記載の外部記憶装置。
(項目4) 前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値を、前記識別情報に対応付けて格納することを特徴とする項目3記載の外部記憶装置。
(項目5) 前記データパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を更に備え、前記判断部は、前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断し、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、不一致である前記データ値を前記識別情報に対応付けて格納することを特徴とする項目3記載の外部記憶装置。
【0113】
(項目6) 前記データパターンは、特定のデータ値の繰り返しによるデータパターンであり、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記特定のデータ値に対応付けられた前記識別情報を格納することを特徴とする項目1記載の外部記憶装置。
(項目7) 前記判断部は、前記データブロックの先頭のデータ値を格納する先頭データレジスタを有し、前記データブロック内の各々のデータ値と、前記先頭データレジスタ内のデータ値との比較結果に基づき、前記データブロックの前記先頭のデータ値の繰り返しによる前記データパターンを用いて前記データブロックを記録可能かどうかを判断することを特徴とする項目6記載の外部記憶装置。
【0114】
(項目8) 前記データパターンを、当該データパターンを識別する前記識別情報に対応付けて登録する登録部を更に備え、前記判断部は、前記登録部が登録する前記データパターンを用いて前記データブロックを記録可能かどうかを判断し、前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記登録部が登録する前記データパターンに対応付けられた前記識別情報を格納することを特徴とする項目1記載の外部記憶装置。
(項目9) 前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納するデータブロック記憶領域を更に備え、前記アクセス処理部は、前記登録部が登録する前記データパターンが変更される場合に、変更される前記データパターンを用いて格納している前記データブロックの内容を、変更される前記データパターンを用いて生成し、前記データブロック記憶領域に格納することを特徴とする項目8記載の外部記憶装置。
(項目10) 前記登録部は、前記アクセス処理部が前記データパターンを用いて格納している前記データブロックの個数である参照数を、当該データパターンを識別する前記識別情報に対応付けて登録し、前記登録部に新たな前記データパターンが登録される場合に、前記登録部が登録する1以上の前記データパターンのうち、前記参照数が最小であると判断した前記データパターンを新たな前記データパターンに置換することを特徴とする項目9記載の外部記憶装置。
(項目11) 前記データブロックを格納するデータブロック記憶領域を更に備え、前記アクセス処理部は、前記データブロックの格納位置を示す位置情報を格納する位置情報部を有し、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報を前記位置情報部に格納し、前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納することを特徴とする項目1記載の外部記憶装置。
【0115】
(項目12) 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、第1の記録媒体と、前記第1の記録媒体よりアクセス速度の遅い第2の記録媒体と、前記外部記憶装置に前記データブロックを書き込む場合に、前記データブロックを特定のデータパターンを用いて記録可能かどうかを判断する第1判断部と、前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを前記第1の記録媒体に格納可能かどうかを判断する第2判断部と、前記第1判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を前記第1の記録媒体内の識別情報記憶領域に格納し、前記第2判断部が前記データブロックを前記第1の記録媒体に格納可能と判断した場合に、前記データブロックを前記第1の記録媒体内のデータブロック記憶領域に格納し、前記第2判断部が前記データブロックを前記第1の記録媒体に格納不可能と判断した場合に、前記データブロックを前記第2の記録媒体に格納するアクセス処理部とを備え、前記外部記憶装置は、前記第1の記録媒体内の前記データブロック記憶領域の記憶容量と比較し大きい記憶容量の記憶領域を提供することを特徴とする外部記憶装置。
【0116】
(項目13) 外部から前記外部記憶装置の記憶容量を示す容量情報の読み出しを要求する容量読出しアクセスを受信した場合に、前記第1の記録媒体内の前記データブロック記憶領域より大きい記憶容量を示す前記容量情報を返信する容量管理部を更に備えることを特徴とする項目12記載の外部記憶装置。
(項目14) 前記第2の記録媒体は、不揮発性の記録媒体であることを特徴とする項目12記載の外部記憶装置。
(項目15) 前記アクセス処理部は、前記データブロックを前記第1の記録媒体内の前記データブロック記憶領域に格納する場合に、前記データブロックを圧縮する圧縮部を有することを特徴とする項目12記載の外部記憶装置。
【0117】
(項目16) 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記データブロックを、特定のデータパターンを用いて記録可能かどうかを判断し、前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を格納することを特徴とする外部記憶装置制御方法。
(項目17) 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、第1の記録媒体と、前記第1の記録媒体よりアクセス速度の遅い第2の記録媒体とを備え、前記外部記憶装置に前記データブロックを書き込む場合に、前記データブロックを特定のデータパターンを用いて記録可能かどうかを判断し、前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを前記第1の記録媒体に格納可能かどうかを判断し、前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を前記第1の記録媒体内の識別情報記憶領域に格納し、前記データブロックを前記第1の記録媒体に格納可能と判断した場合に、前記データブロックを前記第1の記録媒体内のデータブロック記憶領域に格納し、前記データブロックを前記第1の記録媒体に格納不可能と判断した場合に、前記データブロックを前記第2の記録媒体に格納し、前記外部記憶装置は、前記第1の記録媒体内の前記データブロック記憶領域の記憶容量と比較し大きい記憶容量の記憶領域を提供することを特徴とする外部記憶装置制御方法。
【0118】
(項目18) 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、前記データブロックを、特定のデータパターンを用いて記録可能かどうかを前記外部記憶装置に判断させる判断モジュールと、前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を前記外部記憶装置に格納させるアクセス処理モジュールとを備えることを特徴とするプログラム。
(項目19) 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、前記外部記憶装置は、第1の記録媒体と、前記第1の記録媒体よりアクセス速度の遅い第2の記録媒体とを備え、前記外部記憶装置に前記データブロックを書き込む場合に、前記データブロックを特定のデータパターンを用いて記録可能かどうかを前記外部記憶装置に判断させる第1判断モジュールと、前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを前記第1の記録媒体に格納可能かどうかを前記外部記憶装置に判断させる第2判断モジュールと、前記第1判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納させるのに代えて、前記データパターンを識別する識別情報を前記第1の記録媒体内の識別情報記憶領域に格納させ、前記第2判断モジュールが前記データブロックを前記第1の記録媒体に格納可能と判断した場合に、前記データブロックを前記第1の記録媒体内のデータブロック記憶領域に格納させ、前記第2判断モジュールが前記データブロックを前記第1の記録媒体に格納不可能と判断した場合に、前記データブロックを前記第2の記録媒体に格納させるアクセス処理モジュールとを備え、前記外部記憶装置に、前記第1の記録媒体内の前記データブロック記憶領域の記憶容量と比較し大きい記憶容量の記憶領域を提供させることを特徴とするプログラム。
【0119】
(項目20) 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムを記録した記録媒体であって、前記プログラムは、前記データブロックを、特定のデータパターンを用いて記録可能かどうかを前記外部記憶装置に判断させる判断モジュールと、前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報を前記外部記憶装置に格納させるアクセス処理モジュールとを備えることを特徴とする記録媒体。
(項目21) 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムを記録した記録媒体であって、前記外部記憶装置は、第1の記録媒体と、前記第1の記録媒体よりアクセス速度の遅い第2の記録媒体とを備え、前記プログラムは、 前記外部記憶装置に前記データブロックを書き込む場合に、前記データブロックを特定のデータパターンを用いて記録可能かどうかを前記外部記憶装置に判断させる第1判断モジュールと、前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを前記第1の記録媒体に格納可能かどうかを前記外部記憶装置に判断させる第2判断モジュールと、前記第1判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納させるのに代えて、前記データパターンを識別する識別情報を前記第1の記録媒体内の識別情報記憶領域に格納させ、前記第2判断モジュールが前記データブロックを前記第1の記録媒体に格納可能と判断した場合に、前記データブロックを前記第1の記録媒体内のデータブロック記憶領域に格納させ、前記第2判断モジュールが前記データブロックを前記第1の記録媒体に格納不可能と判断した場合に、前記データブロックを前記第2の記録媒体に格納させるアクセス処理モジュールとを備え、前記外部記憶装置に、前記第1の記録媒体内の前記データブロック記憶領域の記憶容量と比較し大きい記憶容量の記憶領域を提供させることを特徴とする記録媒体。
【0120】
【発明の効果】
上記説明から明らかなように、本発明によれば記録媒体の使用効率を高め、又、複数の記録媒体を備えてこれらの特長を兼備する外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体を提供することができる。
【図面の簡単な説明】
【図1】 本発明の実施形態に係る計算機システム100の構成の一例を示す図。
【図2】 本発明の実施形態に係る外部記憶装置110が提供する記憶領域のデータ構造を示す図。
【図3】 本発明の実施形態に係る外部記憶装置110の構成を示す図。
【図4】 本発明の実施形態に係る半導体メモリ200のデータ構造を示す図。
【図5】 本発明の実施形態に係る位置テーブル310の一例を表形式により示す図。
【図6】 本発明の実施形態に係るハードディスク210のデータ構造を示す図。
【図7】 本発明の実施形態に係る登録テーブル276の一例を表形式により示す図。
【図8】 本発明の実施形態に係る外部記憶装置110に格納されるデータの格納形式の一例を示す図。
【図9】 本発明の実施形態に係る外部記憶装置110のデータ書込処理の流れ図。
【図10】 本発明の実施形態に係る外部記憶装置110のデータ読出処理の流れ図。
【図11】 本発明の実施形態に係る第1判断部272が有する、対象データブロックとデータパターンの一致検出回路の構成を示す図。
【図12】 本発明の実施形態に係る外部記憶装置110のハードウェア構成の一例を示す図。
【符号の説明】
100 計算機システム
110 外部記憶装置
120 計算機
140 ネットワーク
200 半導体メモリ
210 ハードディスク
245 通信インターフェイス
247 容量管理部
272 第1判断部
273 第2判断部
274 登録部
275 判断部
276 登録テーブル
277 アクセス処理部
280 圧縮部
285 割当部
290 格納部
292 パターン置換部
297 復元部
310 位置テーブル
311 圧縮フラグ
312 HDDフラグ
313 パターン置換フラグ
314 位置情報
315 管理情報
320 Mデータブロック記憶領域
330a〜c Mブロック
340 Hデータブロック記憶領域
345 バックアップ領域
350 Hブロック
500 計算機
510 CPU
520 ROM
530 RAM
540 通信インターフェイス
550 ハードディスクドライブ
560 フロッピーディスクドライブ
570 CD−ROMドライブ
580 出力装置
585 入力装置
590 フロッピーディスク
595 CD−ROM
1100 データレジスタ
1102 先頭データレジスタ
1110 比較演算器
1114 比較結果レジスタ
1120 比較演算器
1124 比較結果レジスタ
1126 データ値レジスタ
1130 比較演算器
1134 比較結果レジスタ
1136 データ値レジスタ
1138 オフセットレジスタ
1150 選択部
1160 一致検出回路A
1170 一致検出回路B
1180 一致検出回路C

Claims (20)

  1. 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、
    前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断部と、
    前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを格納するアクセス処理部と
    を備えることを特徴とする外部記憶装置。
  2. 前記データパターンは、特定のデータ値の繰り返しによるデータパターンであり、
    前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記特定のデータ値に対応付けられた前記識別情報と、前記オフセット情報及び不一致である前記データ値とを格納することを特徴とする請求項1記載の外部記憶装置。
  3. 前記データパターンを、当該データパターンを識別する前記識別情報に対応付けて登録する登録部を更に備え、
    前記判断部は、前記登録部が登録する前記データパターンを用いて前記データブロックを記録可能かどうかを判断し、
    前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記登録部が登録する前記データパターンに対応付けられた前記識別情報と、前記オフセット情報及び不一致である前記データ値とを格納する
    ことを特徴とする請求項1記載の外部記憶装置。
  4. 前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納するデータブロック記憶領域を更に備え、
    前記アクセス処理部は、前記登録部が登録する前記データパターンが変更される場合に、変更される前記データパターンを用いて格納している前記データブロックの内容を、変更される前記データパターンを用いて生成し、前記データブロック記憶領域に格納することを特徴とする請求項記載の外部記憶装置。
  5. 前記登録部は、前記アクセス処理部が前記データパターンを用いて格納している前記データブロックの個数である参照数を、当該データパターンを識別する前記識別情報に対応付けて登録し、
    前記登録部に新たな前記データパターンが登録される場合に、前記登録部が登録する1以上の前記データパターンのうち、前記参照数が最小であると判断した前記データパターンを新たな前記データパターンに置換することを特徴とする請求項記載の外部記憶装置。
  6. 前記データブロックを格納するデータブロック記憶領域を更に備え、
    前記アクセス処理部は、
    前記データブロックの格納位置を示す位置情報を格納する位置情報部を有し、
    前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、前記オフセット情報及び不一致である前記データ値とを前記位置情報部に格納し、
    前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納することを特徴とする請求項1記載の外部記憶装置。
  7. 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置であって、
    特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付 けて登録する登録部と、
    前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断部と、
    前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを格納するアクセス処理部と
    を備えることを特徴とする外部記憶装置。
  8. 前記データパターンは、特定のデータ値の繰り返しによるデータパターンであり、
    前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記特定のデータ値に対応付けられた前記識別情報と、不一致である前記データ値とを格納することを特徴とする請求項記載の外部記憶装置。
  9. 前記データパターンを、当該データパターンを識別する前記識別情報に対応付けて登録する登録部を更に備え、
    前記判断部は、前記登録部が登録する前記データパターンを用いて前記データブロックを記録可能かどうかを判断し、
    前記アクセス処理部は、前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記登録部が登録する前記データパターンに対応付けられた前記識別情報と、不一致である前記データ値とを格納する
    ことを特徴とする請求項記載の外部記憶装置。
  10. 前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納するデータブロック記憶領域を更に備え、
    前記アクセス処理部は、前記登録部が登録する前記データパターンが変更される場合に、変更される前記データパターンを用いて格納している前記データブロックの内容を、変更される前記データパターンを用いて生成し、前記データブロック記憶領域に格納することを特徴とする請求項記載の外部記憶装置。
  11. 前記登録部は、前記アクセス処理部が前記データパターンを用いて格納している前記データブロックの個数である参照数を、当該データパターンを識別する前記識別情報に対応付けて登録し、
    前記登録部に新たな前記データパターンが登録される場合に、前記登録部が登録する1以上の前記データパターンのうち、前記参照数が最小であると判断した前記データパターンを新たな前記データパターンに置換することを特徴とする請求項10記載の外部記憶装置。
  12. 前記データブロックを格納するデータブロック記憶領域を更に備え、
    前記アクセス処理部は、
    前記データブロックの格納位置を示す位置情報を格納する位置情報部を有し、
    前記判断部が前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、不一致である前記データ値とを前記位置情報部に格納し、
    前記判断部が前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納することを特徴とする請求項記載の外部記憶装置。
  13. 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、
    前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断ステップ
    前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを格納するアクセス処理ステップと
    を備えることを特徴とする外部記憶装置制御方法。
  14. 前記外部記憶装置は、前記データブロックを格納するデータブロック記憶領域と、前記データブロックの格納位置を示す位置情報を格納する位置情報部とを備え、
    前記アクセス処理ステップは、
    前記判断ステップにおいて前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、前記オフセット情報及び不一致である前記データ値とを前記位置情報部に格納し、
    前記判断ステップにおいて前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納する
    ことを特徴とする請求項13記載の外部記憶装置制御方法
  15. 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御する外部記憶装置制御方法であって、
    前記外部記憶装置は、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を備え、
    前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と判断する判断ステップと
    前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを格納する
    ことを特徴とする外部記憶装置制御方法。
  16. 前記外部記憶装置は、前記データブロックを格納するデータブロック記憶領域と、前記データブロックの格納位置を示す位置情報を格納する位置情報部とを備え、
    前記アクセス処理ステップは、
    前記判断ステップにおいて前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、不一致である前記データ値とを前記位置情報部に格納し、
    前記判断ステップにおいて前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記位置情報部に格納する
    ことを特徴とする請求項15記載の外部記憶装置制御方法
  17. 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、
    前記データブロックと特定のデータパターンとが一部のデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と前記外部記憶装置に判断させる判断モジュールと、
    前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値の前記データブロック内の位置を示すオフセット情報及び不一致である前記データ値とを前記外部記憶装置に格納させるアクセス処理モジュールと
    を備えることを特徴とするプログラム。
  18. 前記外部記憶装置は、前記データブロックを格納するデータブロック記憶領域と、前記データブロックの格納位置を示す位置情報を格納する位置情報部とを備え、
    前記アクセス処理モジュールは、
    前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、前記オフセット情報及び不一致である前記データ値と前記外部記憶装置により前記位置情報部に格納させ
    前記判断モジュールが前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記外部記憶装置により前記位置情報部に格納させる
    ことを特徴とする請求項17記載のプログラム
  19. 外部から受け取ったデータを、予め長さが指定されたブロック単位に分割したデータブロック毎に格納する外部記憶装置を制御するプログラムであって、
    前記外部記憶装置は、特定のデータパターン内の位置を示すオフセット情報を、当該データパターンに対応付けて登録する登録部を備え、
    前記データブロックと前記データパターンとが前記オフセット情報で指定される前記データブロックのデータ値を除いて一致する場合に、前記データパターンを用いて前記データブロックを記録可能と前記外部記憶装置に判断させる判断モジュールと、
    前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記データブロックの内容を前記外部記憶装置に格納するのに代えて、前記データパターンを識別する識別情報と、不一致である前記データ値とを前記外部記憶装置に格納させるアクセス処理モジュールと
    を備えることを特徴とするプログラム。
  20. 前記外部記憶装置は、前記データブロックを格納するデータブロック記憶領域と、前記データブロックの格納位置を示す位置情報を格納する位置情報部とを備え、
    前記アクセス処理モジュールは、
    前記判断モジュールが前記データパターンを用いて前記データブロックを記録可能と判断した場合に、前記識別情報と、不一致である前記データ値と前記外部記憶装置により前記位置情報部に格納させ、
    前記判断モジュールが前記データパターンを用いて前記データブロックを記録不可能と判断した場合に、前記データブロックを格納する前記データブロック記憶領域の位置を示す情報を前記外部記憶装置により前記位置情報部に格納させる
    ことを特徴とする請求項19記載のプログラム
JP2001353775A 2001-11-19 2001-11-19 外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体 Expired - Fee Related JP3723960B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001353775A JP3723960B2 (ja) 2001-11-19 2001-11-19 外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体
US10/298,413 US7062603B2 (en) 2001-11-19 2002-11-18 External storage device for selectively storing data between first and second recording media

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001353775A JP3723960B2 (ja) 2001-11-19 2001-11-19 外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2003167679A JP2003167679A (ja) 2003-06-13
JP3723960B2 true JP3723960B2 (ja) 2005-12-07

Family

ID=19165732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001353775A Expired - Fee Related JP3723960B2 (ja) 2001-11-19 2001-11-19 外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体

Country Status (2)

Country Link
US (1) US7062603B2 (ja)
JP (1) JP3723960B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI255426B (en) * 2004-05-18 2006-05-21 Carry Computer Eng Co Ltd Storage control apparatus capable of analyzing volume information and the control method thereof
JP2007299088A (ja) * 2006-04-28 2007-11-15 Fujitsu Ltd データ保護システム、方法及びプログラム
JP2008172617A (ja) * 2007-01-12 2008-07-24 Fujitsu Ltd 符号化装置、復号装置、符号化プログラム、復号プログラム、データ転送システム
JP5076539B2 (ja) * 2007-02-16 2012-11-21 富士通株式会社 符号化装置および符号化方法
US20080250085A1 (en) * 2007-04-09 2008-10-09 Microsoft Corporation Backup system having preinstalled backup data
WO2010097960A1 (en) * 2009-02-25 2010-09-02 Hitachi, Ltd. Storage system and data processing method for the same
KR20110088677A (ko) * 2010-01-29 2011-08-04 삼성전자주식회사 데이터 백업 방법과 상기 방법을 수행할 수 있는 장치들
US8751725B1 (en) * 2012-01-27 2014-06-10 Netapp, Inc. Hybrid storage aggregate
US9904480B1 (en) * 2014-12-18 2018-02-27 EMC IP Holding Company LLC Multiplexing streams without changing the number of streams of a deduplicating storage system
US10209891B2 (en) * 2015-08-24 2019-02-19 Western Digital Technologies, Inc. Methods and systems for improving flash memory flushing
WO2017111955A1 (en) * 2015-12-22 2017-06-29 Intel IP Corporation Methods and apparatus to improve interprocess communication

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6482253A (en) 1987-09-25 1989-03-28 Nec Corp Method and device for filing document
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
JPH05108304A (ja) 1991-10-14 1993-04-30 Nec Corp データ圧縮方式
JPH06103128A (ja) 1992-09-21 1994-04-15 Matsushita Electric Ind Co Ltd 記憶装置
JP3581477B2 (ja) * 1996-03-04 2004-10-27 株式会社リコー デジタル複写機
JPH09297659A (ja) 1996-04-30 1997-11-18 Toshiba Corp 不揮発性記憶装置およびその制御方法
US6205407B1 (en) * 1998-02-26 2001-03-20 Integrated Measurement Systems, Inc. System and method for generating test program code simultaneously with data produced by ATPG or simulation pattern capture program
JP2001244021A (ja) 1999-02-26 2001-09-07 Ricoh Co Ltd コネクタホルダ及びコネクタ保持装置ならびにこれらを備える画像形成装置
US6243315B1 (en) * 1999-12-31 2001-06-05 James B. Goodman Computer memory system with a low power down mode
JP2001285309A (ja) * 2000-03-31 2001-10-12 Matsushita Electric Ind Co Ltd ゲートウェイ装置、媒体および情報集合体

Also Published As

Publication number Publication date
US7062603B2 (en) 2006-06-13
US20030097523A1 (en) 2003-05-22
JP2003167679A (ja) 2003-06-13

Similar Documents

Publication Publication Date Title
CN108733322B (zh) 用于多流垃圾收集的方法
KR100441587B1 (ko) 블록 얼라인먼트 기능을 갖는 반도체 기억 장치
JP2804115B2 (ja) ディスクファイルシステム
JP5129156B2 (ja) アクセス装置、および、ライトワンス記録システム
KR101329068B1 (ko) 블록 관리를 가지는 비휘발성 메모리
JP3723960B2 (ja) 外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体
JP5577238B2 (ja) アクセス装置、情報記録装置、コントローラ、及び情報記録システム
US7917687B2 (en) Flash memory apparatus and access method to flash memory
KR100684061B1 (ko) 기록 시스템, 데이터 기록 장치, 메모리 장치 및 데이터기록 방법
JP2013532853A (ja) ストレージ装置及びデータ制御方法
US20050286855A1 (en) Data recording apparatus
JP3900467B2 (ja) 外部記憶装置、外部記憶装置制御方法、プログラム、及び記録媒体
KR101204163B1 (ko) 반도체 기억 장치
JP3603079B2 (ja) カメラレコーダおよびデータ記録媒体
US6266671B1 (en) Data storage apparatus, method, and medium with variable data storage structure
JP2004151939A (ja) 記憶装置
US20040019761A1 (en) Flash storage medium having a NAND-type flash memory
KR20040072875A (ko) 낸드 플래시 메모리를 이용한 저장장치
US20100169555A1 (en) Method of writing data into flash memory based on file system
WO2010001606A1 (ja) コントローラ、情報記録装置、アクセス装置、情報記録システム、及び情報記録方法
KR20110070656A (ko) 플래시 메모리의 데이터 처리 방법 및 장치
JP4821042B2 (ja) データ変換装置、記憶装置、プロトコル変換装置、デバイス制御装置、記録再生システム、及び記録再生方法
US7649822B2 (en) Recording and reproducing apparatus and recording method
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
US8321641B2 (en) Data access method and data access device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050830

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050909

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080930

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090930

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090930

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees