JP5629392B2 - 記憶装置アクセス・システム - Google Patents
記憶装置アクセス・システム Download PDFInfo
- Publication number
- JP5629392B2 JP5629392B2 JP2013550163A JP2013550163A JP5629392B2 JP 5629392 B2 JP5629392 B2 JP 5629392B2 JP 2013550163 A JP2013550163 A JP 2013550163A JP 2013550163 A JP2013550163 A JP 2013550163A JP 5629392 B2 JP5629392 B2 JP 5629392B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- unit
- frequent
- storage device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/27—Using a specific cache architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Description
本発明は、記憶装置に対してデータを書込みおよび読出すための記憶装置アクセス・システムに関し、特に、データの圧縮伸張機能を備えた記憶装置アクセス・システムに関する。
従来、記憶装置にデータを効率良く記憶するために、データを圧縮すなわち符号化して書込み、圧縮したデータを伸張すなわち復号化して読出すことが行われている。
例えば、特許文献1および2には、メモリコントローラにデータの圧縮伸張機能を設けることにより、データを圧縮して書込み伸張して読出すようにした半導体メモリ装置が示されている。
特許文献3には、ファイル記憶装置に空き容量が多いときはファイルの圧縮を行なわずにファイルの高速再生を可能にし、また、ファイルのアクセス頻度や種類に応じて適した圧縮方式を選択して効率良いファイルの利用を可能にするファイル圧縮処理装置が示されている。
特許文献4には、記憶装置において、使用頻度の高いファイルを圧縮しないことにより、ファイルの展開に要する作業時間を減少して処理パフォーマンスの低下を防ぐことができるようにするとともに、使用頻度の低いファイルを圧縮することにより、実容量以上の記憶容量でファイルを管理することができるようにするファイル圧縮管理方式が示されている。
記憶容量の観点からは記憶装置に全てのデータを圧縮して書込み伸張して読出すことが望ましいが、従来は、処理性能を考えて空き容量が多いことや使用頻度が高いことに基づきデータを圧縮せずにそのまま記憶装置に記憶している、すなわち書込んでいる。したがって、データを圧縮して書込み伸張して読出すことに関しては、記憶容量の活用を図るだけであって、書込み読出し速度を高めるようなことはなされていない。
本発明は、記憶装置の記憶容量を有効に活用することができるだけでなく、書込み読出し速度を高めることができる記憶装置アクセス・システムの実現を目的とする。本発明の目的には、そのような記憶装置アクセス・システムを提供することが含まれる。
本発明により提供される1実施態様の記憶装置アクセス・システムは、以下を含む構成をなす。すなわち、複数の頻出データについてアドレスおよび各アドレスに割当てられたデータ・インデックスを保持し、書込み又は読出しデータのアドレスを取得して取得アドレスで保持アドレスを検索するアドレス検索部と、複数の頻出データおよびデータ・インデックスの各々に関係付けられたタグを保持し、アドレス検索部から取得アドレスが保持アドレスにヒットしたときのデータ・インデックスを取得して、取得データ・インデックスに関係付けられたタグに対応する頻出データを特定する頻出データ保持部と、頻出データ保持部から頻出データを取得して書込みデータと比較し、書込みデータにヒットした頻出データを特定するデータ比較部と、データ比較部から書込みデータおよび頻出データを取得して圧縮し、記憶装置から読出しデータを取得して伸張する圧縮・伸張部と、圧縮・伸張部から圧縮された書込みデータおよび頻出データを取得し、データ比較部により指示されて圧縮された書込みデータおよび頻出データのいずれかを選択する書込みデータ選択部と、読出しデータのアドレスがアドレス検索部の保持アドレスにヒットしたときには、頻出データ保持部から頻出データの中で特定された読出しデータを取得し、ヒットしなかったときには、記憶装置から読出されて圧縮・伸張部で伸張された読出しデータを取得し、アドレス検索部により指示されて特定された読出しデータおよび伸張された読出しデータのいずれかを選択する読出しデータ選択部とである。
好ましくは、頻出データ保持部は、書込みデータが頻出データにヒットしたことをデータ比較部から指示されたときには、アドレス検索部にヒットした頻出データのタグを通知して、取得アドレスによるアドレス検索部の最も古いタグの保持アドレスの書換えを指示し、取得アドレスがアドレス検索部の保持アドレスにヒットして対応するタグで特定された頻出データに書込みデータがヒットしなかったことをデータ比較部から指示されたときには、アドレス検索部にヒットした保持アドレスの無効化を指示する。
好ましくは、アドレス検索部は、各エントリに、アドレスを保持するアドレス・フィールドと、アドレス・フィールドのアドレスについて書込みおよび読出しが行われた回数を表すフラグを保持するフラグ・フィールドと、アドレス・フィールドのアドレスについてのデータ・インデックスを保持するデータ・インデックス・フィールドとを有する、複数のエントリからなるテーブルを含む。
好ましくは、頻出データ保持部がアドレス検索部にヒットした保持アドレスの無効化を指示したとき、ヒットした保持アドレスについてのエントリにおけるフラグ・フィールドのフラグは、無効を表す所定の値に設定される。
好ましくは、頻出データ保持部は、各エントリに、タグを保持するタグ・フィールドと、タグ・フィールドのタグに対応する頻出データを保持する頻出データ・フィールドとを有する、複数のエントリからなるテーブルを含む。
好ましくは、頻出データ・フィールドは、記憶装置に記憶された頻出頻度の高い基本データ長のデータを保持する。
好ましくは、データ比較部は、それぞれが対応する頻出データの各々と書込みデータとを比較する、複数のコンパレータを含む。
好ましくは、圧縮・伸張部は、書込みデータおよび頻出データを圧縮する圧縮回路を少なくとも1つ備える圧縮エンジン部と、記憶装置からの読出しデータを伸張する伸張回路を少なくとも1つ備える伸張エンジン部と、圧縮回路で圧縮するデータと伸張回路で伸張する符号とを対応付けるデータ符号化対応テーブルを少なくとも1つ備える圧縮・伸張辞書部とを含む。
好ましくは、圧縮回路および伸張回路に応じて対応するデータ符号化対応テーブルを備え、対応するデータ符号化対応テーブルのデータは、頻出データ保持部に保持される対応する頻出データを構成する。
好ましくは、書込みデータ選択部は、データ比較部からの指示に応答して圧縮された書込みデータおよび頻出データのいずれかを選択するセレクタを含む。
好ましくは、読出しデータ選択部は、アドレス検索部からの指示に応答して特定された読出しデータおよび伸張された読出しデータのいずれかを選択するセレクタを含む。
本発明により、記憶装置の記憶容量を有効に活用することができるだけでなく、書込み読出し速度を高めることができる記憶装置アクセス・システムが実現される。特に、データを圧縮して書込み伸張して読出しても、記憶装置における頻出データの書込み読出し速度を高めることができる。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。本発明は多くの異なる態様で実施することが可能であり、記載された実施形態の内容に限定して解釈されるべきではない。なお、実施形態の説明の全体を通じて同じ構成部分乃至構成要素には同じ番号を付している。
図1は、本発明の1実施形態に係る記憶装置アクセス・システム100の構成例を示す。アクセス・システム100は、PLB(Processor Local Bus)などのオン・チップ・バス110と記憶装置に対する書込み・読出し制御装置120との間に設けられている。記憶装置はどのようなタイプのものでも構わない。例えば、チップ内部に設けられるキャッシュやメモリなどの記憶装置でも良いし、チップ外部に設けられるHDD(HardDisk Drive)やSSD(Solid State Drive)などの記憶装置でも良い。図1には、例として、メモリ・デバイス130およびHDD/SSD140が示される。オン・チップ・バス110からアドレス線およびデータ線によりそれぞれアドレスおよび書込みデータがアクセス・システム100に提供され、アクセス・システム100からデータ線により読出しデータがオン・チップ・バス110に提供される。
アクセス・システム100には、アドレス検索部10と、頻出データ保持部20と、データ比較部30と、圧縮エンジン部50、圧縮・伸張辞書部60および伸張エンジン部70を備える圧縮・伸張部40と、書込みデータ選択部80と、読出しデータ選択部90とが含まれる。
アドレス検索部10にアドレスが入力される。アドレス検索部10は、アクセス・システム100のアクセスする記憶装置、例えば、メモリ・デバイス130やHDD/SSD140における頻出頻度の高い複数の頻出データについてのアドレスと各アドレスに割当てられたデータ・インデックスを保持する。そのような複数の頻出データは、例えば、0や1が32ビット続くようなAll0やAll1とか、プログラムのコンパイル時に実行コードを分析して得られたデータ・パターンとかなどであり、予め特定することができるので、頻出データのアドレスが用意されアドレス検索部10に保持される。
図2に、アドレス検索部10の構成例を示す。アドレス検索部10は、複数のエントリからなるテーブル11を含んでいる。エントリ数は任意に設定して構わないが、アドレス検索部10で保持する頻出データのアドレス数に応じて決定すると良い。テーブル11の各エントリには、アドレスを保持するアドレス・フィールド12と、アドレス・フィールド12のアドレスについてのデータ・インデックスを保持するデータ・インデックス・フィールド14の他に、アドレス・フィールド12のアドレスについて書込みおよび読出しが行われた回数を表すフラグを保持するフラグ・フィールド13が設けられている。テーブル11は、例えばCAM(ContentAddressable Memory)RAM(Random Access Memory)で構成することができる。アドレス検索を速くするためにアドレス・フィールド12はCAMで構成し、それに対応するフラグ・フィールド13およびデータ・インデックス・フィールド14はRAMで構成する。
各エントリでは、アドレス・フィールド12に、例えばオン・チップ・バス110からアドレス線により提供されるフル・ビットのアドレスと同じ形式で、頻出データのアドレスが用意され保持される。フラグ・フィールド13は、例えばアドレス・フィールド12のアドレスについて書込みおよび読出しが行われた回数を格納するカウンタ・ビットである。フラグ・フィールド13のフラグによりアドレス・フィールド12のアドレスについての履歴を蓄えるようにして、実際に記憶装置を使用している実行時のそのアドレスで指定される頻出データのアクセス頻度を動的に捉える。フラグから得られるアクセス頻度に基づいて、アクセス頻度順にそれぞれ対応する頻出データを保持するようにしても良い。フラグ・フィールド13のフラグは、書込みおよび読出しの回数を表す他に、例えば0である所定の値になったときには、アドレス・フィールド12のアドレスの無効を表すことができる。データ・インデックス・フィールド14に、例えば0から順番に割当てられた数値が保持される。データ・インデックス・フィールド14に保持されるデータ・インデックスは、アドレス・フィールド12のアドレスを対応する頻出データに関連付けるタグとして使用される。
アドレス検索部10は、アドレスを取得すると、テーブル11を使って取得アドレスでアドレス・フィールド12のアドレスを検索する。取得アドレスがアドレス・フィールド12のアドレスにヒットすると(アドレス・ヒット)、ヒットしたアドレスのデータ・インデックス・フィールド14に保持されるデータ・インデックスに関係付けられたタグを頻出データ保持部20に出力する。書込みデータの取得アドレスについては、アドレス・フィールド12のアドレスにヒットしてもしなくても書込み・読出し制御装置120に出力される。読出しデータの取得アドレスについては、アドレス・フィールド12のアドレスにヒットしないとき(読出しミス)には書込み・読出し制御装置120に出力されるが、ヒットしたとき(読出しヒット)には書込み・読出し制御装置120に出力されない。これは、読出しデータの取得アドレスがアドレス・フィールド12のアドレスにヒットしたとき(読出しヒット)には、記憶装置から読出しデータを取得するのではなくて、頻出データ保持部20に保持する頻出データを読出しデータとして提供するからである。その時、頻出データ保持部20から提供する頻出データを読出しデータとして選択するように、アドレス検索部10は読出しデータ選択部90に読出しデータの選択を指示する。
アドレス検索部10は、データ比較部30で入力された書込みデータが頻出データ保持部20に保持する頻出データにヒットするとき(データ・ヒット)、頻出データ保持部20からヒットした頻出データのタグを通知され、アドレス・フィールド12の中の最も古いタグの保持アドレスをその書込みデータの取得アドレスに書換える指示を受けて、その書換えを行う。アドレス・フィールド12の中の最も古いタグの保持アドレスは、フラグ・フィールド13のフラグを調べることにより決められる。この書換えにより、最も古いタグの保持アドレスを有していたエントリは、アドレス・フィールド12にその取得アドレスを保持し、フラグ・フィールド13に新しいフラグを保持し、データ・インデックス・フィールド14に通知されたタグを保持する。また、入力された書込みデータの取得アドレスがアドレス検索部10の保持アドレスにヒットして、対応するタグで頻出データ保持部20により特定された頻出データにその書込みデータがヒットしなかったとき、アドレス検索部10は、頻出データ保持部20からヒットした保持アドレスの無効化(無効にする)を指示され、ヒットした保持アドレスを無効にする。無効化は、フラグ・フィールド13のフラグを例えば0である所定の値にすることにより行われる。
頻出データ保持部20は、アクセスする記憶装置における複数の頻出データおよびアドレス検索部10の各データ・インデックスに関係付けられたタグを保持する。また、頻出データ保持部20は、データ比較部30でオン・チップ・バス110からの書込みデータと比較するために、保持する各頻出データをデータ比較部30に提供する。
図3に頻出データ保持部20の構成例を示す。頻出データ保持部20は、複数のエントリからなるテーブル21を含んでいる。エントリ数は任意に設定して構わないが、頻出データ保持部20で保持する頻出データ数に応じて決定すると良い。各頻出データは異なる複数のアドレスで指定され得るので、テーブル21のエントリ数はテーブル11のエントリ数よりも少なくて済む。テーブル21の各エントリには、タグを保持するタグ・フィールド22と、予め用意され各タグに対応した頻出データを保持する頻出データ・フィールド23が設けられている。頻出データ・フィールド23に頻出データを保持する仕方は特に限定されないが、例えば、アドレス検索部10のフラグから得られるアクセス頻度に基づいて、頻出データ・フィールド23にアクセス頻度順にそれぞれ対応する頻出データを保持するようにしても良い。
各エントリでは、タグ・フィールド22にアドレス検索部10のデータ・インデックス・フィールド14に保持されるデータ・インデックスに関係付けられたタグが保持される。したがって、タグ・フィールド22には、そのデータ・インデックス・フィールド14と同様に、例えば0から順番に割当てられた数値が保持される。頻出データ・フィールド23には、オン・チップ・バス110から書込まれオン・チップ・バス110へ読出される基本データ長、例えば画像のピクセル長やキャッシュのライン長などの纏った単位で書込みおよび読出しが行われるデータ長を有する頻出データが保持される。頻出データは、例えば、0や1が32ビット続くようなAll0やAll1とか、プログラムのコンパイル時に実行コードを分析して得られたデータ・パターンとかなどである。
頻出データ保持部20は、アドレス検索部10で取得アドレスが保持アドレスにヒットすると(アドレス・ヒット)、ヒットした保持アドレスについてのデータ・インデックスに関係付けられたタグをアドレス検索部10から取得する。頻出データ保持部20は、テーブル21のタグ・フィールド22からその取得したデータ・インデックスに関係付けられたタグと一致するタグを検出して、一致したタグに対応する頻出データを特定する。
書込みの場合には、特定された頻出データも、頻出データ・フィールド23に保持される他の頻出データと同様に、データ比較部30でオン・チップ・バス110からの書込みデータと比較される。データ比較部30において書込みデータが特定された頻出データであれ他の頻出データであれヒットしたときには、データ比較部30から頻出データがヒットした指示(データ・ヒット指示)を受けて、ヒットした頻出データのエントリにおけるタグ・フィールド22に保持されるタグ(データ・ヒット)をアドレス検索部10に通知し、その取得アドレスでアドレス検索部10の最も古いタグの保持アドレスを書換えることを指示する。データ比較部30において特定された頻出データに書込みデータがヒットしなかったときには、アドレス検索部10でヒットした保持アドレスを無効にすること(ヒット・アドレス無効化)をアドレス検索部10に指示する。読出しの場合には、特定された頻出データ(読出しヒット)は読出しデータとして読出しデータ選択部90に提供される。
データ比較部30は、頻出データ保持部20から保持された頻出データを取得して、オン・チップ・バス110から入力された書込みデータと比較する。図4にデータ比較部30の構成例を示す。データ比較部30は、それぞれが対応する頻出データの各々と書込みデータとを比較する、複数のコンパレータ31a、31b、・・・31nを含む。複数のコンパレータ31a、31b、・・・31nは、書込みデータが頻出データにヒットしたときには、ヒット(データ・ヒット)の指示を生成して頻出データ保持部20および書込みデータ選択部80に出す。複数のコンパレータ31a、31b、・・・31nからは、それぞれに入力された頻出データが比較後に圧縮・伸張部40の圧縮エンジン部50に提供される。書込みデータもデータ比較部30から圧縮エンジン部50に提供される。
圧縮・伸張部40は、データ比較部30から書込みデータおよび頻出データを取得して圧縮し、また、記憶装置に対する書込み・読出し制御装置120から読出しデータを取得して伸張する。図5に圧縮・伸張部40の構成例を示す。圧縮・伸張部40は、圧縮エンジン部50、圧縮・伸張辞書部60および伸張エンジン部70を備える。圧縮エンジン部50は、データ比較部30から取得した書込みデータおよび頻出データを圧縮するそれぞれ圧縮方式の異なる複数の圧縮回路51a、51b、・・・51mを含む。圧縮回路51a、51b、・・・51mは、例えばロスレス圧縮方法(LHAなど)のアルゴリズムをハードウェアで実現した回路などである。圧縮エンジン部50は、書込みデータおよび頻出データをいずれかの圧縮回路で圧縮して書込みデータ選択部80に提供する。伸張エンジン部70は、圧縮エンジン部50に対応して、書込み・読出し制御装置120から取得した読出しデータを伸張するそれぞれ伸張方式の異なる複数の伸張回路71a、71b、・・・71mを含む。伸張エンジン部70は、読出しデータをいずれかの伸張回路で伸張して読出しデータ選択部90に提供する。書込み・読出し制御装置120から読出しデータを取得するのは、頻出データ保持部20に読出しデータとなる該当する頻出データがないときである(読出しミス)。圧縮・伸張辞書部60は、それぞれ圧縮回路51a、51b、・・・51mで圧縮するデータと対応する伸張回路71a、71b、・・・71mで伸張する符号とを対応付けるデータ符号化対応テーブル61a、61b、・・・61mを含む。圧縮回路51a、51b、・・・51mおよび伸張回路71a、71b、・・・71mそれぞれに応じて、対応するデータ符号化対応テーブル61a、61b、・・・61mにおける圧縮するデータにより頻出データ保持部20に保持される頻出データが構成されるようにしても良い。
書込みデータ選択部80は、圧縮・伸張部40から圧縮された書込みデータおよび頻出データを取得し、データ比較部30により指示されて圧縮された書込みデータおよび圧縮・伸張辞書部60に登録された圧縮済みの頻出データのいずれかを選択する。図6に書込みデータ選択部80の構成例を示す。書込みデータ選択部80は、データ比較部30からの指示に応答して圧縮された書込みデータおよび頻出データのいずれかを選択して書込み・読出し制御装置120に提供するセレクタ81を含む。
読出しデータ選択部90は、オン・チップ・バス110から取得した読出しデータのアドレスがアドレス検索部10の保持アドレスにヒットしたとき(読出しヒット)には、頻出データ保持部20から頻出データの中で特定された頻出データを取得し、ヒットしなかったとき(読出しミス)には、記憶装置に対する書込み・読出し制御装置120から読出されて圧縮・伸張部40で伸張された読出しデータを取得する。読出しデータ選択部90は、アドレス検索部10により指示されて特定された頻出データおよび伸張された読出しデータのいずれかを選択する。図7に読出しデータ選択部90の構成例を示す。読出しデータ選択部90は、アドレス検索部10からの指示に応答して特定された頻出データおよび伸張された読出しデータのいずれかを選択してオン・チップ・バス110に提供するセレクタ91を含む。
図8に記憶装置アクセス・システム100における書込み処理の流れを示す。アクセス・システム100はオン・チップ・バス110からアドレスおよび書込みデータの入力があるとステップ801で開始する。アクセス・システム100では、ステップ802で入力されたアドレスおよび書込みデータが取得され、ステップ803で取得アドレスについてアドレス検索部10により保持アドレスを検索するアドレス検索が行われる。ステップ803でアドレス検索が行われてヒットしなかったとき(No)は、ステップ804へ進み、ヒットしたとき(Yes)は、ステップ805へ進む。ステップ804およびステップ805では、ともにデータ比較部30により書込みデータが頻出データ保持部20からの頻出データと比較される。ステップ804およびステップ805での比較でデータ・ヒット(一致)のとき(Yes)は、ステップ806へ進んで、アドレス検索部10が、頻出データ保持部20からヒットした頻出データのタグを通知され、アドレス・フィールド12の中の最も古いタグの保持アドレスを取得アドレスに書換える指示を受け、その書換えが行われる。ステップ805での比較でデータがヒットしなかったとき(No)は、ステップ807へ進んで、アドレス検索部10が、頻出データ保持部20からヒットした保持アドレスの無効化(無効にする)を指示され、ヒットした保持アドレスが無効にされる。ステップ804での比較でデータがヒットしなかったとき(No)およびステップ807でヒットした保持アドレスが無効にされたときは、ステップ808で圧縮・伸張部40により書込みデータが圧縮される。ステップ806で最も古いタグの保持アドレスが取得アドレスに書換えられたときは、ステップ808で圧縮・伸張部40により書込みデータおよびヒットした頻出データが圧縮される。ステップ808でデータが圧縮された後、ステップ809へ進む。ステップ809では、読出しヒット以外のときにアドレス検索部10により取得アドレスが出力され、また、データ比較部30からの指示で書込みデータ選択部80により圧縮された書込みデータおよび圧縮・伸張辞書部60に登録された圧縮済みの頻出データのいずれかが選択されて出力される。アクセス・システム100は、ステップ809で取得アドレスおよび圧縮データを出力すると、ステップ810に進み、データ書込みの処理を終了する。
図9に記憶装置アクセス・システム100における読出し処理の流れを示す。アクセス・システム100はオン・チップ・バス110からアドレスの入力があるとステップ901で開始する。アクセス・システム100では、ステップ902で入力されたアドレスが取得され、ステップ903で取得アドレスについてアドレス検索部10により保持アドレスを検索するアドレス検索が行われる。ステップ903でアドレス検索が行われてヒットしたとき(Yes)、すなわち読出しヒットのときは、ステップ904へ進み、ヒットしなかったとき(No)、すなわち読出しミスのときは、ステップ906へ進む。読出しヒットのときには、読出しデータ選択部90により、ステップ904で頻出データ保持部20から取得アドレスにヒットした頻出データが取得され、ステップ905で頻出データが読出しデータとして選択され出力される。一方、読出しミスのときには、ステップ906で取得アドレスがアドレス検索部10から書込み・読出し制御装置120に出力され、記憶装置におけるそのアドレスの圧縮データが取得される。取得した圧縮データはステップ907で圧縮・伸張部40により伸張される。ステップ908では、読出しデータ選択部90により、伸張データが圧縮・伸張部40から取得され、読出しデータとして選択され出力される。アクセス・システム100は、ステップ905で頻出データを読出しデータとして出力するか、又はステップ908で伸張データを読出しデータとして出力すると、ステップ909に進み、データ読出しの処理を終了する。
以上、実施態様を用いて本発明の説明をしたが、本発明の技術的範囲は実施態様について記載した範囲には限定されない。実施態様に種々の変更又は改良を加えることが可能であり、そのような変更又は改良を加えた態様も当然に本発明の技術的範囲に含まれる。
10 アドレス検索部
20 頻出データ保持部
30 データ比較部
40 圧縮・伸張部
80 書込みデータ選択部
90 読出しデータ選択部
100 記憶装置アクセス・システム
20 頻出データ保持部
30 データ比較部
40 圧縮・伸張部
80 書込みデータ選択部
90 読出しデータ選択部
100 記憶装置アクセス・システム
Claims (11)
- 記憶装置に対してデータを書込みおよび読出すための記憶装置アクセス・システムであって、
複数の頻出データについてアドレスおよび各アドレスに割当てられたデータ・インデックスを保持し、書込み又は読出しデータのアドレスを取得して取得アドレスで保持アドレスを検索するアドレス検索部と、
前記複数の頻出データおよび前記データ・インデックスの各々に関係付けられたタグを保持し、前記アドレス検索部から前記取得アドレスが前記保持アドレスにヒットしたときの前記データ・インデックスを取得して、取得データ・インデックスに関係付けられた前記タグに対応する前記頻出データを特定する頻出データ保持部と、
前記頻出データ保持部から前記頻出データを取得して前記書込みデータと比較し、前記書込みデータにヒットした前記頻出データを特定するデータ比較部と、
前記データ比較部から前記書込みデータおよび前記頻出データを取得して圧縮し、前記記憶装置から前記読出しデータを取得して伸張する圧縮・伸張部と、
前記圧縮・伸張部から圧縮された前記書込みデータおよび前記頻出データを取得し、前記データ比較部により指示されて圧縮された前記書込みデータおよび前記頻出データのいずれかを選択する書込みデータ選択部と、
前記読出しデータのアドレスが前記アドレス検索部の前記保持アドレスにヒットしたときには、前記頻出データ保持部から前記頻出データの中で特定された読出しデータを取得し、ヒットしなかったときには、前記記憶装置から読出されて前記圧縮・伸張部で伸張された読出しデータを取得し、前記アドレス検索部により指示されて前記特定された読出しデータおよび前記伸張された読出しデータのいずれかを選択する読出しデータ選択部と、
を含む、記憶装置アクセス・システム。 - 前記頻出データ保持部は、前記書込みデータが前記頻出データにヒットしたことを前記データ比較部から指示されたときには、前記アドレス検索部にヒットした前記頻出データの前記タグを通知して、前記取得アドレスによる前記アドレス検索部の最も古い前記タグの前記保持アドレスの書換えを指示し、前記取得アドレスが前記アドレス検索部の前記保持アドレスにヒットして対応する前記タグで特定された前記頻出データに前記書込みデータがヒットしなかったことを前記データ比較部から指示されたときには、前記アドレス検索部にヒットした前記保持アドレスの無効化を指示する、請求項1に記載の記憶装置アクセス・システム。
- 前記アドレス検索部は、各エントリに、前記アドレスを保持するアドレス・フィールドと、前記アドレス・フィールドの前記アドレスについて書込みおよび読出しが行われた回数を表すフラグを保持するフラグ・フィールドと、前記アドレス・フィールドの前記アドレスについての前記データ・インデックスを保持するデータ・インデックス・フィールドとを有する、複数のエントリからなるテーブルを含む、請求項1又は2に記載の記憶装置アクセス・システム。
- 前記頻出データ保持部が前記アドレス検索部にヒットした前記保持アドレスの無効化を指示したとき、ヒットした前記保持アドレスについての前記エントリにおける前記フラグ・フィールドの前記フラグは、無効を表す所定の値に設定される、請求項3に記載の記憶装置アクセス・システム。
- 前記頻出データ保持部は、各エントリに、前記タグを保持するタグ・フィールドと、前記タグ・フィールドの前記タグに対応する前記頻出データを保持する頻出データ・フィールドとを有する、複数のエントリからなるテーブルを含む、請求項1〜4のいずれか1項に記載の記憶装置アクセス・システム。
- 前記頻出データ・フィールドは、前記記憶装置に記憶された頻出頻度の高い基本データ長のデータを保持する、請求項5に記載の記憶装置アクセス・システム。
- 前記データ比較部は、それぞれが対応する前記頻出データの各々と前記書込みデータとを比較する、複数のコンパレータを含む、請求項1〜6のいずれか1項に記載の記憶装置アクセス・システム。
- 前記圧縮・伸張部は、前記書込みデータおよび前記頻出データを圧縮する圧縮回路を少なくとも1つ備える圧縮エンジン部と、前記記憶装置からの前記読出しデータを伸張する伸張回路を少なくとも1つ備える伸張エンジン部と、前記圧縮回路で圧縮するデータと前記伸張回路で伸張する符号とを対応付けるデータ符号化対応テーブルを少なくとも1つ備える圧縮・伸張辞書部とを含む、請求項1〜7のいずれか1項に記載の記憶装置アクセス・システム。
- 前記圧縮回路および前記伸張回路に応じて対応する前記データ符号化対応テーブルを備え、対応する前記データ符号化対応テーブルの前記データは、前記頻出データ保持部に保持される対応する前記頻出データを構成する、請求項8に記載の記憶装置アクセス・システム。
- 前記書込みデータ選択部は、前記データ比較部からの指示に応答して圧縮された前記書込みデータおよび前記頻出データのいずれかを選択するセレクタを含む、請求項1〜9のいずれか1項に記載の記憶装置アクセス・システム。
- 前記読出しデータ選択部は、前記アドレス検索部からの指示に応答して前記特定された読出しデータおよび前記伸張された読出しデータのいずれかを選択するセレクタを含む、請求項1〜10のいずれか1項に記載の記憶装置アクセス・システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013550163A JP5629392B2 (ja) | 2011-12-22 | 2012-10-03 | 記憶装置アクセス・システム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011282034 | 2011-12-22 | ||
JP2011282034 | 2011-12-22 | ||
PCT/JP2012/075606 WO2013094280A1 (ja) | 2011-12-22 | 2012-10-03 | 記憶装置アクセス・システム |
JP2013550163A JP5629392B2 (ja) | 2011-12-22 | 2012-10-03 | 記憶装置アクセス・システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5629392B2 true JP5629392B2 (ja) | 2014-11-19 |
JPWO2013094280A1 JPWO2013094280A1 (ja) | 2015-04-27 |
Family
ID=48655555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013550163A Expired - Fee Related JP5629392B2 (ja) | 2011-12-22 | 2012-10-03 | 記憶装置アクセス・システム |
Country Status (6)
Country | Link |
---|---|
US (1) | US9146933B2 (ja) |
JP (1) | JP5629392B2 (ja) |
CN (1) | CN103999061B (ja) |
DE (1) | DE112012005383B4 (ja) |
GB (1) | GB2510523B (ja) |
WO (1) | WO2013094280A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9146933B2 (en) | 2011-12-22 | 2015-09-29 | International Business Machines Corporation | Compressed storage access system with uncompressed frequent use data |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8611437B2 (en) | 2012-01-26 | 2013-12-17 | Nvidia Corporation | Ground referenced single-ended signaling |
US9338036B2 (en) | 2012-01-30 | 2016-05-10 | Nvidia Corporation | Data-driven charge-pump transmitter for differential signaling |
US9170980B2 (en) | 2013-03-15 | 2015-10-27 | Nvidia Corporation | Ground-referenced single-ended signaling connected graphics processing unit multi-chip module |
US9171607B2 (en) | 2013-03-15 | 2015-10-27 | Nvidia Corporation | Ground-referenced single-ended system-on-package |
US9153314B2 (en) | 2013-03-15 | 2015-10-06 | Nvidia Corporation | Ground-referenced single-ended memory interconnect |
US9147447B2 (en) * | 2013-03-15 | 2015-09-29 | Nvidia Corporation | Ground-referenced single-ended memory interconnect |
US9153539B2 (en) | 2013-03-15 | 2015-10-06 | Nvidia Corporation | Ground-referenced single-ended signaling connected graphics processing unit multi-chip module |
US9430375B2 (en) * | 2013-12-30 | 2016-08-30 | International Business Machines Corporation | Techniques for storing data in bandwidth optimized or coding rate optimized code words based on data access frequency |
JP2015176245A (ja) | 2014-03-13 | 2015-10-05 | 株式会社東芝 | 情報処理装置及びデータ構造 |
JP2016057763A (ja) | 2014-09-08 | 2016-04-21 | 株式会社東芝 | キャッシュ装置、及びプロセッサ |
US9684602B2 (en) | 2015-03-11 | 2017-06-20 | Kabushiki Kaisha Toshiba | Memory access control device, cache memory and semiconductor device |
CN108563532B (zh) * | 2018-02-28 | 2021-01-19 | 深圳和而泰家居在线网络科技有限公司 | 数据处理方法及相关装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5007A (en) * | 1847-03-13 | Improvement in steam-presses | ||
JPH0573213A (ja) * | 1991-09-12 | 1993-03-26 | Hitachi Ltd | 外部記憶装置システム |
JPH05189360A (ja) * | 1992-01-14 | 1993-07-30 | Shikoku Nippon Denki Software Kk | データ転送および記憶方式 |
JPH10260896A (ja) * | 1997-03-19 | 1998-09-29 | Hitachi Ltd | 半導体装置 |
JP2002140227A (ja) * | 2000-09-20 | 2002-05-17 | Hewlett Packard Co <Hp> | メモリ圧縮管理デバイス |
US6779100B1 (en) * | 1999-12-17 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | Method and device for address translation for compressed instructions |
JP2012014493A (ja) * | 2010-07-01 | 2012-01-19 | Sony Corp | メモリ管理装置、メモリ管理方法及びプログラム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0319351U (ja) * | 1989-07-07 | 1991-02-26 | ||
JPH0572213A (ja) * | 1991-01-24 | 1993-03-23 | Hitachi Ltd | 自動分析装置の測定方法 |
JP2818324B2 (ja) * | 1991-07-02 | 1998-10-30 | 株式会社ナックス | ソフトウェアの自動販売システム |
JPH05204747A (ja) | 1992-01-29 | 1993-08-13 | Mitsubishi Electric Corp | 半導体メモリコントローラ |
JP3704483B2 (ja) | 1992-10-22 | 2005-10-12 | 日本電気株式会社 | ファイル圧縮処理装置 |
AU679457B2 (en) * | 1992-10-22 | 1997-07-03 | Nec Corporation | File compression processor |
JPH07160430A (ja) | 1993-12-03 | 1995-06-23 | Fuji Xerox Co Ltd | 自動入出力管理装置 |
JP3019351U (ja) * | 1995-06-13 | 1995-12-12 | 株式会社ハドソン | コンピュータ用外部記憶装置 |
JPH09212505A (ja) | 1996-01-30 | 1997-08-15 | Canon Inc | 文書処理装置および方法 |
JPH09219647A (ja) | 1996-02-09 | 1997-08-19 | Casio Comput Co Ltd | ファイル処理装置 |
JPH1124974A (ja) | 1997-07-08 | 1999-01-29 | Canon Inc | ファイル管理装置及びファイル管理方法 |
JP3216606B2 (ja) * | 1998-07-13 | 2001-10-09 | 日本電気株式会社 | ファイル圧縮管理方法 |
JP2000066844A (ja) | 1998-08-17 | 2000-03-03 | Nec Off Syst Ltd | ディスク装置圧縮システム |
JP2000163264A (ja) | 1998-11-30 | 2000-06-16 | Ricoh Co Ltd | Cpu用のプログラム記憶装置 |
JP2002132546A (ja) | 2000-10-24 | 2002-05-10 | Xaxon R & D Corp | 記憶装置 |
US7188227B2 (en) | 2003-09-30 | 2007-03-06 | International Business Machines Corporation | Adaptive memory compression |
JP2007094639A (ja) | 2005-09-28 | 2007-04-12 | Tdk Corp | メモリコントローラ及びフラッシュメモリシステム |
JP2007060639A (ja) | 2006-06-21 | 2007-03-08 | Teruhiro Hirata | 立体テレビ放送システムとその鑑賞器 |
JP4921080B2 (ja) * | 2006-09-01 | 2012-04-18 | キヤノン株式会社 | メモリ制御回路及びメモリ制御方法 |
JP5782214B2 (ja) | 2008-05-30 | 2015-09-24 | 富士通株式会社 | 情報検索プログラム、情報検索装置および情報検索方法 |
JP5621229B2 (ja) | 2009-08-27 | 2014-11-12 | 日本電気株式会社 | ストレージシステム、管理方法及びプログラム |
JP5204747B2 (ja) | 2009-12-10 | 2013-06-05 | 日東精工株式会社 | ねじ部品締結機 |
WO2012116369A2 (en) * | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
US8838897B2 (en) * | 2011-06-29 | 2014-09-16 | New Jersey Institute Of Technology | Replicating tag entries for reliability enhancement in cache tag arrays |
WO2013094280A1 (ja) | 2011-12-22 | 2013-06-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記憶装置アクセス・システム |
-
2012
- 2012-10-03 WO PCT/JP2012/075606 patent/WO2013094280A1/ja active Application Filing
- 2012-10-03 DE DE112012005383.4T patent/DE112012005383B4/de active Active
- 2012-10-03 CN CN201280061338.7A patent/CN103999061B/zh not_active Expired - Fee Related
- 2012-10-03 GB GB201408611A patent/GB2510523B/en active Active
- 2012-10-03 JP JP2013550163A patent/JP5629392B2/ja not_active Expired - Fee Related
- 2012-12-20 US US13/721,562 patent/US9146933B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5007A (en) * | 1847-03-13 | Improvement in steam-presses | ||
JPH0573213A (ja) * | 1991-09-12 | 1993-03-26 | Hitachi Ltd | 外部記憶装置システム |
JPH05189360A (ja) * | 1992-01-14 | 1993-07-30 | Shikoku Nippon Denki Software Kk | データ転送および記憶方式 |
JPH10260896A (ja) * | 1997-03-19 | 1998-09-29 | Hitachi Ltd | 半導体装置 |
US6779100B1 (en) * | 1999-12-17 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | Method and device for address translation for compressed instructions |
JP2002140227A (ja) * | 2000-09-20 | 2002-05-17 | Hewlett Packard Co <Hp> | メモリ圧縮管理デバイス |
JP2012014493A (ja) * | 2010-07-01 | 2012-01-19 | Sony Corp | メモリ管理装置、メモリ管理方法及びプログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9146933B2 (en) | 2011-12-22 | 2015-09-29 | International Business Machines Corporation | Compressed storage access system with uncompressed frequent use data |
Also Published As
Publication number | Publication date |
---|---|
CN103999061A (zh) | 2014-08-20 |
GB2510523B (en) | 2014-12-10 |
DE112012005383B4 (de) | 2022-03-10 |
GB201408611D0 (en) | 2014-06-25 |
DE112012005383T5 (de) | 2014-09-11 |
GB2510523A (en) | 2014-08-06 |
WO2013094280A1 (ja) | 2013-06-27 |
CN103999061B (zh) | 2016-08-17 |
JPWO2013094280A1 (ja) | 2015-04-27 |
US20130166519A1 (en) | 2013-06-27 |
US9146933B2 (en) | 2015-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5629392B2 (ja) | 記憶装置アクセス・システム | |
US8782018B2 (en) | Storage device and data processing device utilizing determined dictionary compression | |
US9053018B2 (en) | Compressed memory page selection based on a population count of a dataset | |
CN107305586B (zh) | 索引生成方法、索引生成装置及搜索方法 | |
CN100432959C (zh) | 压缩高速缓存内数据的机制 | |
US10044370B1 (en) | Lossless binary compression in a memory constrained environment | |
KR20170097609A (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
WO2015145647A1 (ja) | ストレージ装置とデータ処理方法及びストレージシステム | |
US8674858B2 (en) | Method for compression and real-time decompression of executable code | |
US10862507B2 (en) | Variable-sized symbol entropy-based data compression | |
CN111832065A (zh) | 使用电路实现的软件和用于密钥-值存储的方法 | |
US7533234B2 (en) | Method and apparatus for storing compressed code without an index table | |
CN107548491B (zh) | 用于管理存储器的设备和方法以及存储介质 | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
US9619400B2 (en) | Efficient management of computer memory using memory page associations and memory compression | |
US6353871B1 (en) | Directory cache for indirectly addressed main memory | |
US8880845B2 (en) | Memory system and operating method thereof | |
JP2007519100A (ja) | コンピューターシステム、方法、装置 | |
US10103747B1 (en) | Lossless binary compression in a memory constrained environment | |
US20230076729A2 (en) | Systems, methods and devices for eliminating duplicates and value redundancy in computer memories | |
CN116909939A (zh) | 基于lsm树的键值分离存储引擎垃圾回收方法、系统及设备 | |
JP5626561B2 (ja) | 情報処理システム及びそのデータ管理方法 | |
CN111966606B (zh) | 数据储存装置与数据处理方法 | |
KR20070054055A (ko) | 데이터 처리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140822 |
|
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: 20140916 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141003 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5629392 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |