Search

CN-121996152-A - Compressed memory system and method of managing compressed data

CN121996152ACN 121996152 ACN121996152 ACN 121996152ACN-121996152-A

Abstract

A compressed memory system and a method of managing compressed data are disclosed. The method includes storing first data of a first slot corresponding to a front among compressed data from original data in a first area of a memory, storing second data of remaining slots including data other than the first data from the compressed data in a second area of the memory, and storing metadata corresponding to the second data in a metadata table in a third area of the memory.

Inventors

  • PU ZHENZHU
  • JIN YUZHEN
  • Nan Zhixun
  • Pu Xingxu

Assignees

  • 三星电子株式会社

Dates

Publication Date
20260508
Application Date
20251030
Priority Date
20241104

Claims (20)

  1. 1. A method of managing compressed data, the method comprising: storing first data of a first slot corresponding to a front part among compressed data from the original data in a first area of a memory; storing second data of a remaining slot in a second area of the memory, the remaining slot including data from the compressed data other than the first data, and Metadata corresponding to the second data is stored in a metadata table in a third area of the memory.
  2. 2. The method of claim 1, wherein storing the first data comprises: For each of the blocks of original data, the first data is stored in a first area of the memory in the same order as the order of the blocks of original data corresponding to the first data.
  3. 3. The method of claim 1, wherein the blocks of the first data and the original data are one-to-one mapped in an order of addresses of the original data.
  4. 4. The method of claim 1, wherein storing the first data comprises: the first data is stored in parallel in a first region of the memory.
  5. 5. The method of claim 4, wherein the step of storing the first data of the first slot is performed in one of a channel-by-channel manner and a row-by-row manner.
  6. 6. The method of claim 1, wherein the metadata table includes an entry of metadata of a compression size of the compressed data and location information storing the second data, and Wherein entries of the metadata are mapped one-to-one with blocks of the original data in an order of addresses of the original data.
  7. 7. The method of claim 1, wherein the metadata includes a number of slots allocated to the second data and a physical address of the second data corresponding to each block of the original data.
  8. 8. The method of claim 1, wherein the first size of the first region is dynamically adjusted according to one or more of a compression rate of the memory and a size of the memory.
  9. 9. The method of claim 1, wherein storing the first data comprises: dividing the block of the original data into a plurality of sub-blocks, and First sub-slot data of a first sub-slot corresponding to a front portion of each of the plurality of sub-blocks is stored in a first area of a memory.
  10. 10. The method of claim 9, wherein storing metadata corresponding to the second data comprises: metadata corresponding to remaining subslot data of remaining subslots of each of the plurality of subslots excluding the first subslot data is stored in a metadata table.
  11. 11. The method of claim 10, wherein the metadata includes one or more of a number of slots allocated to each piece of data of the remaining sub-slots, a physical address of data of the remaining sub-slots corresponding to each of the blocks of original data, and a compressed size of data of the remaining sub-slots.
  12. 12. A method of managing compressed data, the method comprising: receiving a read request for target data among the compressed data stored in the memory from the host device; Calculating a device physical address of a first slot corresponding to the target data and a device physical address of an entry of a metadata table in response to the read request; Decompressing the first data of the first slot by reading the first data of the first slot and decompressing the remaining data of the remaining slots other than the first slot by reading the entries of the metadata table according to the device physical address, and Block data obtained by combining decompressed first data and decompressed remaining data is transmitted to a host device.
  13. 13. The method of claim 12, wherein the read request includes an index of target data.
  14. 14. The method of claim 12, wherein the step of decompressing comprises: determining a first physical address of a first slot of a target block corresponding to target data and a second physical address of a metadata table of the target block through an index of the target data; Decompressing the compression of the first data of the first slot by reading the first data of the first slot based on the first physical address; Reading an entry of a metadata table based on the second physical address in addition to reading the first data, and The remaining data is decompressed by obtaining the physical address of the corresponding data of the remaining slot from the entry of the metadata table.
  15. 15. The method of claim 14, wherein determining the first physical address and the second physical address comprises: Determining a first physical address by first multiplying an index of the target block by a slot size and adding a base address of a first region of memory to a first result of the first multiplication, and The second physical address is determined by multiplying the index of the target block by a second multiplication of the size of the metadata and adding the base address of the third region of memory to the second result of the second multiplication.
  16. 16. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform the method of any one of claims 1 to 15.
  17. 17. An electronic device, comprising: one or more processors configured to execute instructions, and A memory storing instructions, wherein execution of the instructions configures the one or more processors to: storing first data of a first slot corresponding to a front part among compressed data from the original data in a first area of a memory; Storing remaining data of remaining slots other than the first data of the first slot among the compressed data in a second area of the memory, and Metadata corresponding to the remaining data is stored in a metadata table in a third area of the memory.
  18. 18. A compressed memory system, the compressed memory system comprising: a memory comprising one or more of a normal memory region and a compressed memory region; A memory controller configured to generate a control signal for decompressing target data among compressed data stored in the memory in response to receiving a read request for the target data from the host device, and A compressor configured to store compressed data of the original data in a memory and decompress compression of the target data in response to the control signal, Wherein the compressor comprises: a compression and decompression device configured to decompress first data of a first slot by reading the first data of the first slot corresponding to the target data and decompress remaining data of remaining slots by reading entries of the metadata table, and The memory device is configured to combine the decompressed first data with the decompressed remaining data and to transmit the combined data to the host device.
  19. 19. The compressed memory system of claim 18, wherein the memory device is further configured to: Storing first data of a first slot in the compressed data corresponding to a front of each of the blocks of original data in a first area of a memory; Storing remaining data of remaining slots other than the first data of the first slot among the compressed data in a second area of the memory, and Metadata corresponding to the remaining data is stored in a metadata table in a third area of the memory.
  20. 20. The compressed memory system of claim 18, wherein the memory device is further configured to: determining a first physical address of a first slot of a target block corresponding to target data and a second physical address of a metadata table of the target block through an index of the target data; decompressing, by the compression and decompression device, the compression of the first data of the first slot by reading the first data of the first slot corresponding to the target data based on the first physical address; reading an entry of a metadata table corresponding to the target data based on the second physical address in addition to reading the first data of the first slot, and The compression of the remaining data of the remaining slots is decompressed by the compression and decompression means by obtaining the physical addresses of the remaining data of the remaining slots from the entries of the metadata table.

Description

Compressed memory system and method of managing compressed data The present application claims the benefit of korean patent application No. 10-2024-0154488, filed at the korean intellectual property office on 4/11/2024, the entire disclosure of which is incorporated herein by reference for all purposes. Technical Field The following description relates to a compressed memory system and a method of managing compressed data. Background As applications requiring large memory, such as big data and/or machine learning, are widely used, the demand for memory devices by data centers has increased. In response to this demand, devices for expanding main memory are being actively studied, but typical expansion of memory capacity by adding memory devices may increase the Total Cost of Ownership (TCO) due to the cost of purchasing the devices and the additional power consumption of the devices. Disclosure of Invention This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. In one general aspect, there is provided a processor-implemented method including storing first data of a first slot corresponding to a front among compressed data from original data in a first area of a memory, storing second data of remaining slots in a second area of the memory, the remaining slots including data from the compressed data other than the first data, and storing metadata corresponding to the second data in a metadata table in a third area of the memory. The storing of the first data may include storing the first data in a first area of the memory in the same order as the order of the blocks of the original data corresponding to the first data for each of the blocks of the original data. The blocks of the first data and the original data may be one-to-one mapped in the order of addresses of the original data. The step of storing the first data may include storing the first data in parallel in a first area of the memory. The step of storing the data of the first slot may be performed in one of a channel-by-channel manner or a row-by-row manner. The metadata table may include entries of metadata of a compression size of the compressed data and location information storing the second data, and the entries of metadata may be mapped one-to-one with the blocks of the original data in an order of addresses of the original data. The metadata may include the number of slots allocated to the second data and a physical address of the second data corresponding to each block of the original data. The first size of the first region may be dynamically adjusted according to one or more of a compression rate of the memory and a size of the memory. The storing of the first data may include dividing a block of the original data into a plurality of sub-blocks and storing first sub-block data of a first sub-block corresponding to a front portion of each of the plurality of sub-blocks in a first area of the memory. The storing of the metadata corresponding to the second data may include storing metadata corresponding to remaining sub-slot data of remaining sub-slots of each of the sub-blocks other than the first sub-block data in a metadata table. The metadata may include one or more of a number of slots allocated to each data piece of the remaining sub-slots, a physical address of data of the remaining sub-slots corresponding to each of the blocks of the original data, and a compressed size of the data of the remaining sub-slots. In one general aspect, there is provided a processor-implemented method including receiving a read request for target data among compressed data stored in a memory from a host device, calculating a device physical address of a first slot corresponding to the target data and a device physical address of an entry of a metadata table in response to the read request, decompressing the first data of the first slot by reading the data of the first slot and decompressing remaining data of remaining slots other than the first slot according to the device physical address, and transmitting block data obtained by combining the decompressed first data and the decompressed remaining data to the host device. The read request may include an index of the target data. The decompressing may include determining a first physical address of a first slot of the target block corresponding to the target data and a second physical address of a metadata table of the target block through an index of the target data, decompressing the compression of the data of the first slot by reading the data of the first slot based on the first physical address, reading an entry of the metadata table based on the second physical address in addition to reading the first data, and dec