EP-4738129-A1 - COMPRESSED MEMORY SYSTEM AND METHOD OF MANAGING COMPRESSED DATA
Abstract
Disclosed are a compressed memory system and a method of managing compressed data. The method including storing, in a first area of a memory, first data of a first slot corresponding to a front part among compressed data from original data, storing, in a second area of the memory, second data of a remaining slot, the remaining slot 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.
Inventors
- PARK, JINSU
- KIM, YOOJIN
- NAM, JIHOON
- PARK, SEONGWOOK
Assignees
- Samsung Electronics Co., Ltd.
Dates
- Publication Date
- 20260506
- Application Date
- 20251031
Claims (15)
- A method of managing compressed data, the method comprising: storing, in a first area of a memory, first data of a first slot corresponding to a front part among the compressed data from original data; storing, in a second area of the memory, second data of a remaining slot, the remaining slot 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 method of claim 1, wherein the storing the first data comprises: storing the first data in the first area of the memory in a same order as an order of blocks of the original data corresponding to the first data for each of the blocks of the original data.
- The method of claim 1 or 2, wherein the first data and the blocks of the original data are one-to-one mapped in an order of addresses of the original data.
- The method of one of claims 1 to 3, wherein the storing the first data comprises: storing the first data in the first area of the memory in parallel, and/or wherein the storing the first data of the first slot is performed by one of a channel wise and rank-wise manner.
- The method of one of claims 1 to 4, wherein the metadata table comprises a compressed size of the compressed data and an entry of the metadata storing location information of the second data, and wherein the entry of the metadata is one-to-one mapped with blocks of the original data in an order of addresses of the original data.
- The method of one of claims 1 to 5, wherein the metadata comprises 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.
- The method of one of claims 1 to 6, wherein a first size of the first area is dynamically adjusted according to one or more of a compression rate of the memory and a size of the memory.
- The method of one of claims 1 to 7, wherein the storing the first data comprises: dividing blocks of the original data into a plurality of sub-blocks; and storing, in the first area of the memory, first sub-slot data of a first sub-slot corresponding to a front part for each of the plurality of sub-blocks.
- The method of claim 8, wherein the storing of the metadata corresponding to the second data comprises: storing, in the metadata table, metadata corresponding to remaining sub-slot data of a remaining sub-slot other than the first sub-slot data for each of the plurality of sub-blocks, and/or wherein the metadata comprises one or more of a number of slots allocated to each data piece of the remaining sub-slot, a physical address of the data of the remaining sub-slot corresponding to each of the blocks of the original data, and a compression size of the data of the remaining sub-slot.
- A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform the method of managing compressed data, the method comprising: receiving, from a host device, a read request for target data from among the compressed data stored in a memory; computing device physical addresses of a first slot corresponding to the target data and an entry of a metadata table responsive to the read request; according to the device physical addresses, decompressing first data of the first slot by reading the first data of the first slot and decompressing remaining data of a remaining slot other than the first slot by reading the entry of the metadata table; and transmitting block data obtained by combining the decompressed first data and the decompressed remaining data to the host device.
- The computer-readable storage medium of claim 10, wherein the read request comprises an index of the target data, and/or wherein the decompressing comprises: determining a first physical address of a first slot of a target block corresponding to the target data and a second physical address of a metadata table of the target block, by an index of the target data; decompressing 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 the metadata table based on the second physical address in addition to reading the first data; and decompressing the remaining data by obtaining a physical address of respective data of the remaining slot from the entry of the metadata table.
- The computer-readable storage medium of claim 11, wherein the determining of the first physical address and the second physical address comprises: determining the first physical address by a first multiplying of the index of the target block by a slot size and adding a base address of a first area of the memory to a first result of the first multiplying; and determining the second physical address by a second multiplying of the index of the target block by a size of the metadata and adding a base address of a third area of the memory to a second result of the second multiplying.
- A compressed memory system, the system comprising: a memory comprising one or more of a normal memory area and a compressed memory area; a memory controller configured to generate a control signal for decompressing target data in response to receiving, from a host device, a read request for the target data among compressed data stored in the memory; and a compressor configured to store compressed data of original data in the memory and decompress a 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 a remaining slot by reading an entry of a metadata table; and a memory device configured to: combine the decompressed first data with the decompressed remaining data; and transmit the combined data to the host device.
- The compressed memory system of claim 13, wherein the memory device is further configured to: store, in a first area of the memory, first data of the first slot corresponding to a front part for each of blocks of the original data in the compressed data; store, in a second area of the memory, remaining data of a remaining slot other than the first data of the first slot among the compressed data; and store metadata corresponding to the remaining data in a metadata table in a third area of the memory.
- The compressed memory system of claim 13 or 14, wherein the memory device is further configured to: determine a first physical address of a first slot of a target block corresponding to the target data and a second physical address of a metadata table of the target block, by an index of the target data; decompress a compression of the first data of the first slot by the compression and decompression device by reading the first data of the first slot corresponding to the target data based on the first physical address; read 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 decompress a compression of the remaining data of the remaining slot by the compression and decompression device by obtaining a physical address of the remaining data of the remaining slot from the entry of the metadata table.
Description
BACKGROUND 1. Field The following description relates to a compressed memory system and a method of managing compressed data. 2. Description of Related Art As applications requiring large memory, such as big data and/or machine learning, are widely used, the demand for a data center for a memory device has increased. To respond to the demand, devices for expanding a main memory are being actively studied, but typical expansions of memory capacity by adding the memory device may increase the total cost of ownership (TCO) due to the cost of purchasing devices and additional power consumption of devices. SUMMARY The invention is claimed in the independent claims. Preferred embodiments are specified in the dependent claims. 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 a general aspect, here is provided a processor-implemented method including storing, in a first area of a memory, first data of a first slot corresponding to a front part among compressed data from original data, storing, in a second area of the memory, second data of a remaining slot, the remaining slot 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 the first data may include storing the first data in the first area of the memory in a same order as an order of blocks of the original data corresponding to the first data for each of the blocks of the original data. The first data and the blocks of the original data may be one-to-one mapped in an order of addresses of the original data. The storing the first data may include storing the first data in the first area of the memory in parallel. The storing the data of the first slot may be performed by one of a channel wise or rank-wise manner. The metadata table may include a compressed size of the compressed data and an entry of the metadata storing location information of the second data, and the entry of the metadata may be one-to-one mapped with blocks of the original data in an order of addresses of the original data. The metadata may include 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. A first size of the first area may be dynamically adjusted according to one or more of a compression rate of the memory and a size of the memory. The storing the first data may include dividing blocks of the original data into a plurality of sub-blocks and storing, in the first area of the memory, first sub-block data of a first sub-block corresponding to a front part for each of the plurality of sub-blocks. The storing of the metadata corresponding to the second data may include storing, in the metadata table, metadata corresponding to remaining sub-slot data of a remaining sub-slot other than the first sub-block data for each of the sub-blocks. The metadata may include one or more of a number of slots allocated to each data piece of the remaining sub-slot, a physical address of the data of the remaining sub-slot corresponding to each of the blocks of the original data, and a compression size of the data of the remaining sub-slot. In a general aspect, here is provided a processor-implemented method including receiving, from a host device, a read request for target data from among compressed data stored in a memory, computing device physical addresses of a first slot corresponding to the target data and an entry of a metadata table responsive to the read request, according to the device physical addresses, decompressing first data of the first slot by reading the data of the first slot and decompressing remaining data of a remaining slot other than the first slot by reading the entry of the metadata table, 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 a target block corresponding to the target data and a second physical address of a metadata table of the target block, by an index of the target data, decompressing 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 decompressing the remaining data by obtaining a physical address of respective data of the remaining slot from the entry of the metadata table. The determining of the first physical address and the second physical addre