Storage device and method of operating the same

By employing a combination of semantic and non-semantic compression in flash memory devices and dynamically adjusting the data storage hierarchy, the problem of low data compression efficiency in existing technologies is solved, achieving more efficient data access and less data loss.

CN122152214APending Publication Date: 2026-06-05SAMSUNG ELECTRONICS CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SAMSUNG ELECTRONICS CO LTD
Filing Date
2025-08-04
Publication Date
2026-06-05

Smart Images

  • Figure CN122152214A_ABST
    Figure CN122152214A_ABST
Patent Text Reader

Abstract

A storage device and an operating method thereof are provided, the storage device including a storage controller and a nonvolatile memory. The storage controller includes an important data checker configured to check whether input data is important data, a semantic entropy checker configured to compare semantic entropy of the input data with a first threshold when the input data is considered important, and a semantic compressor configured to perform semantic compression on the input data when the semantic entropy of the input data is less than or equal to the first threshold, and store the semantically compressed data in a first tier storage of the nonvolatile memory.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to a storage device and a method of operating the same, and more specifically, to a tiered storage device and a method of operating the same. Background Technology

[0002] Flash memory is widely used as a non-volatile device with characteristics such as low power consumption and high integration. A representative example of a high-capacity storage device based on flash memory is a solid-state drive (SSD).

[0003] With the increasing demand for SSDs, SSDs for various purposes are being developed. SSDs store various types of data in various formats, and memory hierarchy structures have been proposed to optimize data access according to the purpose.

[0004] Meanwhile, data stored on SSDs can be compressed. Existing data compression technologies correspond to compression that takes into account the mathematical properties of the data. Furthermore, as the uses of SSDs become more diverse, there is a need to research compression methods that demonstrate higher efficiency and less data loss compared to existing technologies. Summary of the Invention

[0005] The present invention provides a storage device and a method thereof that can minimize the loss caused by compression through semantic compression.

[0006] According to an aspect of the present invention, a storage device is provided, the storage device comprising: a storage controller and a non-volatile memory. The storage controller includes: an important data checker configured to check whether input data is important data; a semantic entropy checker configured to compare the semantic entropy of the input data with a first threshold when the input data is considered important; and a semantic compressor configured to perform semantic compression on the input data when the semantic entropy of the input data is less than or equal to the first threshold, and to store the semantically compressed data in a first-level storage section of the non-volatile memory.

[0007] According to another aspect of the present invention, a storage device is provided, the storage device including a storage controller and a non-volatile memory, wherein the storage controller includes a semantic compressor and a non-semantic compressor. The non-volatile memory includes: a first-level storage unit configured to store data of a first type; a second-level storage unit configured to store data of a second type; and a third-level storage unit configured to store data of a third type, wherein the first type of data includes data semantically compressed by the semantic compressor, the second type of data includes data non-semantically compressed by the non-semantic compressor, and the third type of data includes uncompressed data.

[0008] According to another aspect of the present invention, a method for operating a storage device is provided, the method comprising: checking whether input data is important data; when the input data is considered important, comparing the semantic entropy of the input data with a first threshold; when the semantic entropy of the input data is less than or equal to the first threshold, performing semantic compression on the input data; and storing the semantically compressed data in a first-level storage section of a non-volatile memory. Attached Figure Description

[0009] The embodiments of this disclosure can be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which: Figure 1 This is a block diagram illustrating a host-storage system according to an embodiment; Figure 2 This is a block diagram illustrating a non-volatile memory of a storage device according to an embodiment; Figure 3 This is a block diagram illustrating a compressor that constitutes a storage controller according to an embodiment; Figure 4 This is a flowchart of a method for operating a storage device according to an embodiment; Figure 5 This is a flowchart of a method for operating a storage device according to an embodiment; Figure 6 This is a flowchart of a method for operating a storage device according to an embodiment; Figure 7 This is a flowchart of a method for determining important data according to an embodiment; Figure 8 This is a flowchart of a method for determining important data according to an embodiment; Figure 9 This is a schematic diagram illustrating a system employing a storage device according to an embodiment; and Figure 10 This is a block diagram illustrating a memory system according to an embodiment. Detailed Implementation

[0010] Figure 1 This is a block diagram illustrating a host-storage system according to an embodiment.

[0011] refer to Figure 1 The host-storage system 10 may include a host 100 and a storage device 200. Furthermore, the storage device 200 may include a storage controller 210 and non-volatile memory (NVM) 220. Additionally, the host 100 may include a host controller 110 and host memory 120. The host memory 120 may be used as a buffer memory for temporarily storing data to be sent to or from the storage device 200.

[0012] Storage device 200 may include a storage medium for storing data in response to requests from host 100. For example, storage device 200 may include at least one of a solid-state drive (SSD), embedded memory, and pluggable external memory. When storage device 200 is an SSD, it may be a device compliant with the Non-Volatile Memory High Speed ​​(NVMe) standard. When storage device 200 is embedded memory or external memory, it may be a device compliant with the Universal Flash Memory (UFS) standard or the Embedded Multimedia Card (eMMC) standard. Host 100 and storage device 200 may generate and transmit data packets according to their respective standard protocols.

[0013] When the NVM 220 of storage device 200 includes flash memory, the flash memory may include a 2D NAND memory array or a 3D (or vertical) NAND (VNAND) memory array. In another example, storage device 200 may include a variety of other types of non-volatile memory. For example, storage device 200 may include magnetic RAM (MRAM), spin-torque MRAM, conductive bridged RAM (CBRAM), ferroelectric RAM (FeRAM), phase RAM (PRAM), resistive RAM, and a variety of other types of memory.

[0014] The host controller 110 and host memory 120 can be implemented as separate semiconductor chips. Alternatively, the host controller 110 and host memory 120 can be integrated onto the same semiconductor chip. According to an embodiment, the host controller 110 can be any of a plurality of modules included in an application processor, and the application processor can be implemented as a system-on-a-chip (SoC). Furthermore, the host memory 120 can be embedded memory disposed within the application processor, or non-volatile memory or a memory module disposed externally to the application processor.

[0015] The host controller 110 can manage operations that store data (e.g., write data) in the buffer area of ​​the host memory 120 into the NVM 220, or manage operations that store data (e.g., read data) in the buffer area of ​​the host memory 120.

[0016] Storage controller 210 may include host interface 211, memory interface 212, and central processing unit (CPU) 213. Additionally, storage controller 210 may include flash translation layer (FTL) 214, packet manager 215, buffer memory 216, error correction code (ECC) engine 217, and compressor (COM) 218. Storage controller 210 may also include working memory (not shown) in which FTL 214 is loaded, and may control the operations of programming data to and reading data from NVM 220 while CPU 213 executes FTL 214.

[0017] Host interface 211 can send data packets to and receive data packets from host 100. Data packets sent from host 100 to host interface 211 may include commands or data to be programmed into NVM 220, and data packets sent from host interface 211 to host 100 may include responses to those commands or data read from NVM 220. Memory interface 212 can send data to NVM 220 to be programmed into NVM 220, or can receive data read from NVM 220. Memory interface 212 may be implemented in accordance with standard protocols such as Toggle or Open NAND Flash Interface (ONFI).

[0018] FTL 214 can perform various functions, such as address mapping, wear leveling, and garbage collection. Address mapping is the operation used to translate logical addresses received from host 100 into physical addresses used for actually storing data in NVM 220. Wear leveling is a technique to prevent excessive degradation of specific blocks by allowing blocks in NVM 220 to be used evenly, and can be implemented, for example, through firmware techniques used to balance the erase counts of physical blocks. Garbage collection is a technique to ensure available capacity in NVM 220 by copying valid data from old blocks to new blocks and then erasing the old blocks.

[0019] The packet manager 215 can generate packets according to the interface protocol negotiated with the host 100, or parse various information from packets received from the host 100. Furthermore, the buffer memory 216 can temporarily store data to be programmed into or read from the NVM 220. The buffer memory 216 can be a component located within the storage controller 210, or it can be located externally to the storage controller 210.

[0020] ECC engine 217 can perform error detection and correction on read data read from NVM 220. Specifically, ECC engine 217 can generate parity bits for write data to be written to NVM 220, and these parity bits can be stored in NVM 220 along with the write data. When reading data from NVM 220, ECC engine 217 can use the parity bits read from NVM 220 along with the read data to correct errors in the read data and output the error-corrected read data.

[0021] COM 218 can dynamically adjust the data compression method based on the semantics of the data or the storage level where the data will be written. According to an embodiment, COM 218 can perform semantic compression or non-semantic compression on the data based on at least one of the importance of the data, the semantic entropy of the data, and the storage level where the data is to be recorded. Hereinafter, reference will be made to… Figures 2 to 8 Various embodiments of the inventive concept for dynamically adjusting data compression methods are described below. COM 218 can be implemented as hardware, software, firmware, or a combination thereof. When COM 218 is implemented as hardware such as logic circuitry, the hardware configuration of COM 218 can be implemented within the storage controller 210. When COM 218 is implemented as software or firmware, the instructions of that software or firmware can be executed by the CPU 213.

[0022] The NVM 220 may include one or more storage units allocated in tiers. Tiers can be allocated based on how the data to be written to the storage unit is compressed. For example, a first tier might be allocated to the storage unit where semantically compressed data will be written, a second tier to the storage unit where non-semantically compressed data will be written, and a third tier to the storage unit where uncompressed data will be written. References will be made below. Figures 2 to 8 Various embodiments of the inventive concept for a compression method that dynamically adjusts the data to be recorded in storage according to a hierarchy are described below.

[0023] Figure 2 This is a block diagram illustrating the NVM of a storage device according to an embodiment.

[0024] refer to Figure 2The NVM 220 can include multiple storage units. These multiple storage units can include one or more storage units allocated in tiers. The type of data to be stored in a storage unit can be based on the tier of that storage unit. The type of data to be stored in tiered storage units can include one or more types. That is, different types of data can be stored in storage units allocated in different tiers, or data of the same type can be stored in storage units allocated in different tiers.

[0025] According to an embodiment, the first-level storage unit 221 can store data of a first type, the second-level storage unit 222 can store data of a second type, and the third-level storage unit 223 can store data of a third type. The first type of data can be semantically compressed data, the second type of data can be non-semantically compressed data, and the third type of data can be uncompressed data.

[0026] According to an embodiment, the first-level storage unit 221 can store first data of a first type and second data of a second type, the second-level storage unit 222 can store second-type data, the third-level storage unit 223 can store third-type data, and the fourth-level storage unit 224 can store first-type data. The first data of the first type can be semantically compressed data, and the second data of the second type can be non-semantically compressed data, which is the remaining first data that has not been semantically compressed.

[0027] According to an embodiment, the first-level storage unit 221 may store at least one of first data of a first type, second data of a second type, and third data of a third type. The first data of the first type may be semantically compressed data; the second data of the second type may be non-semantically compressed data, which is the remaining first data that has not been semantically compressed; and the third data of the third type may be uncompressed data, which is additional data used for semantic compression of the first data.

[0028] According to an embodiment, the first-level storage unit 221 can store a first type of data and a second type of data. The first type of data can be semantically compressed data, and the second type of data can be non-semantically compressed data, which is additional data used for semantic compression of the semantically compressed data.

[0029] Multiple storage units can be physically different memories. For example, multiple storage units can be memories with different processing speeds. For example, one or more of the first-level storage units 221 to the fourth-level storage units 224 can be memories with fast processing speeds, and the other storage units can be memories with relatively slow processing speeds.

[0030] Figure 3 This is a block diagram illustrating the COM of a storage controller constituting a storage device according to an embodiment.

[0031] refer to Figure 2 and Figure 3 Storage device 200 ( Figure 1 COM 218 may include an important data inspector 2181, a semantic entropy inspector 2182, a data entropy inspector 2183, a semantic compressor 2184, and a non-semantic compressor 2185. The important data inspector 2181, semantic entropy inspector 2182, and data entropy inspector 2183 may be located internally to COM 218, or may be used as a storage controller 210. Figure 1 The components of COM 218 are arranged outside of COM 218. Alternatively, at least one of the critical data inspector 2181 and the semantic entropy inspector 2182 may be located inside the semantic compressor 2184, and the data entropy inspector 2183 may be located inside the non-semantic compressor 2185.

[0032] The critical data inspector 2181, semantic entropy inspector 2182, data entropy inspector 2183, semantic compressor 2184, and non-semantic compressor 2185 can all be implemented as hardware, software, firmware, or any combination thereof. When any of the critical data inspector 2181, semantic entropy inspector 2182, data entropy inspector 2183, semantic compressor 2184, and non-semantic compressor 2185 is implemented as hardware such as logic circuitry, it can be implemented within the memory controller 210. When any of the critical data inspector 2181, semantic entropy inspector 2182, data entropy inspector 2183, semantic compressor 2184, and non-semantic compressor 2185 is implemented as software or firmware, the instructions of that software or firmware can be executed by the CPU 213.

[0033] Important data inspector 2181 can inspect data from host 100 ( Figure 1 Is the input data important?

[0034] According to an embodiment, the critical data inspector 2181 can inspect the data tags of data and classify the data as critical data when the data tags include tag information indicating a first level. The data tags may include information provided by the host 100 (…). Figure 1 The COM 218 provides tagging information for managing data. Here, the tagging information may be information indicating the hierarchy of the storage unit where the data is to be stored. According to an embodiment, the COM 218 can dynamically adjust the method of compressing data based on the hierarchy of the storage unit where the data is to be stored.

[0035] According to another embodiment, the important data inspector 2181 can divide the data into multiple segments, set the importance of each segment based on semantic information, and classify at least one segment with a preset importance as important data.

[0036] Semantic information can refer to information that can be preserved through semantic compression. Semantic information can be predetermined and may include at least one of interest information and type information of the machine learning model. Interest information can be regions of interest in image data, interest information in text data, etc., while type information of the machine learning model can be information indicating the type of learning objective based on the machine learning model.

[0037] The importance of each segment can be set based on whether each segment corresponds to semantic information. For example, the important data checker 2181 can set the importance of the first segment, which includes the region of interest, to first importance, and classify the first segment set to first importance as important data. According to another embodiment, COM 218 can semantically and losslessly compress data to be stored in a higher-level storage unit.

[0038] The important data checker 2181 can store data that does not correspond to important data in the third-level storage unit 223, but the inventive concept is not limited thereto.

[0039] The semantic entropy checker 2182 compares the semantic entropy of data corresponding to important data with a first threshold. Semantic entropy represents the semantic uncertainty of data. The first threshold can be preset based on the value to be used for semantic compression.

[0040] The data entropy checker 2183 compares the data entropy of data exceeding a first threshold or data that does not correspond to important data with a second threshold. Data entropy is a metric different from semantic entropy and indicates the degree of disorder in the data. The second threshold can be predetermined based on the values ​​from which non-semantic compression will be performed.

[0041] The data entropy checker 2183 can store data with an entropy exceeding a second threshold in at least one of the first-level storage unit 221 and the third-level storage unit 223. Here, the data exceeding the second threshold can be uncompressed data.

[0042] The data entropy checker 2183 can extract the remaining data that has not been semantically compressed by the semantic compressor 2184 and compare the data entropy of the remaining data with a second threshold.

[0043] The semantic compressor 2184 can perform semantic compression on data with a semantic entropy less than a first threshold and store the semantically compressed data in the first-level storage unit 221. The semantic compressor 2184 can perform semantic compression to separate and compress the semantic portions of the data. Furthermore, the semantic compressor 2184 can also store additional data for semantic compression of the semantically compressed data in the first-level storage unit 221. The additional data may include, for example, label information indicating the first level, type information of the machine learning model, etc. The additional data may be, but is not limited to, data that has not been semantically compressed by the non-semantic compressor 2185 or uncompressed data. The semantic compressor 2184 can map the semantically compressed data and the additional data and store them in the first-level storage unit 221. According to the embodiment, the semantic compressor 2184 can perform semantic compression only on data corresponding to important data.

[0044] The non-semantic compressor 2185 can perform non-semantic compression on data with a data entropy less than or equal to a second threshold, and store the non-semantically compressed data in at least one of the first-level storage unit 221 and the second-level storage unit 222. The non-semantic compressor 2185 can perform compression in its normal form by removing redundancy from the data or finding patterns. The semantic compressor 2184 according to the embodiment can determine whether to perform compression before the non-semantic compressor 2185.

[0045] According to an embodiment, the first-level storage unit that stores semantically and losslessly compressed data can be used as an artificial intelligence (AI) storage unit, thereby enabling the execution of faster and more efficient AI algorithms.

[0046] Figure 4 This is a flowchart of a method for operating a storage device according to an embodiment.

[0047] refer to Figure 4 When from host 100 ( Figure 1 When input data is received (operation S401), the important data checker 2181 checks whether the input data is important data (operation S403). The important data checker 2181 can send data that corresponds to important data (e.g., data that is considered important) to the semantic entropy checker 2182, and send data that does not correspond to important data (e.g., data that is considered unimportant) to the data entropy checker 2183.

[0048] Next, the semantic entropy checker 2182 compares the semantic entropy of the data corresponding to important data with a first threshold (operation S405). The semantic entropy checker 2182 may send data with a semantic entropy less than or equal to the first threshold to the semantic compressor 2184, and send data with a semantic entropy exceeding the first threshold to the data entropy checker 2183.

[0049] Next, the semantic compressor 2184 can perform semantic compression on data with a semantic entropy less than a first threshold (operation S407), and store the semantically compressed data in the first-level storage unit 221 (operation S409). The semantic compressor 2184 can map the semantically compressed data and the additional data used for semantic compression, and store them in the first-level storage unit 221. The semantic compressor 2184 can map the semantically compressed data and the semantic entropy of the semantically compressed data, and store them in the first-level storage unit 221. Therefore, important data with low semantic uncertainty can be stored in the first-level storage unit 221 in a semantically compressed form.

[0050] Furthermore, the data entropy checker 2183 compares the data entropy of data that does not correspond to important data or data whose semantic entropy exceeds a first threshold with a second threshold (operation S411), and stores data with data entropy exceeding the second threshold in the third-level storage unit 223 (operation S417). Therefore, at least one of unimportant data with high data disorder and important data with high semantic uncertainty and high data disorder can be stored in the third-level storage unit 223 in an uncompressed form. The data entropy checker 2183 can send data with data entropy below the second threshold to the non-semantic compressor 2185.

[0051] Next, the non-semantic compressor 2185 performs non-semantic compression on data with data entropy below the second threshold (operation S413), and stores the non-semantically compressed data in the second-level storage unit 222 (operation S415). The non-semantic compressor 2185 can map the non-semantically compressed data and its data entropy, and store them in the second-level storage unit 222. Therefore, at least one of unimportant data with low data disorder and important data with high semantic uncertainty and low data disorder can be stored in the second-level storage unit 222 in a non-semantically compressed form.

[0052] In various embodiments, the hierarchy of the storage unit used to store data is determined according to the type of data, but the inventive concept is not limited thereto.

[0053] Figure 5 This is a flowchart of a method for operating a storage device according to an embodiment.

[0054] refer to Figure 5 When from host 100 ( Figure 1When input data is received (operation S501), the important data checker 2181 checks whether the input data is important data (operation S503). The important data checker 2181 can send the data corresponding to important data to the semantic entropy checker 2182.

[0055] Next, the semantic entropy checker 2182 compares the semantic entropy of the data corresponding to important data with a first threshold (operation S505). The semantic entropy checker 2182 may send data with a semantic entropy less than or equal to the first threshold to the semantic compressor 2184, and send data with a semantic entropy exceeding the first threshold to the data entropy checker 2183.

[0056] Next, the semantic compressor 2184 can perform semantic compression on data with a semantic entropy less than a first threshold (operation S507), and store the semantically compressed data in the first-level storage unit 221 (operation S509). The semantic compressor 2184 can map the semantically compressed data and the additional data used for semantic compression, and store them in the first-level storage unit 221.

[0057] In addition, the data entropy checker 2183 compares the data entropy of data that does not correspond to important data or data whose semantic entropy exceeds the first threshold with the second threshold (operation S513).

[0058] Next, the non-semantic compressor 2185 performs non-semantic compression on the data with data entropy below the second threshold (operation S515), and stores the non-semantic compressed data in the first-level storage unit 221 (operation S509).

[0059] In addition, the non-semantic compressor 2185 stores data with data entropy exceeding the second threshold in the first-level storage unit 221 (operation S509).

[0060] Therefore, in the first-level storage unit 221, important data with low semantic uncertainty can be stored in a semantically compressed form, important data with high semantic uncertainty but low data disorder can be stored in a non-semantically compressed form, or important data with high semantic uncertainty and high data disorder can be stored in an uncompressed form.

[0061] When the important data checker 2181 determines that the input data is not important data, the important data checker 2181 stores the unimportant data in the second-level storage unit 222 (operation S511).

[0062] According to an embodiment, data corresponding to important data and data not corresponding to important data can be stored in storage units allocated with different levels.

[0063] Figure 6 This is a flowchart of a method for operating a storage device according to an embodiment. Hereinafter, reference will be made to... Figure 6 Described Figure 4 Operation of S407 and Figure 5 Another embodiment of the operation following operation S507 is given, and the same description as above is omitted or briefly given.

[0064] refer to Figure 6 The semantic compressor 2184 performs semantic compression on data that corresponds to important data and has a semantic entropy less than a first threshold. Figure 4 Operation S407 or Figure 5 (Operation S507). When the data is semantically compressed data generated through semantic compression (Operation S601), the semantic compressor 2184 stores the data in the first-level storage unit 221 (Operation S603).

[0065] When the data corresponds to uncompressed residual data (operation S601), the semantic compressor 2184 can send the residual data to the data entropy checker 2183, and the data entropy checker 2183 compares the data entropy of the residual data with a second threshold (operation S605). The data entropy checker 2183 can then send the residual data with a data entropy lower than the second threshold to the non-semantic compressor 2185.

[0066] Next, the non-semantic compressor 2185 performs non-semantic compression on the remaining data with data entropy below the second threshold (operation S607), and stores the non-semantic compressed remaining data in the first-level storage unit 221 (operation S603). Therefore, the first-level storage unit 221 can store the pre-compressed data in both semantically compressed and non-semantically compressed forms (i.e., in a dual-compression form).

[0067] According to an embodiment, the remaining data that is not semantically compressed can be non-semantically compressed and stored, thereby minimizing data loss caused by compression.

[0068] In the following text, please refer to the following references. Figure 7 and Figure 8 To describe Figure 4 Operation S403 and Figure 5 An embodiment of operation S503.

[0069] Figure 7 This is a flowchart of a method for determining important data according to an embodiment.

[0070] refer to Figure 7 Important data inspector 2181 extracts data from host 100 ( Figure 1The input data is labeled (operation S701), and it is checked whether the data label includes label information indicating the first level (operation S703). Here, the first level may be an example of information representing the first level storage unit 221, and when the information indicates the level of the storage unit to be written to semantically compressed data, the information may correspond to the first level.

[0071] When a data label includes label information indicating the first level, the important data checker 2181 classifies the corresponding data as important data (operation S705).

[0072] When the data tag does not include tag information indicating the first level, the important data checker 2181 classifies the corresponding data as unimportant data (operation S707). Operation S707 assumes that the storage of the semantically compressed data to be written is limited to the first-level storage unit 221.

[0073] Figure 8 This is a flowchart of a method for determining important data according to an embodiment.

[0074] refer to Figure 8 The important data inspector 2181 divides the data into multiple segments (operation S801). These multiple segments can be, but are not limited to, multiple segmented regions of image data, multiple segmented words of text data, multiple segmented sentences, or any combination thereof.

[0075] The importance data checker 2181 sets the importance of each segment based on semantic information (operation S803). Semantic information can be, for example, information about a pixel row spacing in image data, information about a moving object in image data, information about a telephone number in text data, information identifying a first machine learning model learning a moving object in an image, or information identifying a second machine learning model learning a telephone number in text. For example, when the semantic information is telephone number information in text data, the importance data checker 2181 can set the importance of a segment that includes a series of digits representing a telephone number, a series of characters in a first language, a series of characters in a second language, or a series of symbols to first importance. Here, the importance data checker 2181 can set the importance of a segment that does not contain a series of text representing a telephone number to second importance.

[0076] Next, the important data checker 2181 classifies one or more segments with a preset importance level as important data (operation S805). For example, the important data checker 2181 may classify one or more segments with the highest importance level as important data.

[0077] Figure 9 This is a schematic diagram illustrating a system incorporating a storage device according to an embodiment. Figure 9 System 1000 can be a mobile system, such as a mobile phone, smartphone, tablet PC, wearable device, medical device, or Internet of Things (IoT) device. However, Figure 9 The system 1000 is not necessarily limited to mobile systems and may include PCs, laptops, servers, media players, or automotive devices such as navigation devices.

[0078] refer to Figure 9 The system 1000 may include a main processor 1100, memories 1200a and 1200b and storage devices 1300a and 1300b, and may also include at least one of an image capture device 1410, a user input device 1420, a sensor 1430, a communication device 1440, a display 1450, a speaker 1460, a power supply device 1470 and a connection interface 1480.

[0079] The main processor 1100 can control the overall operation of the system 1000, and more specifically, control the operation of other components constituting the system 1000. The main processor 1100 can be implemented by a general-purpose processor, a special-purpose processor, or an application processor. According to an embodiment, the main processor 1100 can be a reference... Figure 1 The host 100 is described.

[0080] The main processor 1100 may include one or more CPU cores 1110, and may also include a controller 1120 for controlling memories 1200a and 1200b and / or storage devices 1300a and 1300b. According to embodiments, the main processor 1100 may also include an accelerator block 1130, which is dedicated circuitry for high-speed data operations such as AI data manipulation. The accelerator block 1130 may include a graphics processing unit (GPU), a neural processing unit (NPU), and / or a data processing unit (DPU), and may also be implemented as a separate chip physically independent of other components of the main processor 1100.

[0081] Memory 1200a and 1200b can be used as the main storage device of system 1000 and can include volatile memory such as SRAM and / or DRAM. However, the inventive concept is not limited thereto, and memory 1200a and 1200b can also include non-volatile memory such as flash memory, PRAM and / or RRAM. Memory 1200a and 1200b can be implemented in the same package as main processor 1100.

[0082] Storage devices 1300a and 1300b can be used as non-volatile storage devices to store data regardless of whether they are powered on, and can have a relatively large storage capacity compared to memories 1200a and 1200b. Storage devices 1300a and 1300b may each include storage controllers 1310a and 1310b and non-volatile memory (NVM) 1320a and 1320b that store data under the control of storage controllers 1310a and 1310b. NVM 1320a and 1320b may include V-NAND flash memory with a 2D or 3D structure, but may also include other types of non-volatile memory, such as PRAM and / or RRAM. According to embodiments, storage devices 1300a and 1300b may include reference... Figure 1 The described storage device 200, storage controllers 1310a and 1310b may include references Figure 1 The storage controller 210 is described, and NVMs 1320a and 1320b may include references. Figure 1 The NVM 220 is described.

[0083] According to an embodiment, storage devices 1300a and 1300b may include one or more storage units allocated in a hierarchy, and semantically compressed data may be stored by storage controllers 1310a and 1310b in one or more of the allocated storage units. One or more of the allocated storage units of storage devices 1300a and 1300b may be used as AI storage units for accelerator block 1130.

[0084] Storage devices 1300a and 1300b may be included in system 1000 but physically separate from the main processor 1100, or they may be implemented in the same package as the main processor 1100. Furthermore, storage devices 1300a and 1300b may be solid-state drives (SSDs) or memory cards, and therefore, storage devices 1300a and 1300b can be detachably attached to other components of system 1000 via an interface such as connection interface 1480, which will be described below. Storage devices 1300a and 1300b may be devices using standard protocols such as UFS, eMMC, or NVMe, but are not necessarily limited to these.

[0085] The image capture device 1410 can capture still images or moving images, and may include a camera, a portable video camera, and / or a webcam.

[0086] User input device 1420 can receive various types of data input from the user of system 1000, and may include a touchpad, keypad, keyboard, mouse and / or microphone.

[0087] Sensor 1430 can sense various types of physical quantities that can be obtained from outside the system 1000 and convert the sensed physical quantities into electrical signals. Sensor 1430 may include temperature sensors, pressure sensors, illuminance sensors, position sensors, acceleration sensors, biosensors, and / or gyroscopes.

[0088] Communication device 1440 can transmit signals to and receive signals from other devices outside system 1000 according to various communication protocols. Communication device 1440 may include an antenna, transceiver, and / or modem.

[0089] The display 1450 and speaker 1460 can be used as output devices to output visual and auditory information to the user of the system 1000, respectively. The power supply device 1470 can appropriately convert power supplied from a battery (not shown) embedded in the system 1000 and / or from an external power source, and supply the converted power to the components of the system 1000.

[0090] The connection interface 1480 provides a connection between the system 1000 and an external device that can connect to and exchange data with the system 1000. The connection interface 1480 can be implemented as one of various interface protocols, such as Advanced Technology Attachment (ATA), Serial ATA (SATA), External SATA (e-SATA), Small Computer Small Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnect (PCI), PCI Express (PCIe), NVMe, IEEE 1394, Universal Serial Bus (USB), Secure Digital (SD) card, Multimedia Card (MMC), eMMC, UFS, Embedded Universal Flash Memory (eUFS), and Compact Flash Memory (CF) card interfaces.

[0091] Figure 10 This is a block diagram illustrating a memory system according to an embodiment.

[0092] refer to Figure 10 The memory system 300 may include a memory device 310 and a memory controller 320. The memory system 300 may support multiple channels CH1 to CHm, and the memory device 310 and the memory controller 320 may be interconnected through these multiple channels CH1 to CHm. For example, the memory system 300 may be implemented as a storage device such as an SSD. According to an embodiment, the memory device 310 may include a reference... Figure 1 The described storage device 200, and the memory controller 320 may include a reference Figure 1 The storage controller 210 is described.

[0093] Memory device 310 may include a plurality of NVM devices NVM11 to NVMmn. Each NVM device NVM11 to NVMmn may be connected to one of a plurality of channels CH1 to CHm via a corresponding way. For example, NVM devices NVM11 to NVM1n may be connected to the first channel CH1 via ways W11 to W1n, and NVM devices NVM21 to NVM2n may be connected to the second channel CH2 via ways W21 to W2n. According to an embodiment, each of the NVM devices NVM11 to NVMmn may be implemented as an arbitrary memory cell capable of operating according to individual commands from memory controller 320. For example, each of the NVM devices NVM11 to NVMmn may be implemented as a chip or a die, but the inventive concept is not limited thereto. According to an embodiment, each of the NVM devices NVM11 to NVMmn may include a reference... Figure 2 At least one of the first-level storage unit 221 to the fourth-level storage unit 224 described. According to the embodiment, NVM devices NVM11 to NVMmn can all be referenced. Figure 2 At least one of the first-level storage unit 221 to the fourth-level storage unit 224 described.

[0094] The memory controller 320 can send signals to and receive signals from the memory device 310 through channels CH1 to CHm. For example, the memory controller 320 can send commands CMDa to CMDm, addresses ADDRa to ADDRm, and data DATAa to DATAm to the memory device 310 through channels CH1 to CHm, or receive data DATAa to DATAm from the memory device 310.

[0095] Through a corresponding channel, the memory controller 320 can select one of the NVM devices connected to that channel and send and receive signals with the selected NVM device. For example, the memory controller 320 can select NVM device NVM11 from NVM11 to NVM1n connected to the first channel CH1. The memory controller 320 can send command CMDa, address ADDRa, and data DATAa to the selected NVM device NVM11 through the first channel CH1, or receive data DATAa from the selected NVM device NVM11.

[0096] The memory controller 320 can send signals to and receive signals from the memory device 310 in parallel through different channels. For example, the memory controller 320 can send the command CMDb to the memory device 310 through the second channel CH2 at the same time that the command CMDa is sent to the memory device 310 through the first channel CH1. For example, the memory controller 320 can receive the data DATAb from the memory device 310 through the second channel CH2 at the same time that the data DATAa is received from the memory device 310 through the first channel CH1.

[0097] The memory controller 320 can control the overall operation of the memory device 310. The memory controller 320 can control each of the NVM devices NVM11 to NVM1n connected to channels CH1 to CHm by sending signals via channels CH1 to CHm. For example, the memory controller 320 can control one of the selected NVM devices NVM11 to NVM1n by sending command CMDa and address ADDRa to the first channel CH1.

[0098] NVM devices NVM11 to NVMmn can all operate under the control of memory controller 320. For example, NVM device NVM11 can be programmed with data DATAa according to the command CMDa, address ADDRa, and data DATAa provided through the first channel CH1. For example, NVM device NVM21 can read data DATAb according to the command CMDb and address ADDRb provided to the second channel CH2, and send the read data DATAb to memory controller 320.

[0099] although Figure 10 The memory device 310 communicates with the memory controller 320 through m channels, and the memory device 310 includes n NVM devices corresponding to each channel, but the number of channels and the number of NVM devices connected to a channel can vary.

[0100] The storage device according to the present invention can dynamically adjust the semantic compression and general compression of data according to the hierarchy of the storage unit where the data is to be stored, thereby optimizing the storage space and the access and response speed of the storage space.

[0101] Furthermore, the storage device according to the present invention can minimize semantic data loss by performing semantic compression on the data to be stored in higher-level storage.

[0102] Furthermore, since the storage device based on the present invention can store data through conventional compression without discarding the remaining data that has not been semantically compressed, overall data loss can be minimized.

[0103] Although the inventive concept has been specifically shown and described with reference to its various embodiments, it will be understood that various changes in form and detail may be made therein without departing from the spirit and scope of the following claims.

Claims

1. A storage device, the storage device comprising: Storage controller; as well as Non-volatile memory, The storage controller includes: an important data checker configured to check whether input data is important data; a semantic entropy checker configured to compare the semantic entropy of the input data with a first threshold when the input data is considered important; and a semantic compressor configured to perform semantic compression on the input data when the semantic entropy of the input data is less than or equal to the first threshold, and to store the semantically compressed data in the first-level storage section of the non-volatile memory.

2. The storage device according to claim 1, wherein, The semantic compressor is also configured to store additional data for semantic compression of the input data in the first-level storage unit.

3. The storage device according to claim 1, further comprising: A data entropy checker is configured to compare the data entropy of the input data with a second threshold when the semantic entropy of the input data exceeds a first threshold. as well as A non-semantic compressor is configured to perform non-semantic compression on the input data when the data entropy of the input data is less than or equal to the second threshold, and to store the non-semantic compressed data in the second-level storage section of the non-volatile memory.

4. The storage device according to claim 1, further comprising: A data entropy checker is configured to compare the data entropy of the input data with a second threshold when the input data is considered unimportant. as well as A non-semantic compressor is configured to perform non-semantic compression on the input data when the data entropy of the input data is less than or equal to the second threshold, and to store the non-semantic compressed data in the second-level storage section of the non-volatile memory.

5. The storage device according to claim 3, wherein, When the data entropy of the input data exceeds the second threshold, the data entropy checker stores the input data in the third level of the non-volatile memory.

6. The storage device according to claim 1, wherein, When the input data is deemed unimportant, the important data checker stores the input data in the second-level storage section of the non-volatile memory.

7. The storage device according to claim 1, further comprising: A data entropy checker is configured to compare the data entropy of the input data with a second threshold when the semantic entropy of the input data exceeds a first threshold. as well as A non-semantic compressor is configured to perform non-semantic compression on the input data when the data entropy of the input data is less than or equal to the second threshold, and to store the non-semantic compressed data in the first-level storage unit.

8. The storage device according to claim 7, wherein, When the data entropy of the input data exceeds the second threshold, the data entropy checker stores the input data in the first-level storage unit.

9. The storage device according to claim 1, wherein, The critical data inspector examines the data tags of the input data and classifies the input data as critical data when the data tags include tag information indicating a first level.

10. The storage device according to claim 1, wherein, The important data checker divides the input data into multiple segments, sets the importance of each segment based on semantic information, and classifies at least one segment with a preset importance as important data.

11. The storage device according to claim 10, wherein, The semantic information includes at least one of interest information and type information of the machine learning model.

12. The storage device according to claim 1, further comprising: A data entropy checker is configured to extract the remaining data that has not been semantically compressed by the semantic compressor and compare the data entropy of the remaining data with a second threshold. as well as A non-semantic compressor is configured to perform non-semantic compression on the remaining data when the data entropy of the remaining data is less than or equal to the second threshold, and to store the non-semantic compressed data in the first-level storage unit.

13. A storage device, the storage device comprising a storage controller and non-volatile memory, wherein, The storage controller includes a semantic compressor and a non-semantic compressor. The non-volatile memory includes: The first-level storage unit is configured to store data of a first type; The second-level storage unit is configured to store a second type of data; and The third-level storage unit is configured to store a third type of data. The first type of data includes data that has been semantically compressed by the semantic compressor, the second type of data includes data that has been non-semantically compressed by the non-semantic compressor, and the third type of data includes uncompressed data.

14. The storage device according to claim 13, wherein, The first type of data includes data with added tags indicating the first level by the host, or data with preset importance based on semantic information. The semantic information includes at least one of interest information and type information of the machine learning model.

15. The storage device according to claim 13, wherein, The first-level storage unit stores the first data of the first type. The first-level storage unit also stores the second type of second data. The first data includes data that has been semantically compressed by the semantic compressor, and The second data includes the remainder of the first data, which is not semantically compressed by the semantic compressor but is non-semantically compressed by the non-semantic compressor.

16. A method of operating a storage device, the method comprising: Check if the input data is important; When the input data is considered important, the semantic entropy of the input data is compared with a first threshold; When the semantic entropy of the input data is less than or equal to the first threshold, semantic compression is performed on the input data; as well as The semantically compressed data is stored in the first level of non-volatile memory.

17. The method according to claim 16, further comprising: When the semantic entropy of the input data exceeds the first threshold, the data entropy of the input data is compared with the second threshold; When the data entropy of the input data is less than or equal to the second threshold, non-semantic compression is performed on the input data; and The non-semantic compressed data is stored in the second-level storage section of the non-volatile memory.

18. The method according to claim 16, further comprising: When the input data is considered unimportant, the data entropy of the input data is compared with a second threshold; When the data entropy of the input data is less than or equal to the second threshold, non-semantic compression is performed on the input data; and The non-semantic compressed data is stored in the second-level storage section of the non-volatile memory.

19. The method according to claim 16, further comprising: When the semantic entropy of the input data exceeds the first threshold, the data entropy of the input data is compared with the second threshold; When the data entropy of the input data is less than or equal to the second threshold, non-semantic compression is performed on the input data; and The non-semantic compressed data is stored in the first-level storage unit.

20. The method of claim 16, further comprising: Extract the remaining data that has not been semantically compressed by the semantic compressor; The data entropy of the remaining data is compared with a second threshold. When the data entropy of the remaining data is less than or equal to the second threshold, non-semantic compression is performed on the remaining data; and The non-semantic compressed data is stored in the first-level storage unit.