WO2013094280A1 - 記憶装置アクセス・システム - Google Patents
記憶装置アクセス・システム Download PDFInfo
- Publication number
- WO2013094280A1 WO2013094280A1 PCT/JP2012/075606 JP2012075606W WO2013094280A1 WO 2013094280 A1 WO2013094280 A1 WO 2013094280A1 JP 2012075606 W JP2012075606 W JP 2012075606W WO 2013094280 A1 WO2013094280 A1 WO 2013094280A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- address
- unit
- frequent
- storage device
- Prior art date
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
Definitions
- the present invention relates to a storage device access system for writing and reading data to and from a storage device, and more particularly to a storage device access system having a data compression / decompression function.
- the data is compressed or encoded and written, and the compressed data is expanded or decoded and read.
- Patent Documents 1 and 2 show a semiconductor memory device in which data is compressed, written, expanded, and read by providing a data compression / decompression function in a memory controller.
- Patent Document 3 when a file storage device has a large free space, a file can be played at high speed without being compressed, and a compression method suitable for the access frequency and type of the file is selected. A file compression processing apparatus that enables efficient use of a file is shown.
- Patent Document 4 in a storage device, by not compressing a frequently used file, it is possible to reduce the work time required for expanding the file and prevent a decrease in processing performance, and to reduce the usage frequency.
- a file compression management system that enables files to be managed with a storage capacity that is greater than the actual capacity by compressing the files.
- An object of the present invention is to realize a storage device access system that can not only effectively use the storage capacity of a storage device but also increase the writing / reading speed. It is an object of the present invention to provide such a storage device access system.
- One embodiment of the storage device access system comprises the following. That is, an address search unit that holds an address and a data index assigned to each address for a plurality of frequent data, acquires an address of write or read data, and searches for a hold address by the acquired address, and a plurality of frequent data and Holds a tag associated with each of the data indexes, obtains a data index when the obtained address hits the retained address from the address search unit, and corresponds to the tag associated with the obtained data index
- a frequent data holding unit that identifies frequent data
- a data comparison unit that acquires frequent data from the frequent data holding unit and compares it with write data, identifies frequent data that hits the write data, and a write data from the data comparison unit Acquires frequent data, compresses it, and reads it from the storage device
- the compression / decompression unit that acquires and decompresses the data, and the write data and frequent data compressed from the compression / decompression unit are acquired, and either the write data or frequent data compressed by the data comparison
- the read data specified in the frequent data is acquired from the frequent data holding unit, and stored if not hit
- a read data selection unit that obtains read data read from the apparatus and decompressed by the compression / decompression unit, and selects either the read data specified by the address search unit or the decompressed read data; .
- the frequent data holding unit notifies the address retrieval unit of the tag of the frequent data hit when the data comparison unit is instructed that the write data hits the frequent data, and the address retrieval unit of the acquired address uses the address retrieval unit.
- the address search unit is instructed to invalidate the held address.
- the address search unit includes, for each entry, an address field that holds an address, a flag field that holds a flag indicating the number of times the address field has been written to and read from, and an address field A table of entries having a data index field holding a data index for the address.
- the flag in the flag field in the entry for the hit holding address is set to a predetermined value indicating invalidity.
- the frequent data holding unit includes, in each entry, a table composed of a plurality of entries having a tag field holding a tag and a frequent data field holding frequent data corresponding to the tag of the tag field. Including.
- the frequent data field holds data having a basic data length with a high frequent frequency stored in the storage device.
- the data comparison unit includes a plurality of comparators that compare each of frequent data corresponding to each of the data and the write data.
- the compression / decompression unit includes a compression engine unit that includes at least one compression circuit that compresses write data and frequent data, and a decompression engine unit that includes at least one expansion circuit that decompresses read data from the storage device. And a compression / expansion dictionary unit having at least one data encoding correspondence table that associates data to be compressed by the compression circuit with codes to be decompressed by the decompression circuit.
- a corresponding data encoding correspondence table is provided according to the compression circuit and the decompression circuit, and the data in the corresponding data encoding correspondence table constitutes the corresponding frequent data held in the frequent data holding unit.
- the write data selection unit includes a selector that selects one of the write data and the frequent data compressed in response to an instruction from the data comparison unit.
- the read data selection unit includes a selector that selects either read data specified in response to an instruction from the address search unit or decompressed read data.
- a storage device access system that can not only effectively use the storage capacity of the storage device but also increase the writing / reading speed is realized.
- frequent data write / read speed in the storage device can be increased.
- FIG. 1 It is a figure which shows the structural example of the storage device access system which concerns on one Embodiment of this invention. It is a figure which shows the structural example of the address search part in a memory
- FIG. 1 shows a configuration example of a storage device access system 100 according to an embodiment of the present invention.
- the access system 100 is provided between an on-chip bus 110 such as a PLB (Processor Local Bus) and a write / read controller 120 for a storage device.
- the storage device may be of any type.
- a storage device such as a cache or a memory provided inside the chip may be used, or a storage device such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) provided outside the chip may be used.
- FIG. 1 shows a memory device 130 and an HDD / SSD 140 as an example. Address and write data are provided to the access system 100 from the on-chip bus 110 via an address line and a data line, respectively, and read data is provided from the access system 100 to the on-chip bus 110 via a data line.
- the access system 100 includes an address search unit 10, a frequent data holding unit 20, a data comparison unit 30, a compression / decompression unit 40 including a compression engine unit 50, a compression / decompression dictionary unit 60, and an expansion engine unit 70. , A write data selection unit 80 and a read data selection unit 90 are included.
- the address search unit 10 holds addresses for a plurality of frequently occurring data in a storage device accessed by the access system 100, for example, the memory device 130 or the HDD / SSD 140, and a data index assigned to each address. To do.
- Such multiple frequent data is, for example, All0 or All1 in which 0 or 1 continues for 32 bits, or a data pattern obtained by analyzing an execution code when compiling a program, etc. Therefore, the address of frequent data is prepared and held in the address search unit 10.
- FIG. 2 shows a configuration example of the address search unit 10.
- the address search unit 10 includes a table 11 composed of a plurality of entries. Although the number of entries may be set arbitrarily, it may be determined according to the number of addresses of frequent data held by the address search unit 10.
- each entry in the table 11 is written for the address in the address field 12.
- a flag field 13 is provided for holding a flag indicating the number of times of reading.
- the table 11 can be composed of, for example, a CAM (Content Addressable Memory) RAM (Random Access Memory).
- the address field 12 is composed of CAM
- the corresponding flag field 13 and data index field 14 are composed of RAM.
- an address of frequent data is prepared and held in the address field 12 in the same format as, for example, a full-bit address provided from the on-chip bus 110 by an address line.
- the flag field 13 is a counter bit that stores the number of times the address field 12 has been written and read, for example.
- the history of the address of the address field 12 is accumulated by the flag of the flag field 13, and the access frequency of the frequent data specified by the address at the time of actually using the storage device is dynamically captured. . Based on the access frequency obtained from the flag, the corresponding frequent data may be held in the order of the access frequency.
- the flag in the flag field 13 can indicate the invalidity of the address in the address field 12 when it reaches a predetermined value, for example, 0, in addition to the number of times of writing and reading. For example, numerical values assigned in order from 0 are held in the data index field 14.
- the data index held in the data index field 14 is used as a tag that associates the address of the address field 12 with the corresponding frequent data.
- the address search unit 10 searches the address in the address field 12 using the acquired address using the table 11.
- the tag associated with the data index held in the data index field 14 of the hit address is output to the frequent data holding unit 20. .
- the acquisition address of the write data is output to the write / read controller 120 regardless of whether the address in the address field 12 is hit.
- the read data acquisition address is output to the write / read control device 120 when the address field 12 address is not hit (read miss), but when it is hit (read hit), the write / read control device is output. 120 is not output.
- the address search unit 10 instructs the read data selection unit 90 to select the read data so that the frequent data provided from the frequent data holding unit 20 is selected as the read data.
- the address search unit 10 sets a tag of the frequent data hit from the frequent data holding unit 20.
- the instruction to rewrite the holding address of the oldest tag in the address field 12 with the acquisition address of the write data is received, and the rewriting is performed.
- the holding address of the oldest tag in the address field 12 is determined by examining the flag in the flag field 13. By this rewriting, the entry having the oldest tag holding address holds the acquired address in the address field 12, holds the new flag in the flag field 13, and is notified to the data index field 14. Keep the tag.
- the retrieval unit 10 is instructed by the frequent data holding unit 20 to invalidate (invalidate) the holding address hit, and invalidates the hit holding address. Invalidation is performed by setting the flag in the flag field 13 to a predetermined value, for example, 0.
- the frequent data holding unit 20 holds a plurality of frequent data in the storage device to be accessed and tags associated with each data index of the address search unit 10. Further, the frequent data holding unit 20 provides each data to be held to the data comparing unit 30 so that the data comparing unit 30 compares the data with the write data from the on-chip bus 110.
- FIG. 3 shows a configuration example of the frequent data holding unit 20.
- the frequent data holding unit 20 includes a table 21 including a plurality of entries. Although the number of entries may be arbitrarily set, it may be determined according to the number of frequent data held by the frequent data holding unit 20. Since each frequent data can be specified by a plurality of different addresses, the number of entries in the table 21 can be smaller than the number of entries in the table 11.
- Each entry of the table 21 is provided with a tag field 22 for holding tags and a frequent data field 23 for holding frequent data prepared in advance corresponding to each tag.
- the method of holding the frequent data in the frequent data field 23 is not particularly limited. For example, based on the access frequency obtained from the flag of the address search unit 10, the frequent data corresponding to the frequent data field 23 in the order of the access frequency is stored. You may make it hold
- the tag field 22 holds numerical values assigned in order from 0, for example.
- the basic data length written from the on-chip bus 110 and read out to the on-chip bus 110 for example, writing in a collective unit such as an image pixel length or a cache line length, Frequent data having a data length to be read is held.
- the frequent data is, for example, All0 or All1 in which 0 or 1 continues for 32 bits, or a data pattern obtained by analyzing an execution code when compiling a program.
- the frequent data holding unit 20 acquires from the address search unit 10 a tag associated with the data index for the hit holding address.
- the frequent data holding unit 20 detects a tag that matches the tag associated with the acquired data index from the tag field 22 of the table 21 and identifies the frequent data corresponding to the matched tag.
- the specified frequent data is also compared with the written data from the on-chip bus 110 by the data comparison unit 30 in the same manner as other frequent data held in the frequent data field 23.
- the data comparison unit 30 receives an instruction (data hit instruction) that the frequent data has been hit, and the hit frequent data
- the tag (data hit) held in the tag field 22 in this entry is notified to the address search unit 10, and an instruction is given to rewrite the holding address of the oldest tag of the address search unit 10 with the obtained address.
- the address search unit 10 is instructed to invalidate the holding address hit by the address search unit 10 (hit address invalidation).
- the specified frequent data (read hit) is provided to the read data selection unit 90 as read data.
- the data comparison unit 30 acquires the frequent data held from the frequent data holding unit 20 and compares it with the write data input from the on-chip bus 110.
- FIG. 4 shows a configuration example of the data comparison unit 30.
- the data comparison unit 30 includes a plurality of comparators 31a, 31b,... 31n that compare each frequently-occurring data and write data. When the write data hits frequent data, the plurality of comparators 31a, 31b,... 31n generate a hit (data hit) instruction and send it to the frequent data holding unit 20 and the write data selection unit 80. From the plurality of comparators 31a, 31b,... 31n, frequent data input to each is provided to the compression engine unit 50 of the compression / decompression unit 40 after comparison. Write data is also provided from the data comparison unit 30 to the compression engine unit 50.
- the compression / decompression unit 40 obtains and compresses write data and frequent data from the data comparison unit 30, and obtains and decompresses read data from the write / read control device 120 for the storage device.
- FIG. 5 shows a configuration example of the compression / decompression unit 40.
- the compression / decompression unit 40 includes a compression engine unit 50, a compression / decompression dictionary unit 60, and an expansion engine unit 70.
- the compression engine unit 50 includes a plurality of compression circuits 51a, 51b,... 51m that respectively compress the write data and frequent data acquired from the data comparison unit 30 and have different compression methods.
- the compression engine unit 50 compresses the write data and the frequent data with any one of the compression circuits and provides the compressed data to the write data selection unit 80.
- the decompression engine unit 70 includes a plurality of decompression circuits 71a, 71b,... 71m, each of which has a different decompression method and decompresses the read data acquired from the write / read control device 120, corresponding to the compression engine unit 50.
- the decompression engine unit 70 decompresses the read data by any decompression circuit and provides the read data to the read data selection unit 90.
- the read data is acquired from the write / read control device 120 when there is no corresponding frequent data to be read data in the frequent data holding unit 20 (read miss).
- the compression / expansion dictionary unit 60 associates the data compressed by the compression circuits 51a, 51b,... 51m with the corresponding decompression circuits 71a, 71b,. 61b, ... including 61m. .. 51m and decompression circuits 71a, 71b,... 71m, corresponding data encoding correspondence tables 61a, 61b,.
- the frequent data held in 20 may be configured.
- the write data selection unit 80 acquires the compressed write data and frequent data from the compression / decompression unit 40, and the compressed write data instructed by the data comparison unit 30 and the compression registered in the compression / decompression dictionary unit 60 Select one of the frequent data.
- FIG. 6 shows a configuration example of the write data selection unit 80.
- the write data selection unit 80 includes a selector 81 that selects and provides either the write data or the frequent data compressed in response to an instruction from the data comparison unit 30 to the write / read control device 120.
- the read data selection unit 90 When the address of the read data acquired from the on-chip bus 110 hits the holding address of the address search unit 10 (read hit), the read data selection unit 90 includes the frequent data from the frequent data holding unit 20. When the specified frequent data is acquired and there is no hit (read miss), read data read from the write / read controller 120 for the storage device and expanded by the compression / expansion unit 40 is acquired. The read data selection unit 90 selects either the frequent data specified by the address search unit 10 and the expanded read data.
- FIG. 7 shows a configuration example of the read data selection unit 90.
- the read data selection unit 90 includes a selector 91 that selects either the frequent data specified in response to an instruction from the address search unit 10 or the expanded read data and provides the selected data to the on-chip bus 110.
- FIG. 8 shows the flow of write processing in the storage device access system 100.
- the access system 100 starts at step 801 when an address and write data are input from the on-chip bus 110.
- the address and the write data input in step 802 are acquired, and in step 803, the address search unit 10 searches the holding address for the acquired address.
- the process proceeds to step 804, and when it is hit (Yes), the process proceeds to step 805.
- the data comparison unit 30 compares the write data with the frequent data from the frequent data holding unit 20.
- step 804 and step 805 When the comparison in step 804 and step 805 is a data hit (match) (Yes), the process proceeds to step 806, where the address search unit 10 is notified of the tag of the frequent data hit from the frequent data holding unit 20, In response to an instruction to rewrite the holding address of the oldest tag in the address field 12 to the acquired address, the rewriting is performed. If the data does not hit in the comparison in step 805 (No), the process proceeds to step 807, where the address search unit 10 instructs invalidation (invalidation) of the holding address hit from the frequent data holding unit 20 The hit holding address is invalidated. When the data does not hit in the comparison at step 804 (No) and when the holding address hit at step 807 is invalidated, the write / compress unit 40 compresses the write data at step 808.
- step 809 the acquired address is output by the address search unit 10 when it is not a read hit, and the write data compressed by the write data selection unit 80 in response to an instruction from the data comparison unit 30 and the compression / expansion dictionary unit 60 are output. One of the registered compressed frequent data is selected and output.
- the access system 100 outputs the acquired address and the compressed data in step 809, the access system 100 proceeds to step 810 and ends the data writing process.
- FIG. 9 shows a flow of read processing in the storage device access system 100.
- the access system 100 starts at step 901 when an address is input from the on-chip bus 110.
- the address input in step 902 is acquired, and in step 903, the address search unit 10 searches for the retained address for the acquired address.
- the address search is performed in step 903 and a hit is found (Yes), that is, when it is a read hit, the process proceeds to step 904.
- the read data selection unit 90 acquires the frequent data hitting the acquisition address from the frequent data holding unit 20 in step 904, and the frequent data is selected and output as read data in step 905.
- the acquired address is output from the address search unit 10 to the write / read controller 120 in step 906, and the compressed data at that address in the storage device is acquired.
- the acquired compressed data is expanded by the compression / expansion unit 40 in step 907.
- the read data selection unit 90 acquires the decompressed data from the compression / decompression unit 40, and selects and outputs it as read data.
- the access system 100 outputs the frequent data as read data in step 905 or outputs the decompressed data as read data in step 908, the access system 100 proceeds to step 909 and ends the data reading process.
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)
Abstract
Description
20 頻出データ保持部
30 データ比較部
40 圧縮・伸張部
80 書込みデータ選択部
90 読出しデータ選択部
100 記憶装置アクセス・システム
Claims (11)
- 記憶装置に対してデータを書込みおよび読出すための記憶装置アクセス・システムであって、
複数の頻出データについてアドレスおよび各アドレスに割当てられたデータ・インデックスを保持し、書込み又は読出しデータのアドレスを取得して取得アドレスで保持アドレスを検索するアドレス検索部と、
前記複数の頻出データおよび前記データ・インデックスの各々に関係付けられたタグを保持し、前記アドレス検索部から前記取得アドレスが前記保持アドレスにヒットしたときの前記データ・インデックスを取得して、取得データ・インデックスに関係付けられた前記タグに対応する前記頻出データを特定する頻出データ保持部と、
前記頻出データ保持部から前記頻出データを取得して前記書込みデータと比較し、前記書込みデータにヒットした前記頻出データを特定するデータ比較部と、
前記データ比較部から前記書込みデータおよび前記頻出データを取得して圧縮し、前記記憶装置から前記読出しデータを取得して伸張する圧縮・伸張部と、
前記圧縮・伸張部から圧縮された前記書込みデータおよび前記頻出データを取得し、前記データ比較部により指示されて圧縮された前記書込みデータおよび前記頻出データのいずれかを選択する書込みデータ選択部と、
前記読出しデータのアドレスが前記アドレス検索部の前記保持アドレスにヒットしたときには、前記頻出データ保持部から前記頻出データの中で特定された読出しデータを取得し、ヒットしなかったときには、前記記憶装置から読出されて前記圧縮・伸張部で伸張された読出しデータを取得し、前記アドレス検索部により指示されて前記特定された読出しデータおよび前記伸張された読出しデータのいずれかを選択する読出しデータ選択部と、
を含む、記憶装置アクセス・システム。 - 前記頻出データ保持部は、前記書込みデータが前記頻出データにヒットしたことを前記データ比較部から指示されたときには、前記アドレス検索部にヒットした前記頻出データの前記タグを通知して、前記取得アドレスによる前記アドレス検索部の最も古い前記タグの前記保持アドレスの書換えを指示し、前記取得アドレスが前記アドレス検索部の前記保持アドレスにヒットして対応する前記タグで特定された前記頻出データに前記書込みデータがヒットしなかったことを前記データ比較部から指示されたときには、前記アドレス検索部にヒットした前記保持アドレスの無効化を指示する、請求項1に記載の記憶装置アクセス・システム。
- 前記アドレス検索部は、各エントリに、前記アドレスを保持するアドレス・フィールドと、前記アドレス・フィールドの前記アドレスについて書込みおよび読出しが行われた回数を表すフラグを保持するフラグ・フィールドと、前記アドレス・フィールドの前記アドレスについての前記データ・インデックスを保持するデータ・インデックス・フィールドとを有する、複数のエントリからなるテーブルを含む、請求項1又は2に記載の記憶装置アクセス・システム。
- 前記頻出データ保持部が前記アドレス検索部にヒットした前記保持アドレスの無効化を指示したとき、ヒットした前記保持アドレスについての前記エントリにおける前記フラグ・フィールドの前記フラグは、無効を表す所定の値に設定される、請求項2又は3に記載の記憶装置アクセス・システム。
- 前記頻出データ保持部は、各エントリに、前記タグを保持するタグ・フィールドと、前記タグ・フィールドの前記タグに対応する前記頻出データを保持する頻出データ・フィールドとを有する、複数のエントリからなるテーブルを含む、請求項1~4のいずれか1項に記載の記憶装置アクセス・システム。
- 前記頻出データ・フィールドは、前記記憶装置に記憶された頻出頻度の高い基本データ長のデータを保持する、請求項5に記載の記憶装置アクセス・システム。
- 前記データ比較部は、それぞれが対応する前記頻出データの各々と前記書込みデータとを比較する、複数のコンパレータを含む、請求項1~6のいずれか1項に記載の記憶装置アクセス・システム。
- 前記圧縮・伸張部は、前記書込みデータおよび前記頻出データを圧縮する圧縮回路を少なくとも1つ備える圧縮エンジン部と、前記記憶装置からの前記読出しデータを伸張する伸張回路を少なくとも1つ備える伸張エンジン部と、前記圧縮回路で圧縮するデータと前記伸張回路で伸張する符号とを対応付けるデータ符号化対応テーブルを少なくとも1つ備える圧縮・伸張辞書部とを含む、請求項1~7のいずれか1項に記載の記憶装置アクセス・システム。
- 前記圧縮回路および前記伸張回路に応じて対応する前記データ符号化対応テーブルを備え、対応する前記データ符号化対応テーブルの前記データは、前記頻出データ保持部に保持される対応する前記頻出データを構成する、請求項8に記載の記憶装置アクセス・システム。
- 前記書込みデータ選択部は、前記データ比較部からの指示に応答して圧縮された前記書込みデータおよび前記頻出データのいずれかを選択するセレクタを含む、請求項1~9のいずれか1項に記載の記憶装置アクセス・システム。
- 前記読出しデータ選択部は、前記アドレス検索部からの指示に応答して前記特定された読出しデータおよび前記伸張された読出しデータのいずれかを選択するセレクタを含む、請求項1~10のいずれか1項に記載の記憶装置アクセス・システム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013550163A JP5629392B2 (ja) | 2011-12-22 | 2012-10-03 | 記憶装置アクセス・システム |
CN201280061338.7A CN103999061B (zh) | 2011-12-22 | 2012-10-03 | 存储器件存取*** |
DE112012005383.4T DE112012005383B4 (de) | 2011-12-22 | 2012-10-03 | Speichereinheit-Zugriffssystem |
GB201408611A GB2510523B (en) | 2011-12-22 | 2012-10-03 | Storage device access system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011282034 | 2011-12-22 | ||
JP2011-282034 | 2011-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013094280A1 true WO2013094280A1 (ja) | 2013-06-27 |
Family
ID=48655555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/075606 WO2013094280A1 (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 (2)
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 |
JP2017504920A (ja) * | 2013-12-30 | 2017-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 不揮発性メモリ・アレイを含むデータ・ストレージ・システムを動作させるための方法、システム及びコンピュータ・プログラム |
Families Citing this family (11)
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 |
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 |
US9153314B2 (en) | 2013-03-15 | 2015-10-06 | Nvidia Corporation | Ground-referenced single-ended memory interconnect |
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 (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0573213A (ja) * | 1991-09-12 | 1993-03-26 | Hitachi Ltd | 外部記憶装置システム |
JPH05189360A (ja) * | 1992-01-14 | 1993-07-30 | Shikoku Nippon Denki Software Kk | データ転送および記憶方式 |
JP3019351U (ja) * | 1995-06-13 | 1995-12-12 | 株式会社ハドソン | コンピュータ用外部記憶装置 |
JPH10260896A (ja) * | 1997-03-19 | 1998-09-29 | Hitachi Ltd | 半導体装置 |
JP2002140227A (ja) * | 2000-09-20 | 2002-05-17 | Hewlett Packard Co <Hp> | メモリ圧縮管理デバイス |
JP2012014493A (ja) * | 2010-07-01 | 2012-01-19 | Sony Corp | メモリ管理装置、メモリ管理方法及びプログラム |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5007A (en) * | 1847-03-13 | Improvement in steam-presses | ||
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 | 日本電気株式会社 | ファイル圧縮処理装置 |
CA2108833A1 (en) * | 1992-10-22 | 1994-04-23 | Masanori Ishii | File compression processor |
JPH07160430A (ja) | 1993-12-03 | 1995-06-23 | Fuji Xerox Co Ltd | 自動入出力管理装置 |
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用のプログラム記憶装置 |
US6779100B1 (en) * | 1999-12-17 | 2004-08-17 | Hewlett-Packard Development Company, L.P. | Method and device for address translation for compressed instructions |
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 |
DE112012005383B4 (de) | 2011-12-22 | 2022-03-10 | International Business Machines Corp. | Speichereinheit-Zugriffssystem |
-
2012
- 2012-10-03 DE DE112012005383.4T patent/DE112012005383B4/de active Active
- 2012-10-03 GB GB201408611A patent/GB2510523B/en active Active
- 2012-10-03 JP JP2013550163A patent/JP5629392B2/ja not_active Expired - Fee Related
- 2012-10-03 WO PCT/JP2012/075606 patent/WO2013094280A1/ja active Application Filing
- 2012-10-03 CN CN201280061338.7A patent/CN103999061B/zh not_active Expired - Fee Related
- 2012-12-20 US US13/721,562 patent/US9146933B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0573213A (ja) * | 1991-09-12 | 1993-03-26 | Hitachi Ltd | 外部記憶装置システム |
JPH05189360A (ja) * | 1992-01-14 | 1993-07-30 | Shikoku Nippon Denki Software Kk | データ転送および記憶方式 |
JP3019351U (ja) * | 1995-06-13 | 1995-12-12 | 株式会社ハドソン | コンピュータ用外部記憶装置 |
JPH10260896A (ja) * | 1997-03-19 | 1998-09-29 | Hitachi Ltd | 半導体装置 |
JP2002140227A (ja) * | 2000-09-20 | 2002-05-17 | Hewlett Packard Co <Hp> | メモリ圧縮管理デバイス |
JP2012014493A (ja) * | 2010-07-01 | 2012-01-19 | Sony Corp | メモリ管理装置、メモリ管理方法及びプログラム |
Cited By (2)
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 |
JP2017504920A (ja) * | 2013-12-30 | 2017-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 不揮発性メモリ・アレイを含むデータ・ストレージ・システムを動作させるための方法、システム及びコンピュータ・プログラム |
Also Published As
Publication number | Publication date |
---|---|
DE112012005383B4 (de) | 2022-03-10 |
GB2510523B (en) | 2014-12-10 |
GB201408611D0 (en) | 2014-06-25 |
GB2510523A (en) | 2014-08-06 |
DE112012005383T5 (de) | 2014-09-11 |
JP5629392B2 (ja) | 2014-11-19 |
US20130166519A1 (en) | 2013-06-27 |
JPWO2013094280A1 (ja) | 2015-04-27 |
US9146933B2 (en) | 2015-09-29 |
CN103999061B (zh) | 2016-08-17 |
CN103999061A (zh) | 2014-08-20 |
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 | |
CN100432959C (zh) | 压缩高速缓存内数据的机制 | |
US10044370B1 (en) | Lossless binary compression in a memory constrained environment | |
US10862507B2 (en) | Variable-sized symbol entropy-based data compression | |
US10224957B1 (en) | Hash-based data matching enhanced with backward matching for data compression | |
KR20170097609A (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
WO2015145647A1 (ja) | ストレージ装置とデータ処理方法及びストレージシステム | |
US8674858B2 (en) | Method for compression and real-time decompression of executable code | |
CN111832065A (zh) | 使用电路实现的软件和用于密钥-值存储的方法 | |
CN107548491B (zh) | 用于管理存储器的设备和方法以及存储介质 | |
JP5039754B2 (ja) | データアクセス違反を検出する方法および装置 | |
EP3475830A1 (en) | Priority-based storage and access of compressed memory lines in memory in a processor-based system | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
US6353871B1 (en) | Directory cache for indirectly addressed main memory | |
US8930631B2 (en) | Efficient management of computer memory using memory page associations and memory | |
JP2007519100A (ja) | コンピューターシステム、方法、装置 | |
US20230076729A2 (en) | Systems, methods and devices for eliminating duplicates and value redundancy in computer memories | |
CN116909939A (zh) | 基于lsm树的键值分离存储引擎垃圾回收方法、***及设备 | |
WO2022119493A1 (en) | Systems, methods and devices for exploiting value similarity in computer memories | |
CN111966606B (zh) | 数据储存装置与数据处理方法 | |
US20050182902A1 (en) | Signal processing apparatus | |
KR20070054055A (ko) | 데이터 처리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12859317 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2013550163 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 1408611 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20121003 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1408611.0 Country of ref document: GB |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1120120053834 Country of ref document: DE Ref document number: 112012005383 Country of ref document: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12859317 Country of ref document: EP Kind code of ref document: A1 |