(57)【特許請求の範囲】
【請求項１】
記憶装置に対してデータを書込みおよび読出すための記憶装置アクセス・システムであって、
複数の頻出データについてアドレスおよび各アドレスに割当てられたデータ・インデックスを保持し、書込み又は読出しデータのアドレスを取得して取得アドレスで保持アドレスを検索するアドレス検索部と、
前記複数の頻出データおよび前記データ・インデックスの各々に関係付けられたタグを保持し、前記アドレス検索部から前記取得アドレスが前記保持アドレスにヒットしたときの前記データ・インデックスを取得して、取得データ・インデックスに関係付けられた前記タグに対応する前記頻出データを特定する頻出データ保持部と、
前記頻出データ保持部から前記頻出データを取得して前記書込みデータと比較し、前記書込みデータにヒットした前記頻出データを特定するデータ比較部と、
前記データ比較部から前記書込みデータおよび前記頻出データを取得して圧縮し、前記記憶装置から前記読出しデータを取得して伸張する圧縮・伸張部と、
前記圧縮・伸張部から圧縮された前記書込みデータおよび前記頻出データを取得し、前記データ比較部により指示されて圧縮された前記書込みデータおよび前記頻出データのいずれかを選択する書込みデータ選択部と、
前記読出しデータのアドレスが前記アドレス検索部の前記保持アドレスにヒットしたときには、前記頻出データ保持部から前記頻出データの中で特定された読出しデータを取得し、ヒットしなかったときには、前記記憶装置から読出されて前記圧縮・伸張部で伸張された読出しデータを取得し、前記アドレス検索部により指示されて前記特定された読出しデータおよび前記伸張された読出しデータのいずれかを選択する読出しデータ選択部と、
を含む、記憶装置アクセス・システム。
【請求項２】
前記頻出データ保持部は、前記書込みデータが前記頻出データにヒットしたことを前記データ比較部から指示されたときには、前記アドレス検索部にヒットした前記頻出データの前記タグを通知して、前記取得アドレスによる前記アドレス検索部の最も古い前記タグの前記保持アドレスの書換えを指示し、前記取得アドレスが前記アドレス検索部の前記保持アドレスにヒットして対応する前記タグで特定された前記頻出データに前記書込みデータがヒットしなかったことを前記データ比較部から指示されたときには、前記アドレス検索部にヒットした前記保持アドレスの無効化を指示する、請求項１に記載の記憶装置アクセス・システム。
【請求項３】
前記アドレス検索部は、各エントリに、前記アドレスを保持するアドレス・フィールドと、前記アドレス・フィールドの前記アドレスについて書込みおよび読出しが行われた回数を表すフラグを保持するフラグ・フィールドと、前記アドレス・フィールドの前記アドレスについての前記データ・インデックスを保持するデータ・インデックス・フィールドとを有する、複数のエントリからなるテーブルを含む、請求項１又は２に記載の記憶装置アクセス・システム。
【請求項４】
前記頻出データ保持部が前記アドレス検索部にヒットした前記保持アドレスの無効化を指示したとき、ヒットした前記保持アドレスについての前記エントリにおける前記フラグ・フィールドの前記フラグは、無効を表す所定の値に設定される、請求項３に記載の記憶装置アクセス・システム。
【請求項５】
前記頻出データ保持部は、各エントリに、前記タグを保持するタグ・フィールドと、前記タグ・フィールドの前記タグに対応する前記頻出データを保持する頻出データ・フィールドとを有する、複数のエントリからなるテーブルを含む、請求項１〜４のいずれか１項に記載の記憶装置アクセス・システム。
【請求項６】
前記頻出データ・フィールドは、前記記憶装置に記憶された頻出頻度の高い基本データ長のデータを保持する、請求項５に記載の記憶装置アクセス・システム。
【請求項７】
前記データ比較部は、それぞれが対応する前記頻出データの各々と前記書込みデータとを比較する、複数のコンパレータを含む、請求項１〜６のいずれか１項に記載の記憶装置アクセス・システム。
【請求項８】
前記圧縮・伸張部は、前記書込みデータおよび前記頻出データを圧縮する圧縮回路を少なくとも１つ備える圧縮エンジン部と、前記記憶装置からの前記読出しデータを伸張する伸張回路を少なくとも１つ備える伸張エンジン部と、前記圧縮回路で圧縮するデータと前記伸張回路で伸張する符号とを対応付けるデータ符号化対応テーブルを少なくとも１つ備える圧縮・伸張辞書部とを含む、請求項１〜７のいずれか１項に記載の記憶装置アクセス・システム。
【請求項９】
前記圧縮回路および前記伸張回路に応じて対応する前記データ符号化対応テーブルを備え、対応する前記データ符号化対応テーブルの前記データは、前記頻出データ保持部に保持される対応する前記頻出データを構成する、請求項８に記載の記憶装置アクセス・システム。
【請求項１０】
前記書込みデータ選択部は、前記データ比較部からの指示に応答して圧縮された前記書込みデータおよび前記頻出データのいずれかを選択するセレクタを含む、請求項１〜９のいずれか１項に記載の記憶装置アクセス・システム。
【請求項１１】
前記読出しデータ選択部は、前記アドレス検索部からの指示に応答して前記特定された読出しデータおよび前記伸張された読出しデータのいずれかを選択するセレクタを含む、請求項１〜１０のいずれか１項に記載の記憶装置アクセス・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に対してデータを書込みおよび読出すための記憶装置アクセス・システムに関し、特に、データの圧縮伸張機能を備えた記憶装置アクセス・システムに関する。
【背景技術】
【０００２】
従来、記憶装置にデータを効率良く記憶するために、データを圧縮すなわち符号化して書込み、圧縮したデータを伸張すなわち復号化して読出すことが行われている。【０００３】
例えば、特許文献１および２には、メモリコントローラにデータの圧縮伸張機能を設けることにより、データを圧縮して書込み伸張して読出すようにした半導体メモリ装置が示されている。【０００４】
特許文献３には、ファイル記憶装置に空き容量が多いときはファイルの圧縮を行なわずにファイルの高速再生を可能にし、また、ファイルのアクセス頻度や種類に応じて適した圧縮方式を選択して効率良いファイルの利用を可能にするファイル圧縮処理装置が示されている。【０００５】
特許文献４には、記憶装置において、使用頻度の高いファイルを圧縮しないことにより、ファイルの展開に要する作業時間を減少して処理パフォーマンスの低下を防ぐことができるようにするとともに、使用頻度の低いファイルを圧縮することにより、実容量以上の記憶容量でファイルを管理することができるようにするファイル圧縮管理方式が示されている。【０００６】
記憶容量の観点からは記憶装置に全てのデータを圧縮して書込み伸張して読出すことが望ましいが、従来は、処理性能を考えて空き容量が多いことや使用頻度が高いことに基づきデータを圧縮せずにそのまま記憶装置に記憶している、すなわち書込んでいる。したがって、データを圧縮して書込み伸張して読出すことに関しては、記憶容量の活用を図るだけであって、書込み読出し速度を高めるようなことはなされていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平５−２０４７４７号公報
【特許文献２】特開２００７−９４６３９号公報
【特許文献３】特開２００２−４９５１２号公報
【特許文献４】特開２０００−２９７５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、記憶装置の記憶容量を有効に活用することができるだけでなく、書込み読出し速度を高めることができる記憶装置アクセス・システムの実現を目的とする。本発明の目的には、そのような記憶装置アクセス・システムを提供することが含まれる。
【課題を解決するための手段】
【０００９】
本発明により提供される１実施態様の記憶装置アクセス・システムは、以下を含む構成をなす。すなわち、複数の頻出データについてアドレスおよび各アドレスに割当てられたデータ・インデックスを保持し、書込み又は読出しデータのアドレスを取得して取得アドレスで保持アドレスを検索するアドレス検索部と、複数の頻出データおよびデータ・インデックスの各々に関係付けられたタグを保持し、アドレス検索部から取得アドレスが保持アドレスにヒットしたときのデータ・インデックスを取得して、取得データ・インデックスに関係付けられたタグに対応する頻出データを特定する頻出データ保持部と、頻出データ保持部から頻出データを取得して書込みデータと比較し、書込みデータにヒットした頻出データを特定するデータ比較部と、データ比較部から書込みデータおよび頻出データを取得して圧縮し、記憶装置から読出しデータを取得して伸張する圧縮・伸張部と、圧縮・伸張部から圧縮された書込みデータおよび頻出データを取得し、データ比較部により指示されて圧縮された書込みデータおよび頻出データのいずれかを選択する書込みデータ選択部と、読出しデータのアドレスがアドレス検索部の保持アドレスにヒットしたときには、頻出データ保持部から頻出データの中で特定された読出しデータを取得し、ヒットしなかったときには、記憶装置から読出されて圧縮・伸張部で伸張された読出しデータを取得し、アドレス検索部により指示されて特定された読出しデータおよび伸張された読出しデータのいずれかを選択する読出しデータ選択部とである。【００１０】
好ましくは、頻出データ保持部は、書込みデータが頻出データにヒットしたことをデータ比較部から指示されたときには、アドレス検索部にヒットした頻出データのタグを通知して、取得アドレスによるアドレス検索部の最も古いタグの保持アドレスの書換えを指示し、取得アドレスがアドレス検索部の保持アドレスにヒットして対応するタグで特定された頻出データに書込みデータがヒットしなかったことをデータ比較部から指示されたときには、アドレス検索部にヒットした保持アドレスの無効化を指示する。【００１１】
好ましくは、アドレス検索部は、各エントリに、アドレスを保持するアドレス・フィールドと、アドレス・フィールドのアドレスについて書込みおよび読出しが行われた回数を表すフラグを保持するフラグ・フィールドと、アドレス・フィールドのアドレスについてのデータ・インデックスを保持するデータ・インデックス・フィールドとを有する、複数のエントリからなるテーブルを含む。【００１２】
好ましくは、頻出データ保持部がアドレス検索部にヒットした保持アドレスの無効化を指示したとき、ヒットした保持アドレスについてのエントリにおけるフラグ・フィールドのフラグは、無効を表す所定の値に設定される。【００１３】
好ましくは、頻出データ保持部は、各エントリに、タグを保持するタグ・フィールドと、タグ・フィールドのタグに対応する頻出データを保持する頻出データ・フィールドとを有する、複数のエントリからなるテーブルを含む。【００１４】
好ましくは、頻出データ・フィールドは、記憶装置に記憶された頻出頻度の高い基本データ長のデータを保持する。【００１５】
好ましくは、データ比較部は、それぞれが対応する頻出データの各々と書込みデータとを比較する、複数のコンパレータを含む。【００１６】
好ましくは、圧縮・伸張部は、書込みデータおよび頻出データを圧縮する圧縮回路を少なくとも１つ備える圧縮エンジン部と、記憶装置からの読出しデータを伸張する伸張回路を少なくとも１つ備える伸張エンジン部と、圧縮回路で圧縮するデータと伸張回路で伸張する符号とを対応付けるデータ符号化対応テーブルを少なくとも１つ備える圧縮・伸張辞書部とを含む。【００１７】
好ましくは、圧縮回路および伸張回路に応じて対応するデータ符号化対応テーブルを備え、対応するデータ符号化対応テーブルのデータは、頻出データ保持部に保持される対応する頻出データを構成する。【００１８】
好ましくは、書込みデータ選択部は、データ比較部からの指示に応答して圧縮された書込みデータおよび頻出データのいずれかを選択するセレクタを含む。【００１９】
好ましくは、読出しデータ選択部は、アドレス検索部からの指示に応答して特定された読出しデータおよび伸張された読出しデータのいずれかを選択するセレクタを含む。
【発明の効果】
【００２０】
本発明により、記憶装置の記憶容量を有効に活用することができるだけでなく、書込み読出し速度を高めることができる記憶装置アクセス・システムが実現される。特に、データを圧縮して書込み伸張して読出しても、記憶装置における頻出データの書込み読出し速度を高めることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の１実施形態に係る記憶装置アクセス・システムの構成例を示す図である。
【図２】記憶装置アクセス・システムにおけるアドレス検索部の構成例を示す図である。
【図３】記憶装置アクセス・システムにおける頻出データ保持部の構成例を示す図である。
【図４】記憶装置アクセス・システムにおけるデータ比較部の構成例を示す図である。
【図５】記憶装置アクセス・システムにおける圧縮・伸張部の構成例を示す図である。
【図６】記憶装置アクセス・システムにおける書込みデータ選択部の構成例を示す図である。
【図７】記憶装置アクセス・システムにおける読出しデータ選択部の構成例を示す図である。
【図８】記憶装置アクセス・システムにおける書込み処理の流れを示す図である。
【図９】記憶装置アクセス・システムにおける読出し処理の流れを示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。本発明は多くの異なる態様で実施することが可能であり、記載された実施形態の内容に限定して解釈されるべきではない。なお、実施形態の説明の全体を通じて同じ構成部分乃至構成要素には同じ番号を付している。
【００２３】
図１は、本発明の１実施形態に係る記憶装置アクセス・システム１００の構成例を示す。アクセス・システム１００は、ＰＬＢ（Ｐｒｏｃｅｓｓｏｒ Ｌｏｃａｌ Ｂｕｓ）などのオン・チップ・バス１１０と記憶装置に対する書込み・読出し制御装置１２０との間に設けられている。記憶装置はどのようなタイプのものでも構わない。例えば、チップ内部に設けられるキャッシュやメモリなどの記憶装置でも良いし、チップ外部に設けられるＨＤＤ（ＨａｒｄＤｉｓｋ Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）などの記憶装置でも良い。図１には、例として、メモリ・デバイス１３０およびＨＤＤ/ＳＳＤ１４０が示される。オン・チップ・バス１１０からアドレス線およびデータ線によりそれぞれアドレスおよび書込みデータがアクセス・システム１００に提供され、アクセス・システム１００からデータ線により読出しデータがオン・チップ・バス１１０に提供される。
【００２４】
アクセス・システム１００には、アドレス検索部１０と、頻出データ保持部２０と、データ比較部３０と、圧縮エンジン部５０、圧縮・伸張辞書部６０および伸張エンジン部７０を備える圧縮・伸張部４０と、書込みデータ選択部８０と、読出しデータ選択部９０とが含まれる。
【００２５】
アドレス検索部１０にアドレスが入力される。アドレス検索部１０は、アクセス・システム１００のアクセスする記憶装置、例えば、メモリ・デバイス１３０やＨＤＤ/ＳＳＤ１４０における頻出頻度の高い複数の頻出データについてのアドレスと各アドレスに割当てられたデータ・インデックスを保持する。そのような複数の頻出データは、例えば、０や１が３２ビット続くようなＡｌｌ０やＡｌｌ１とか、プログラムのコンパイル時に実行コードを分析して得られたデータ・パターンとかなどであり、予め特定することができるので、頻出データのアドレスが用意されアドレス検索部１０に保持される。
【００２６】
図２に、アドレス検索部１０の構成例を示す。アドレス検索部１０は、複数のエントリからなるテーブル１１を含んでいる。エントリ数は任意に設定して構わないが、アドレス検索部１０で保持する頻出データのアドレス数に応じて決定すると良い。テーブル１１の各エントリには、アドレスを保持するアドレス・フィールド１２と、アドレス・フィールド１２のアドレスについてのデータ・インデックスを保持するデータ・インデックス・フィールド１４の他に、アドレス・フィールド１２のアドレスについて書込みおよび読出しが行われた回数を表すフラグを保持するフラグ・フィールド１３が設けられている。テーブル１１は、例えばＣＡＭ（ＣｏｎｔｅｎｔＡｄｄｒｅｓｓａｂｌｅ Ｍｅｍｏｒｙ）ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）で構成することができる。アドレス検索を速くするためにアドレス・フィールド１２はＣＡＭで構成し、それに対応するフラグ・フィールド１３およびデータ・インデックス・フィールド１４はＲＡＭで構成する。
【００２７】
各エントリでは、アドレス・フィールド１２に、例えばオン・チップ・バス１１０からアドレス線により提供されるフル・ビットのアドレスと同じ形式で、頻出データのアドレスが用意され保持される。フラグ・フィールド１３は、例えばアドレス・フィールド１２のアドレスについて書込みおよび読出しが行われた回数を格納するカウンタ・ビットである。フラグ・フィールド１３のフラグによりアドレス・フィールド１２のアドレスについての履歴を蓄えるようにして、実際に記憶装置を使用している実行時のそのアドレスで指定される頻出データのアクセス頻度を動的に捉える。フラグから得られるアクセス頻度に基づいて、アクセス頻度順にそれぞれ対応する頻出データを保持するようにしても良い。フラグ・フィールド１３のフラグは、書込みおよび読出しの回数を表す他に、例えば０である所定の値になったときには、アドレス・フィールド１２のアドレスの無効を表すことができる。データ・インデックス・フィールド１４に、例えば０から順番に割当てられた数値が保持される。データ・インデックス・フィールド１４に保持されるデータ・インデックスは、アドレス・フィールド１２のアドレスを対応する頻出データに関連付けるタグとして使用される。
【００２８】
アドレス検索部１０は、アドレスを取得すると、テーブル１１を使って取得アドレスでアドレス・フィールド１２のアドレスを検索する。取得アドレスがアドレス・フィールド１２のアドレスにヒットすると（アドレス・ヒット）、ヒットしたアドレスのデータ・インデックス・フィールド１４に保持されるデータ・インデックスに関係付けられたタグを頻出データ保持部２０に出力する。書込みデータの取得アドレスについては、アドレス・フィールド１２のアドレスにヒットしてもしなくても書込み・読出し制御装置１２０に出力される。読出しデータの取得アドレスについては、アドレス・フィールド１２のアドレスにヒットしないとき（読出しミス）には書込み・読出し制御装置１２０に出力されるが、ヒットしたとき（読出しヒット）には書込み・読出し制御装置１２０に出力されない。これは、読出しデータの取得アドレスがアドレス・フィールド１２のアドレスにヒットしたとき（読出しヒット）には、記憶装置から読出しデータを取得するのではなくて、頻出データ保持部２０に保持する頻出データを読出しデータとして提供するからである。その時、頻出データ保持部２０から提供する頻出データを読出しデータとして選択するように、アドレス検索部１０は読出しデータ選択部９０に読出しデータの選択を指示する。
【００２９】
アドレス検索部１０は、データ比較部３０で入力された書込みデータが頻出データ保持部２０に保持する頻出データにヒットするとき（データ・ヒット）、頻出データ保持部２０からヒットした頻出データのタグを通知され、アドレス・フィールド１２の中の最も古いタグの保持アドレスをその書込みデータの取得アドレスに書換える指示を受けて、その書換えを行う。アドレス・フィールド１２の中の最も古いタグの保持アドレスは、フラグ・フィールド１３のフラグを調べることにより決められる。この書換えにより、最も古いタグの保持アドレスを有していたエントリは、アドレス・フィールド１２にその取得アドレスを保持し、フラグ・フィールド１３に新しいフラグを保持し、データ・インデックス・フィールド１４に通知されたタグを保持する。また、入力された書込みデータの取得アドレスがアドレス検索部１０の保持アドレスにヒットして、対応するタグで頻出データ保持部２０により特定された頻出データにその書込みデータがヒットしなかったとき、アドレス検索部１０は、頻出データ保持部２０からヒットした保持アドレスの無効化（無効にする）を指示され、ヒットした保持アドレスを無効にする。無効化は、フラグ・フィールド１３のフラグを例えば０である所定の値にすることにより行われる。
【００３０】
頻出データ保持部２０は、アクセスする記憶装置における複数の頻出データおよびアドレス検索部１０の各データ・インデックスに関係付けられたタグを保持する。また、頻出データ保持部２０は、データ比較部３０でオン・チップ・バス１１０からの書込みデータと比較するために、保持する各頻出データをデータ比較部３０に提供する。
【００３１】
図３に頻出データ保持部２０の構成例を示す。頻出データ保持部２０は、複数のエントリからなるテーブル２１を含んでいる。エントリ数は任意に設定して構わないが、頻出データ保持部２０で保持する頻出データ数に応じて決定すると良い。各頻出データは異なる複数のアドレスで指定され得るので、テーブル２１のエントリ数はテーブル１１のエントリ数よりも少なくて済む。テーブル２１の各エントリには、タグを保持するタグ・フィールド２２と、予め用意され各タグに対応した頻出データを保持する頻出データ・フィールド２３が設けられている。頻出データ・フィールド２３に頻出データを保持する仕方は特に限定されないが、例えば、アドレス検索部１０のフラグから得られるアクセス頻度に基づいて、頻出データ・フィールド２３にアクセス頻度順にそれぞれ対応する頻出データを保持するようにしても良い。
【００３２】
各エントリでは、タグ・フィールド２２にアドレス検索部１０のデータ・インデックス・フィールド１４に保持されるデータ・インデックスに関係付けられたタグが保持される。したがって、タグ・フィールド２２には、そのデータ・インデックス・フィールド１４と同様に、例えば０から順番に割当てられた数値が保持される。頻出データ・フィールド２３には、オン・チップ・バス１１０から書込まれオン・チップ・バス１１０へ読出される基本データ長、例えば画像のピクセル長やキャッシュのライン長などの纏った単位で書込みおよび読出しが行われるデータ長を有する頻出データが保持される。頻出データは、例えば、０や１が３２ビット続くようなＡｌｌ０やＡｌｌ１とか、プログラムのコンパイル時に実行コードを分析して得られたデータ・パターンとかなどである。
【００３３】
頻出データ保持部２０は、アドレス検索部１０で取得アドレスが保持アドレスにヒットすると（アドレス・ヒット）、ヒットした保持アドレスについてのデータ・インデックスに関係付けられたタグをアドレス検索部１０から取得する。頻出データ保持部２０は、テーブル２１のタグ・フィールド２２からその取得したデータ・インデックスに関係付けられたタグと一致するタグを検出して、一致したタグに対応する頻出データを特定する。
【００３４】
書込みの場合には、特定された頻出データも、頻出データ・フィールド２３に保持される他の頻出データと同様に、データ比較部３０でオン・チップ・バス１１０からの書込みデータと比較される。データ比較部３０において書込みデータが特定された頻出データであれ他の頻出データであれヒットしたときには、データ比較部３０から頻出データがヒットした指示（データ・ヒット指示）を受けて、ヒットした頻出データのエントリにおけるタグ・フィールド２２に保持されるタグ（データ・ヒット）をアドレス検索部１０に通知し、その取得アドレスでアドレス検索部１０の最も古いタグの保持アドレスを書換えることを指示する。データ比較部３０において特定された頻出データに書込みデータがヒットしなかったときには、アドレス検索部１０でヒットした保持アドレスを無効にすること（ヒット・アドレス無効化）をアドレス検索部１０に指示する。読出しの場合には、特定された頻出データ（読出しヒット）は読出しデータとして読出しデータ選択部９０に提供される。
【００３５】
データ比較部３０は、頻出データ保持部２０から保持された頻出データを取得して、オン・チップ・バス１１０から入力された書込みデータと比較する。図４にデータ比較部３０の構成例を示す。データ比較部３０は、それぞれが対応する頻出データの各々と書込みデータとを比較する、複数のコンパレータ３１ａ、３１ｂ、・・・３１ｎを含む。複数のコンパレータ３１ａ、３１ｂ、・・・３１ｎは、書込みデータが頻出データにヒットしたときには、ヒット（データ・ヒット）の指示を生成して頻出データ保持部２０および書込みデータ選択部８０に出す。複数のコンパレータ３１ａ、３１ｂ、・・・３１ｎからは、それぞれに入力された頻出データが比較後に圧縮・伸張部４０の圧縮エンジン部５０に提供される。書込みデータもデータ比較部３０から圧縮エンジン部５０に提供される。
【００３６】
圧縮・伸張部４０は、データ比較部３０から書込みデータおよび頻出データを取得して圧縮し、また、記憶装置に対する書込み・読出し制御装置１２０から読出しデータを取得して伸張する。図５に圧縮・伸張部４０の構成例を示す。圧縮・伸張部４０は、圧縮エンジン部５０、圧縮・伸張辞書部６０および伸張エンジン部７０を備える。圧縮エンジン部５０は、データ比較部３０から取得した書込みデータおよび頻出データを圧縮するそれぞれ圧縮方式の異なる複数の圧縮回路５１ａ、５１ｂ、・・・５１ｍを含む。圧縮回路５１ａ、５１ｂ、・・・５１ｍは、例えばロスレス圧縮方法（ＬＨＡなど）のアルゴリズムをハードウェアで実現した回路などである。圧縮エンジン部５０は、書込みデータおよび頻出データをいずれかの圧縮回路で圧縮して書込みデータ選択部８０に提供する。伸張エンジン部７０は、圧縮エンジン部５０に対応して、書込み・読出し制御装置１２０から取得した読出しデータを伸張するそれぞれ伸張方式の異なる複数の伸張回路７１ａ、７１ｂ、・・・７１ｍを含む。伸張エンジン部７０は、読出しデータをいずれかの伸張回路で伸張して読出しデータ選択部９０に提供する。書込み・読出し制御装置１２０から読出しデータを取得するのは、頻出データ保持部２０に読出しデータとなる該当する頻出データがないときである（読出しミス）。圧縮・伸張辞書部６０は、それぞれ圧縮回路５１ａ、５１ｂ、・・・５１ｍで圧縮するデータと対応する伸張回路７１ａ、７１ｂ、・・・７１ｍで伸張する符号とを対応付けるデータ符号化対応テーブル６１ａ、６１ｂ、・・・６１ｍを含む。圧縮回路５１ａ、５１ｂ、・・・５１ｍおよび伸張回路７１ａ、７１ｂ、・・・７１ｍそれぞれに応じて、対応するデータ符号化対応テーブル６１ａ、６１ｂ、・・・６１ｍにおける圧縮するデータにより頻出データ保持部２０に保持される頻出データが構成されるようにしても良い。
【００３７】
書込みデータ選択部８０は、圧縮・伸張部４０から圧縮された書込みデータおよび頻出データを取得し、データ比較部３０により指示されて圧縮された書込みデータおよび圧縮・伸張辞書部６０に登録された圧縮済みの頻出データのいずれかを選択する。図６に書込みデータ選択部８０の構成例を示す。書込みデータ選択部８０は、データ比較部３０からの指示に応答して圧縮された書込みデータおよび頻出データのいずれかを選択して書込み・読出し制御装置１２０に提供するセレクタ８１を含む。
【００３８】
読出しデータ選択部９０は、オン・チップ・バス１１０から取得した読出しデータのアドレスがアドレス検索部１０の保持アドレスにヒットしたとき（読出しヒット）には、頻出データ保持部２０から頻出データの中で特定された頻出データを取得し、ヒットしなかったとき（読出しミス）には、記憶装置に対する書込み・読出し制御装置１２０から読出されて圧縮・伸張部４０で伸張された読出しデータを取得する。読出しデータ選択部９０は、アドレス検索部１０により指示されて特定された頻出データおよび伸張された読出しデータのいずれかを選択する。図７に読出しデータ選択部９０の構成例を示す。読出しデータ選択部９０は、アドレス検索部１０からの指示に応答して特定された頻出データおよび伸張された読出しデータのいずれかを選択してオン・チップ・バス１１０に提供するセレクタ９１を含む。
【００３９】
図８に記憶装置アクセス・システム１００における書込み処理の流れを示す。アクセス・システム１００はオン・チップ・バス１１０からアドレスおよび書込みデータの入力があるとステップ８０１で開始する。アクセス・システム１００では、ステップ８０２で入力されたアドレスおよび書込みデータが取得され、ステップ８０３で取得アドレスについてアドレス検索部１０により保持アドレスを検索するアドレス検索が行われる。ステップ８０３でアドレス検索が行われてヒットしなかったとき（Ｎｏ）は、ステップ８０４へ進み、ヒットしたとき（Ｙｅｓ）は、ステップ８０５へ進む。ステップ８０４およびステップ８０５では、ともにデータ比較部３０により書込みデータが頻出データ保持部２０からの頻出データと比較される。ステップ８０４およびステップ８０５での比較でデータ・ヒット（一致）のとき（Ｙｅｓ）は、ステップ８０６へ進んで、アドレス検索部１０が、頻出データ保持部２０からヒットした頻出データのタグを通知され、アドレス・フィールド１２の中の最も古いタグの保持アドレスを取得アドレスに書換える指示を受け、その書換えが行われる。ステップ８０５での比較でデータがヒットしなかったとき（Ｎｏ）は、ステップ８０７へ進んで、アドレス検索部１０が、頻出データ保持部２０からヒットした保持アドレスの無効化（無効にする）を指示され、ヒットした保持アドレスが無効にされる。ステップ８０４での比較でデータがヒットしなかったとき（Ｎｏ）およびステップ８０７でヒットした保持アドレスが無効にされたときは、ステップ８０８で圧縮・伸張部４０により書込みデータが圧縮される。ステップ８０６で最も古いタグの保持アドレスが取得アドレスに書換えられたときは、ステップ８０８で圧縮・伸張部４０により書込みデータおよびヒットした頻出データが圧縮される。ステップ８０８でデータが圧縮された後、ステップ８０９へ進む。ステップ８０９では、読出しヒット以外のときにアドレス検索部１０により取得アドレスが出力され、また、データ比較部３０からの指示で書込みデータ選択部８０により圧縮された書込みデータおよび圧縮・伸張辞書部６０に登録された圧縮済みの頻出データのいずれかが選択されて出力される。アクセス・システム１００は、ステップ８０９で取得アドレスおよび圧縮データを出力すると、ステップ８１０に進み、データ書込みの処理を終了する。
【００４０】
図９に記憶装置アクセス・システム１００における読出し処理の流れを示す。アクセス・システム１００はオン・チップ・バス１１０からアドレスの入力があるとステップ９０１で開始する。アクセス・システム１００では、ステップ９０２で入力されたアドレスが取得され、ステップ９０３で取得アドレスについてアドレス検索部１０により保持アドレスを検索するアドレス検索が行われる。ステップ９０３でアドレス検索が行われてヒットしたとき（Ｙｅｓ）、すなわち読出しヒットのときは、ステップ９０４へ進み、ヒットしなかったとき（Ｎｏ）、すなわち読出しミスのときは、ステップ９０６へ進む。読出しヒットのときには、読出しデータ選択部９０により、ステップ９０４で頻出データ保持部２０から取得アドレスにヒットした頻出データが取得され、ステップ９０５で頻出データが読出しデータとして選択され出力される。一方、読出しミスのときには、ステップ９０６で取得アドレスがアドレス検索部１０から書込み・読出し制御装置１２０に出力され、記憶装置におけるそのアドレスの圧縮データが取得される。取得した圧縮データはステップ９０７で圧縮・伸張部４０により伸張される。ステップ９０８では、読出しデータ選択部９０により、伸張データが圧縮・伸張部４０から取得され、読出しデータとして選択され出力される。アクセス・システム１００は、ステップ９０５で頻出データを読出しデータとして出力するか、又はステップ９０８で伸張データを読出しデータとして出力すると、ステップ９０９に進み、データ読出しの処理を終了する。
【００４１】
以上、実施態様を用いて本発明の説明をしたが、本発明の技術的範囲は実施態様について記載した範囲には限定されない。実施態様に種々の変更又は改良を加えることが可能であり、そのような変更又は改良を加えた態様も当然に本発明の技術的範囲に含まれる。
【符号の説明】
【００４２】
１０  アドレス検索部
２０  頻出データ保持部
３０  データ比較部
４０  圧縮・伸張部
８０  書込みデータ選択部
９０  読出しデータ選択部
１００  記憶装置アクセス・システム
【図１】
0005629392.tif 000002
【図２】
0005629392.tif 000003
【図３】
0005629392.tif 000004
【図４】
0005629392.tif 000005
【図５】
0005629392.tif 000006
【図６】
0005629392.tif 000007
【図７】
0005629392.tif 000008
【図８】
0005629392.tif 000009
【図９】
0005629392.tif 000010