Storage apparatus configured to support multiple streams and operating method thereof

By utilizing machine learning models to manage the similarity mapping between virtual and physical streams in semiconductor memory devices, data management and lifespan limitations are addressed, improving the performance and lifespan of storage devices.

CN113126908BActive Publication Date: 2026-04-10SAMSUNG ELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SAMSUNG ELECTRONICS CO LTD
Filing Date
2020-12-30
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

Existing semiconductor memory devices have limitations in data management and lifespan, especially due to insufficient data provided by the host due to hardware limitations, which affects the performance and lifespan of the storage device.

Method used

By mapping distance information between virtual and physical streams, multiple non-volatile memories are managed using machine learning models. Similarity information is extracted and calculated to map virtual streams to the most similar physical streams to perform operations, including stream mapping and clustering operations using a stream mapping manager and storage controller.

Benefits of technology

It improves the performance and lifespan of storage devices, reduces performance degradation caused by maintenance operations, and optimizes data management efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113126908B_ABST
    Figure CN113126908B_ABST
Patent Text Reader

Abstract

A storage device is configured to manage a plurality of non-volatile memories with a plurality of physical streams. An operating method of the storage device includes receiving an input / output request from an external host device, determining a 0th virtual stream identifier, extracting a 0th representative value from a 0th virtual stream feature, extracting first and second representative values corresponding to first and second physical streams, calculating distance information including first and second similarities between the 0th virtual stream and each of the first and second physical streams based on the extracted representative values, assigning one of the plurality of physical streams to the 0th virtual stream based on the distance information, and performing an operation corresponding to the input / output request at the assigned physical stream, and performing the extracting and the calculating by using a machine learning model.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to Korean Patent Application No. 10-2019-0178994, filed on December 31, 2019, with the Korean Intellectual Property Office, the entire contents of which are incorporated herein by reference. Technical Field

[0003] At least some exemplary embodiments of the inventive concept described herein relate to semiconductor memories, and more specifically, to a memory device configured to support multiple streams and a method of operating thereof. Background Technology

[0004] Semiconductor memory devices are classified as: volatile memory devices, in which stored data is lost when the power is turned off, such as static random access memory (SRAM) or dynamic random access memory (DRAM); or non-volatile memory devices, in which stored data is retained even when the power is turned off, such as flash memory devices, phase-change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), or ferroelectric RAM (FRAM).

[0005] Today, flash-based solid-state drives (SSDs) are widely used as high-capacity storage media in computing systems. Hosts using SSDs can generate various types of data depending on the application. To improve the operation of the storage device, the host can provide information about the data along with the data itself. However, due to the hardware limitations of SSDs, the information about the data that the host can provide is limited. Summary of the Invention

[0006] At least some exemplary embodiments of the present invention provide a storage device and a method of operation thereof that have improved performance and improved lifespan by mapping virtual and physical streams from a host based on distance information (i.e., similarity) between virtual streams and physical streams managed within the storage device.

[0007] According to at least some example embodiments, an operating method of a storage apparatus configured to manage a plurality of non-volatile memories with a plurality of physical streams includes receiving an input / output request from an external host apparatus, determining a 0th virtual stream identifier corresponding to the received input / output request, extracting a 0th representative value from a 0th virtual stream feature of a 0th virtual stream corresponding to the determined 0th virtual stream identifier, extracting a first representative value and a second representative value corresponding to first and second physical streams of the plurality of physical streams, respectively, calculating distance information including a first similarity between the 0th virtual stream and the first physical stream and a second similarity between the 0th virtual stream and the second physical stream based on the extracted 0th representative value, the first representative value, and the second representative value, assigning one of the plurality of physical streams to the 0th virtual stream based on the distance information, and performing an operation corresponding to the input / output request at the assigned physical stream, and wherein the extraction of the 0th representative value, the extraction of the first and second representative values, and the calculation of the distance information are performed by using a learning model pre-learned through machine learning.

[0008] According to at least some example embodiments, a storage apparatus includes a plurality of non-volatile memories, and a storage controller including processing circuitry configured to manage the plurality of non-volatile memories with a plurality of physical streams and assign one of the plurality of physical streams to a 0th virtual stream corresponding to an input / output request from an external host apparatus, wherein the storage controller further includes a memory configured to store stream information including a plurality of virtual stream features corresponding to the plurality of physical streams, respectively, and wherein the processing circuitry is configured to extract a 0th representative value from a 0th virtual stream feature corresponding to the 0th virtual stream, extract a plurality of representative values corresponding to the plurality of physical streams from the stream information based on a machine learning model pre-learned through machine learning, calculate distance information indicating a similarity between the 0th virtual stream and each of the plurality of physical streams based on the extracted 0th representative value and the extracted plurality of representative values, and assign one of the plurality of physical streams to the 0th virtual stream based on the distance information.

[0009] According to at least some example embodiments, an operating method of a storage apparatus configured to manage a plurality of non-volatile memories with a plurality of physical streams includes receiving an input / output request from an external host apparatus; determining a 0th virtual stream identifier corresponding to the received input / output request; extracting a 0th representative value from a 0th virtual stream feature of a 0th virtual stream corresponding to the determined 0th virtual stream identifier; obtaining a first representative value and a second representative value corresponding to first and second physical streams among the plurality of physical streams, respectively, from a representative value pool; calculating distance information including a first similarity between the 0th virtual stream and the first physical stream and a second similarity between the 0th virtual stream and the second physical stream based on the obtained first and second representative values; assigning one of the plurality of physical streams to the 0th virtual stream based on the distance information; performing an operation corresponding to the input / output request at the assigned physical stream; and updating the representative value pool based on the 0th representative value and a physical stream identifier corresponding to the assigned physical stream. The extraction of the 0th representative value and the calculation of the distance information are performed using a learning model pre-learned through machine learning.

[0010] According to at least some example embodiments, an operating method of a storage apparatus configured to manage a plurality of non-volatile memories with a plurality of physical streams includes receiving an input / output request from an external host apparatus; determining a 0th virtual stream identifier corresponding to the received input / output request; extracting a 0th representative value from a 0th virtual stream feature of a 0th virtual stream corresponding to the determined 0th virtual stream identifier; obtaining a first representative value and a second representative value corresponding to first and second physical streams among the plurality of physical streams, respectively, from a representative value pool; calculating distance information including a first similarity between the 0th virtual stream and the first physical stream and a second similarity between the 0th virtual stream and the second physical stream based on the obtained first and second representative values; assigning one of the plurality of physical streams to the 0th virtual stream based on the distance information; performing an operation corresponding to the input / output request at the assigned physical stream; and updating the representative value pool based on the 0th representative value and a physical stream identifier corresponding to the assigned physical stream. The extraction of the 0th representative value and the calculation of the distance information are performed using a learning model pre-learned through machine learning. BRIEF DESCRIPTION OF DRAWINGS

[0011] The above and other features and advantages of the example embodiments of the present inventive concepts will become more apparent by describing in detail example embodiments thereof with reference to the attached drawings. The drawings are intended to depict only typical example embodiments of the present inventive concepts and therefore should not be considered to limit the scope of the claims. The drawings should not be interpreted in a limiting manner.

[0012] The above and other features and advantages of the example embodiments of the present inventive concepts will become more apparent by describing in detail example embodiments thereof with reference to the attached drawings. The drawings are intended to depict only typical example embodiments of the present inventive concepts and therefore should not be considered to limit the scope of the claims. The drawings should not be interpreted in a limiting manner.FIG. 1 is a block diagram illustrating a storage system according to at least one example embodiment of the inventive concepts.

[0013] FIG. 2 is a block diagram illustrating a storage controller of FIG. 1 .

[0014] FIG. 3 is a block diagram illustrating a non-volatile memory device of FIG. 1 .

[0015] FIG. 4 is a diagram for describing physical streams managed at a storage device.

[0016] FIG. 5 is a diagram illustrating a stream mapping table of FIG. 2 .

[0017] FIG. 6 is a flowchart illustrating an operation of the storage device of FIG. 2 .

[0018] FIG. 7 is a flowchart illustrating the operation S140 of FIG. 6 .

[0019] FIG. 8 is an example diagram for describing a distance information calculation process of the storage controller of FIG. 2 .

[0020] FIG. 9 is a diagram illustrating a physical stream database of FIG. 8 .

[0021] FIG. 10 is a block diagram illustrating a representative value extractor of FIG. 8 in detail.

[0022] FIG. 11A and FIG. 11B are diagrams for describing an operation of the representative value extractor of FIG. 8 and FIG. 9 .

[0023] FIG. 12 is an example diagram for describing a distance function engine of FIG. 8 .

[0024] FIG. 13 and FIG. 14 are flowcharts and block diagrams illustrating an operation of a storage device according to at least one example embodiment of the inventive concepts.

[0025] FIG. 15A and FIG. 15B are diagrams for describing an operation of updating a representative value pool of FIG. 14 .

[0026] FIG. 16 is a flowchart illustrating operations of the storage device of FIG. 1 .

[0027] FIG. 17 is a flowchart illustrating operations of the storage device of FIG. 1 .

[0028] FIG. 18 is a block diagram illustrating a solid state drive system of a storage system to which at least one of the example embodiments according to the inventive concept is applied.

[0029] FIG. 19 is a block diagram illustrating an electronic device of a storage system to which at least one of the example embodiments according to the inventive concept is applied.

[0030] FIG. 20 is a block diagram illustrating a data center of a storage system to which at least one of the example embodiments according to the inventive concept is applied. DETAILED DESCRIPTION

[0031] Hereinafter, at least some example embodiments of the inventive concept will be described in detail.

[0032] The components described in the specification by using the terms such as "part", "unit", "module", "engine", etc. and the functional blocks shown in the drawings can be implemented using software, hardware, or a combination thereof. The software can be computer-readable instructions stored in a memory of one or more processors configured to execute the computer-readable instructions. For example, the software can be machine code, firmware, embedded code, and / or application software including computer-readable instructions, which is stored in a memory of one or more processors and executed by the one or more processors. For example, the hardware can include a circuit, an electronic circuit, a processor, a computer, an integrated circuit, an integrated circuit core, a pressure sensor, an inertial sensor, a micro electro mechanical system (MEMS), a passive element, or a combination thereof. In addition, unless defined differently, all terms (including technical or scientific terms) used herein have the same meaning as understood by those skilled in the art. Terms defined in a commonly used dictionary are to be interpreted as having the same meaning as the context in the relevant technical field, and are not to be interpreted as having ideal or overly formal meanings unless clearly defined in the specification.

[0033] FIG. 1 is a block diagram illustrating a storage system according to at least one of the example embodiments of the inventive concept. Referring to FIG. 1The storage system 100 can include a host 110 and a storage device 1000. According to at least one example embodiment of the inventive concept, the storage system 100 can be a storage system of an information processing device configured to process various information and store the processed information. Examples of the information processing device that can have the storage system 100 as the storage system include, but are not limited to, a personal computer (PC), a laptop computer, a server, a workstation, a smart phone, a tablet PC, a digital camera, and a black box.

[0034] The host 110 can control the overall operation of the storage system 100. For example, the host 110 can transmit a request RQ for storing data "DATA" in the storage device 1000 or reading the data "DATA" stored in the storage device 1000 to the storage device 1000.

[0035] The storage device 1000 can include a storage controller 1100 and a non-volatile memory device 1200. In response to the request RQ from the host 110, the storage controller 1100 can store the data "DATA" received from the host 110 in the non-volatile memory device 1200 or can transfer the data "DATA" stored in the non-volatile memory device 1200 to the host 110.

[0036] According to at least one example embodiment of the inventive concept, the host 110 can manage the data "DATA" stored in the storage device 1000 based on a virtual stream VS. For example, the host 110 can assign a virtual stream identifier VSID to data to be stored in the storage device 1000 based on attributes of the data. That is, data of the same attribute or similar attributes can be managed through the same virtual stream identifier VSID.

[0037] According to at least one example embodiment of the inventive concept, the storage device 1000 can support a multi-stream function of managing a storage space of the non-volatile memory device 1200 based on a physical stream PS. In this case, the number of physical streams managed or supported by the storage device 1000 can be different from the number of virtual streams managed by the host 110. For example, the number of physical streams can be smaller than the number of virtual streams. In other words, in the case where the number of virtual streams to be managed by the host 110 is "n", the number of physical streams managed or supported by the storage device 1000 can be "m", where "m" and "n" are positive integers and "m" is smaller than "n". According to at least one example embodiment of the inventive concept, the number of physical streams managed by the storage device 1000 can be managed or designated based on resources (e.g., a data buffer) of the storage device 1000. That is, a device for mapping a plurality of virtual streams to a relatively small number of physical streams can be required.

[0038] The storage controller 1100 of the storage device 1000 according to at least one example embodiment of the present inventive concept can include a stream mapping manager 1110. The stream mapping manager 1110 can perform an operation of mapping a virtual stream managed by the host 110 to a physical stream managed by the storage device 1000 (i.e., a stream mapping operation or a stream clustering operation). According to at least one example embodiment of the present inventive concept, the stream mapping manager 1110 can perform the above-described stream mapping or clustering operation based on machine learning. Hereinafter, the operation of the stream mapping manager 1110 according to at least one example embodiment of the present inventive concept will be more fully described with reference to the accompanying drawings.

[0039] FIG. 2 is a block diagram illustrating FIG. 1 a storage controller. Referring to FIG. 1 and FIG. 2 , the storage controller 1100 can include a stream mapping manager 1110, a processor 1120, a host interface circuit 1130, a non-volatile memory interface circuit 1140, an input / output (I / O) monitor 1150, a stream information SDB, and a mapping table SMT between a virtual stream and a physical stream (hereinafter, referred to as a "stream mapping table").

[0040] According to at least some example embodiments of the present inventive concept, the storage controller 1100 can be or include processing circuitry (e.g., the processor 1120). The processing circuitry of the controller 1100 can include one or more circuits or circuitry (e.g., hardware) specifically constructed to perform and / or control some or all of the operations described in this disclosure as being performed by the controller 1100, the storage device 1000, or an element of either. According to at least one example embodiment of the present inventive concept, the processing circuitry of the controller 1100 can include a memory and one or more processors that execute computer-readable code (e.g., software and / or firmware) stored in the memory and including instructions for causing the one or more processors to perform and / or control some or all of the operations described in this disclosure as being performed by the controller 1100, the storage device 1000, or an element of either. According to at least one example embodiment of the present inventive concept, the processing circuitry of the controller 1100 can include a combination of, for example, the above-described hardware and one or more processors that execute computer-readable code.

[0041] Referring to FIG. 1 and FIG. 2The stream mapping manager 1110 can be configured to assign a physical stream to a request RQ received from the host 110. For example, the stream mapping manager 1110 can determine a virtual stream identifier of the request RQ received from the host 110. The stream mapping manager 1110 can determine whether there is a physical stream previously assigned to the virtual stream identifier based on the stream mapping table SMT. In the case where there is no physical stream assigned to the target virtual stream identifier, the stream mapping manager 1110 can assign or map a physical stream to the virtual stream identifier based on information about each of the plurality of physical streams in the stream information SDB and information corresponding to the received request RQ.

[0042] In this case, the stream mapping manager 1110 can map virtual streams of similar characteristics to the same physical stream. According to at least one example embodiment of the inventive concept, assigning a physical stream to a target virtual stream identifier can be performed based on machine learning. Hereinafter, the operation of the stream mapping manager 1110 will be more fully described with reference to the accompanying drawings.

[0043] The processor 1120 can control the overall operation of the storage controller 1100. For example, the processor 1120 can be configured to drive a flash translation layer (FTL) (not shown) on the storage controller 1100. Alternatively, the processor 1120 can be configured to perform various operations required to operate the storage controller 1100.

[0044] According to at least one example embodiment of the inventive concept, the stream mapping manager 1110 can be implemented in the form of software, hardware, or a combination thereof. For example, the stream mapping manager 1110 can be implemented by a hardware device such as a machine learning accelerator including circuitry configured to perform various machine learning operations. Alternatively, the stream mapping manager 1110 can be implemented in the form of software designed to perform various machine learning operations; in this case, the stream mapping manager 1110 can be driven by the processor 1120.

[0045] The host interface circuit 1130 can communicate with the host 110 in compliance with a given communication protocol. The host interface circuit 1130 can be implemented based on the given communication protocol. According to at least one example embodiment of the inventive concept, the given interface protocol can include at least one of various interfaces such as a SATA (Serial ATA) interface, a PCIe (Peripheral Component Interconnect Express) interface, a SAS (Serial Attached SCSI) interface, an NVMe (Non-Volatile Memory Express) interface, an NVMeoF (NVMe of Fabrics), and a UFS (Universal Flash Storage) interface.

[0046] According to at least one example embodiment of the inventive concept, the storage controller 1100 can determine a virtual stream identifier VSID corresponding to a request RQ provided from the host 110 by using the host interface circuit 1130. For example, in a case where the virtual stream identifier VSID of data is directly managed by the host 110, the host 110 can provide the storage controller 1100 with a request RQ including the virtual stream identifier VSID. In this case, the storage controller 1100 can check the virtual stream identifier VSID of the received request RQ by using the host interface circuit 1130. Alternatively, in a case where the virtual stream identifier VSID of data is not directly managed by the host 110, the host 110 can provide the storage controller 1100 with a request RQ not including the virtual stream identifier VSID. In this case, the storage controller 1100 can check various information (e.g., a logical address of data and a size of data) of the received request RQ by using the host interface circuit 1130, and can assign and manage a virtual stream identifier VSID corresponding to the received request RQ based on the checked information. That is, the virtual stream identifier VSID can be explicitly provided by the host 110; alternatively, in a case where the virtual stream identifier VSID is not explicitly provided by the host 110, the storage controller 1100 can assign and manage the virtual stream identifier VSID based on various information about the received request RQ.

[0047] The above-described operation of checking, assigning, or managing the virtual stream identifier VSID is described as being performed by the host interface circuit 1130, but at least some example embodiments of the inventive concept are not limited thereto. For example, the storage controller 1100 can further include another component for managing the virtual stream identifier VSID, e.g., a command processing component such as a command parser.

[0048] The non-volatile memory interface circuit 1140 can communicate with the non-volatile memory device 1200 in compliance with a given communication protocol. According to at least one example embodiment of the inventive concept, the given interface protocol can be a NAND interface.

[0049] The input / output monitor 1150 can be configured to monitor various input / output information of the storage device 1000. For example, the input / output monitor 1150 can be configured to monitor various input / output information about each of the plurality of virtual streams. The monitored information can be stored in the stream information SDB. According to at least one example embodiment of the inventive concept, the input / output information about each of the plurality of virtual streams can include any or all of the following information: throughput about each of the plurality of virtual streams, a logical block address (LBA) range, sequentiality, burstiness, continuity, update, etc. According to at least one example embodiment of the inventive concept, the throughput can indicate an amount of data output per unit time from the corresponding virtual stream, the logical address range can indicate a logical address range of data in the corresponding virtual stream, the sequentiality can indicate whether I / O requests for the corresponding virtual stream occur in sequence, the burstiness can indicate an amount of data output at a time from the corresponding virtual stream, the continuity can indicate a time for which data in the corresponding virtual stream remains, and the update can indicate a number of updates of data in the corresponding virtual stream. However, the above description is an example, and at least some example embodiments of the inventive concept are not limited thereto.

[0050] The stream information SDB can be configured to store various information corresponding to each of the plurality of virtual streams. For example, as described above, the plurality of virtual streams can be mapped to the plurality of physical streams. The stream information SDB can be configured to store information about each virtual stream corresponding to each physical stream. According to at least one example embodiment of the inventive concept, the stream information SDB can be updated by the input / output monitor 1150. According to at least one example embodiment of the inventive concept, the stream information SDB can be provided in the form of a database, and can be stored in a buffer memory (not shown) included in the storage controller 1100 or in a buffer memory (not shown) external to the storage controller 1100.

[0051] The stream mapping table SMT can be configured to store information about mapping between the plurality of virtual streams and the plurality of physical streams. According to at least one example embodiment of the inventive concept, the stream information SDB and the stream mapping table SMT can be stored in a buffer memory (not shown) included in the storage controller 1100 or in a buffer memory (not shown) external to the storage controller 1100.

[0052] FIG. 3 is a block diagram illustrating FIG. 1 a non-volatile memory device. FIG. 4 is a diagram for describing physical streams managed at a storage device. Refer to FIG. 1 , FIG. 3 and FIG. 4The non-volatile memory device 1200 can include a plurality of non-volatile memories NVM11 to NVM44. Each of the plurality of non-volatile memories NVM11 to NVM44 can be implemented with, for example, one semiconductor chip, one semiconductor die, or one semiconductor package.

[0053] The non-volatile memory NVM11 can include a plurality of planes PL1 and PL2. The plane PL1 can include a plurality of memory blocks BLK11 to BLK14, and the plane PL2 can include a plurality of memory blocks BLK21 to BLK24. Each of the plurality of memory blocks BLK11 to BLK14 and BLK21 to BLK24 can include a plurality of pages. According to at least one example embodiment of the present inventive concept, a plurality of memory blocks (e.g., BLK11 to BLK14) included in the same plane (e.g., PL1) can be configured to share the same bit line, but at least some example embodiments of the present inventive concept are not limited thereto. For the sake of illustrative simplicity, an example is shown that one non-volatile memory NVM11 includes two planes PL1 and PL2 and one plane includes four memory blocks, but at least some example embodiments of the present inventive concept are not limited thereto. For example, the number of planes, the number of memory blocks, or the number of pages can be variously changed or modified. According to at least one example embodiment of the present inventive concept, the remaining non-volatile memories NVM12 to NVM44 are similar in structure to the above-described non-volatile memory NVM11, and thus additional description will be omitted to avoid redundancy.

[0054] The nonvolatile memories NVM11, NVM12, NVM13, and NVM14 belonging to the first part among the plurality of nonvolatile memories NVM11 to NVM44 can communicate with the storage controller 1100 through the first channel CH1, the nonvolatile memories NVM21, NVM22, NVM23, and NVM24 belonging to the second part among the plurality of nonvolatile memories NVM11 to NVM44 can communicate with the storage controller 1100 through the second channel CH2, the nonvolatile memories NVM31, NVM32, NVM33, and NVM34 belonging to the third part among the plurality of nonvolatile memories NVM11 to NVM44 can communicate with the storage controller 1100 through the third channel CH3, and the nonvolatile memories NVM41, NVM42, NVM43, and NVM44 belonging to the fourth part among the plurality of nonvolatile memories NVM11 to NVM44 can communicate with the storage controller 1100 through the fourth channel CH4. The nonvolatile memories NVM11, NVM21, NVM31, and NVM41 can constitute a first way WAY1, the nonvolatile memories NVM12, NVM22, NVM32, and NVM42 can constitute a second way WAY2, the nonvolatile memories NVM13, NVM23, NVM33, and NVM43 can constitute a third way WAY3, and the nonvolatile memories NVM14, NVM24, NVM34, and NVM44 can constitute a fourth way WAY4. That is, the nonvolatile memory device 1200 can have a multi-way / multi-channel structure, and it can be understood that at least some example embodiments of the inventive concept are not limited to FIG. 3 the structure shown.

[0055] According to at least one example embodiment of the inventive concept, the storage device 1000 can manage a plurality of memory blocks included in the nonvolatile memory device 1200 based on a plurality of physical streams. For example, as shown in FIG. 4 the storage device 1000 can manage a first memory block BLK1 among the plurality of memory blocks as a physical stream corresponding to a first physical stream identifier PSID1, can manage a second memory block BLK2 among the plurality of memory blocks as a physical stream corresponding to a second physical stream identifier PSID2, can manage a third memory block BLK3 among the plurality of memory blocks as a physical stream corresponding to a third physical stream identifier PSID3, and can manage a fourth memory block BLK4 among the plurality of memory blocks as a physical stream corresponding to a fourth physical stream identifier PSID4.

[0056] According to at least one example embodiment of the inventive concept, memory blocks (e.g., the first memory block BLK1) corresponding to / belonging to the same physical stream identifier can be included in the same plane, can be included in the same non-volatile memory, can be included in the non-volatile memory connected to the same channel, or can be included in the non-volatile memory included in the same lane. Alternatively, the memory blocks (e.g., the first memory block BLK1) corresponding to the physical stream identifier (e.g., PSID1) can be distributed to a plurality of non-volatile memories. However, the above description is an example, and at least some example embodiments of the inventive concept are not limited thereto.

[0057] As described with reference to FIG. 2 , the stream mapping manager 1110 can map virtual streams of similar characteristics to the same physical stream, and thus data corresponding to the virtual streams of similar characteristics can be stored in the same physical stream. In this case, since the data stored in the same physical stream has similar characteristics, performance degradation due to a maintenance operation (e.g., a garbage collection operation) of the storage device 1000 can be slowed down, or a write amplification factor (WAF) can be reduced.

[0058] FIG. 5 is a diagram illustrating a stream mapping table of FIG. 2 . Hereinafter, for the sake of illustration simplicity and for the convenience of description, the terms "physical stream" and "physical stream identifier" can be used interchangeably. That is, the term "physical stream identifier" or a label of the physical stream identifier (e.g., PSID) can be used to indicate a physical stream. Likewise, the terms "virtual stream" and "virtual stream identifier" can be used interchangeably, and the term "virtual stream identifier" or a label of the virtual stream identifier (e.g., VSID) can be used to indicate a virtual stream.

[0059] Referring to FIG. 2 and FIG. 5 , the stream mapping table SMT can include information about mapping between a virtual stream and each of a plurality of physical streams. For example, the storage device 1000 can include four physical streams PSID1 to PSID4. In this case, by the storage device 1000 (or the stream mapping manager 1110), a plurality of virtual streams VSID11 to VSID1m can be mapped to the first physical stream PSID1, a plurality of virtual streams VSID21 to VSID2n can be mapped to the second physical stream PSID2, a plurality of virtual streams VSID31 to VSID3k can be mapped to the third physical stream PSID3, and a plurality of virtual streams VSID41 to VSID4i can be mapped to the fourth physical stream PSID4. The stream mapping table SMT can include the mapping information as described above.

[0060] As described above, the stream mapping manager 1110 can determine whether a virtual stream corresponding to the request RQ received from the host 110 is mapped to any physical stream based on the stream mapping table SMT. When the virtual stream corresponding to the request RQ received from the host 110 exists in the stream mapping table SMT, the stream mapping manager 1110 can process an operation corresponding to the request RQ at a physical stream corresponding to the virtual stream. In contrast, when the virtual stream does not exist in the stream mapping table SMT, the stream mapping manager 1110 can perform an operation for assigning or mapping a physical stream to the virtual stream (i.e., a stream mapping operation or a stream clustering operation). Hereinafter, the stream mapping operation or the stream clustering operation will be more fully described with reference to the accompanying drawings.

[0061] FIG. 6 is a flowchart illustrating an operation of the storage device of FIG. 2 . FIG. 7 is a flowchart illustrating the operation S140 of FIG. 6 . Referring to FIG. 2 , FIG. 6 and FIG. 7 , in operation S110, the storage device 1000 can receive an input / output request RQ from the host 110. For ease of description, it is assumed that the input / output request RQ is a write request.

[0062] In operation S120, the storage device 1000 can determine a virtual stream identifier VSID corresponding to the input / output request RQ. For example, as described with reference to FIG. 2 , in the case where the virtual stream identifier VSID is directly managed by the host 110, information about the virtual stream identifier VSID can be included in the input / output request RQ. In this case, the storage controller 1100 can determine the virtual stream identifier VSID corresponding to the input / output request RQ based on the input / output request RQ. In contrast, in the case where the virtual stream identifier VSID is not directly managed by the host 110, the storage controller 1100 can assign and manage the virtual stream identifier VSID to the input / output request RQ based on various information about the input / output request RQ (e.g., a logical address and a data size). For ease of description, the virtual stream identifier corresponding to the input / output request RQ from the host 110 is referred to as a "0th virtual stream identifier", and a virtual stream corresponding to the 0th virtual stream identifier is referred to as a "0th virtual stream".

[0063] In operation S130, the storage device 1000 can determine whether the 0th virtual stream identifier VSID0 is assigned or mapped to a physical stream. For example, the storage controller 1100 of the storage device 1000 can determine whether the 0th virtual stream identifier VSID0 is assigned to a physical stream based on the stream mapping table SMT. When it is determined that the 0th virtual stream identifier VSID0 is assigned to a physical stream, in operation S190, the storage device 1000 can perform an operation corresponding to the input / output request RQ at the corresponding physical stream PS. For example, the storage controller 1100 of the storage device 1000 can store data corresponding to the input / output request RQ in the corresponding physical stream PS or one of the memory blocks included in the corresponding physical stream PS.

[0064] When it is determined that there is no physical stream assigned to the 0th virtual stream identifier VSID0, in operation S140, the storage controller 1100 of the storage device 1000 can calculate distance information DS between each of the plurality of physical streams PS and the 0th virtual stream. According to at least one example embodiment of the inventive concept, the distance information DS can be a value indicating a degree of similarity (or stream similarity) between the 0th virtual stream and each of the plurality of physical streams PS. The stream similarity can be a factor indicating how similar the characteristics of the virtual streams included in each of the plurality of physical streams are to the characteristics of the 0th virtual stream. According to at least one example embodiment of the inventive concept, the operation of calculating the distance information DS can be performed based on machine learning.

[0065] In detail, operation S140 can include operations S141 to S143, as shown in FIG. 7 In operation S141, the storage device 1000 can extract a representative value (or a representative vector) of each physical stream by using a machine learning model. For example, the representative value of each of the plurality of physical streams can be a characteristic value corresponding to one of the virtual streams assigned to each of the plurality of physical streams. The characteristic value can be one of various information (e.g., throughput, logical block address range, orderliness, burstiness, continuity, update, etc.) of the corresponding virtual stream, or can be a combination of two or more of the various information of the corresponding virtual stream. According to at least one example embodiment of the inventive concept, the characteristic value can be a value directly monitored by the input / output monitor 1150 (refer to FIG. 1), or can be a combination of the monitored values. FIG. 2

[0066] The storage controller 1100 of the storage device 1000 can extract a representative value of each physical stream by using machine learning based on the information stored in the stream information SDB.

[0067] ​In operation S142, the storage device 1000 can extract a 0th representative value (or a 0th representative vector, which can include, for example, a plurality of feature values) associated with the 0th virtual stream identifier VSID0 by using the machine learning model. The 0th representative value can be a feature value corresponding to the 0th virtual stream. The feature value is described above, and thus additional description will be omitted to avoid redundancy.

[0068] In operation S143, the storage device 1000 can calculate distance information based on the extracted values. For example, the storage controller 1100 of the storage device 1000 can calculate a logical distance between each of the extracted representative values and the 0th representative value, can quantize the calculated distance, and can output the quantized result as the distance information. According to at least one example embodiment of the inventive concept, as described above, the distance information DS can indicate a degree of similarity between each of the plurality of physical streams and the 0th virtual stream.

[0069] After operation S140, in operation S150, the storage device 1000 can determine whether the distance information DS is lower than the reference value REF. For example, the distance information DS can include a plurality of values associated with a degree of similarity between the target virtual stream and each of the plurality of physical streams PS. The storage controller 1100 of the storage device 1000 can determine whether at least one of the plurality of values is lower than the reference value REF.

[0070] When the distance information DS is not lower than the reference value REF (for example, when each of the plurality of values included in the distance information DS, which is respectively associated with the plurality of physical streams PS, is not lower than the reference value REF), in operation S160, the storage device 1000 can determine whether there is still an unassigned physical stream. When there is still an unassigned physical stream, in operation S170, the storage device 1000 can select one of the unassigned physical streams. For example, the storage controller 1100 of the storage device 1000 can assign or map one of the unassigned physical streams to the 0th virtual stream.

[0071] When it is determined in operation S150 that the distance information DS is lower than the reference value REF (for example, when at least one value among the plurality of values included in the distance information DS respectively associated with the plurality of physical streams PS is lower than the reference value REF) or when it is determined in operation S160 that there is no unallocated physical stream, the storage device 1000 can select a physical stream corresponding to the lowest value among the plurality of values included in the distance information DS in operation S180. For example, the distance information DS being lower than the reference value REF can mean that there is a physical stream having a high similarity to the 0th virtual stream among the plurality of physical streams. In addition, as the distance information DS becomes lower or becomes closer to "0", the similarity can increase. In the case where the first physical stream has a high similarity to the 0th virtual stream, the similarity between the remaining virtual streams mapped to the first physical stream and the 0th virtual stream can be high. That is, the 0th virtual stream can be selected to select a physical stream corresponding to the lowest distance value among the plurality of values included in the distance information DS. Alternatively, even if the distance information DS is not lower than the reference value REF, in the case where there is no unallocated physical stream, a physical stream corresponding to the lowest distance value among the allocated physical streams can be selected, and thus, a physical stream having a high similarity to the 0th virtual stream can be selected.

[0072] According to at least one example embodiment of the inventive concept, in the case where at least two distance values are equal and are the lowest, the storage device 1000 can select a physical stream according to a separate internal policy. For example, the storage device 1000 can select a physical stream to which a relatively small number of memory blocks are allocated from among the physical streams respectively corresponding to the at least two lowest and equal distance values. Alternatively, the storage device 1000 can select a physical stream by comparing any other information about the physical streams respectively corresponding to the at least two lowest distance values.

[0073] Thereafter, the storage device 1000 can perform operation S190. Operation S190 is described above, and thus, additional description will be omitted to avoid redundancy.

[0074] According to at least one example embodiment of the inventive concept, the storage device 1000 can update the stream mapping table SMT based on information about the physical stream allocated to the 0th virtual stream. For example, the storage device 1000 can update the stream mapping table SMT with mapping information of the 0th virtual stream identifier and the allocated physical stream identifier.

[0075] As described above, the storage device 1000 according to at least one example embodiment of the inventive concept can select a physical stream having the highest similarity to a virtual stream by extracting a representative value of each physical stream and comparing the extracted representative value with a representative value of a virtual stream from the host 110. In addition, since the representative value extracted from various stream information is used and various stream information is periodically or in real time reflected in determining the similarity, the accuracy of determining the similarity can be improved. Accordingly, since a virtual stream having a high similarity is assigned or mapped to the same physical stream, a performance reduction due to a maintenance operation of the storage device 1000 can be prevented (or slowed down).

[0076] FIG. 8 is an example diagram for describing a distance information calculation process of the storage controller. FIG. 2 FIG. 9 is a diagram illustrating a physical stream database of FIG. 8 FIG. 10 is a block diagram illustrating a representative value extractor of FIG. 8 For the sake of simplicity of illustration, components unnecessary for describing the calculation of distance information and the stream mapping operation are omitted. In addition, for the convenience of description, it is assumed that the storage device 1000 includes four physical streams PSID1, PSID2, PSID3, and PISID4. However, at least some example embodiments of the inventive concept are not limited thereto. For example, the number of physical streams managed by the storage device 1000 can be variously changed.

[0077] Referring to FIG. 2 and FIG. 8 to FIG. 10 , the storage controller 1100 can include a stream information SDB, a stream mapping manager 1110, and a non-volatile memory interface circuit 1140.

[0078] The stream information SDB can include information about the first to fourth physical streams PSDB1 to PSDB4 (hereinafter referred to as "first to fourth physical stream information"). Each of the first to fourth physical stream information PSDB1 to PSDB4 can include a characteristic associated with a corresponding virtual stream. For example, as FIG. 9 ​​As shown, the first physical stream information PSDB1 can include virtual stream features VSF11 to VSF14 of virtual streams VSID11 to VSID14 mapped to the first physical stream PSID1. The second physical stream information PSDB2 can include virtual stream features VSF21 to VSF24 of virtual streams VSID21 to VSID24 mapped to the second physical stream PSID2. The third physical stream information PSDB3 can include virtual stream features VSF31 to VSF34 of virtual streams VSID31 to VSID34 mapped to the third physical stream PSID3. The fourth physical stream information PSDB4 can include virtual stream features VSF41 to VSF44 of virtual streams VSID41 to VSID44 mapped to the fourth physical stream PSID4.

[0079] Each of the virtual stream features VSF11 to VSF44 can include various information about each of the virtual streams VSID11 to VSID44. For example, the virtual stream feature VSF11 of the virtual stream VSID11 mapped to the first physical stream PSID1 can include the following information about the first virtual stream VSID1: throughput TP, logical block address range LR, update UP, sequentiality SQ, and burstiness BS. The virtual stream feature VSF11 can be a value monitored by the input / output monitor 1150 (refer to FIG. 11), or can be a combination of the monitored values. Each of the remaining virtual stream features VSF12 to VSF44 can include information of the corresponding virtual stream as described above, and thus additional description will be omitted to avoid redundancy. FIG. 2 ) monitor, or can be a combination of the monitored values. Each of the remaining virtual stream features VSF12 to VSF44 can include information of the corresponding virtual stream as described above, and thus additional description will be omitted to avoid redundancy.

[0080] The stream mapping manager 1110 can determine a physical stream PSID associated with the 0th virtual stream VSID0 based on the stream information SDB and the 0th virtual stream feature VSF0 of the 0th virtual stream VSID0 (i.e., a virtual stream corresponding to a request RQ from the host 110).

[0081] For example, the stream mapping manager 1110 can include a representative value extractor 1111, a distance function engine 1112, and a physical stream determiner 1113. The representative value extractor 1111 can extract 0th to fourth representative values RV0 to RV4 from the 0th virtual stream feature VSF0 and the virtual stream features VFS1x to VSF4x of the first to fourth physical stream information PSDB1 to PSDB4. According to at least one example embodiment of the present conception, the representative value extractor 1111 can perform the above-described representative value extraction operation based on a pre-learned machine learning model. According to at least one example embodiment of the present conception, the pre-learned machine learning model can be learned or trained by using a training data set. The training data set can include data patterns having various types or characteristics, and be prepared by a user or a vendor. According to at least one example embodiment of the present conception, the training data set can be a data set stored in a storage device at runtime.

[0082] In detail, such as FIG. 10 As shown, the representative value extractor 1111 may include a selection engine 1111a and an extraction engine 1111b. The selection engine 1111a may include multiple selection models SM1 to SM4. The selection engine 1111a can select the corresponding virtual flow features VSFa to VSFd from multiple virtual flow features VSF1x to VSF4x of the first physical flow information PSDB1 to the fourth physical flow information PSDB4 by using the multiple selection models SM1 to SM4.

[0083] According to at least one example embodiment of the present invention, each of the plurality of selection models SM1 to SM4 can be a model pre-learned through machine learning. Machine learning may include one of various machine learning schemes such as Siamese networks, deep neural networks, convolutional neural networks, and autoencoders. According to at least one example embodiment of the present invention, the plurality of selection models SM1 to SM4 may be implemented using different learning models, or the plurality of selection models SM1 to SM4 may be implemented using a single learning model. That is, the selection engine 1111a can select highly important virtual flow features from virtual flow features corresponding to each of the plurality of physical flows by using one of the plurality of selection models SM1 to SM4. According to at least one example embodiment of the present invention, high importance of a virtual flow feature may mean that the virtual flow feature represents a feature of the corresponding physical flow or a feature of the plurality of virtual flows included in the corresponding physical flow.

[0084] Extraction engine 1111b may include multiple extraction models EM0 to EM4. Extraction engine 1111b can extract the 0th representative value RV0 to the 4th representative value RV4 from the 0th virtual flow feature VSF0 and selected virtual flow features VSFa to VSFd by using the 0th extraction model EM0 to the 4th extraction model EM4.

[0085] According to at least one example embodiment of the inventive concept, each of the plurality of extraction models EM0 to EM4 can be a model pre-learned through machine learning. The machine learning can include one of the above-described machine learning schemes. According to at least one example embodiment of the inventive concept, the plurality of extraction models EM0 to EM4 can be implemented with different learning models, or the plurality of extraction models EM0 to EM4 can be implemented with a single learning model. That is, the extraction engine 1111b can extract information having high importance from the plurality of virtual stream features as representative values by using the plurality of extraction models EM0 to EM4. The high importance of the representative values can mean that the representative values represent characteristics of the corresponding physical stream. For example, in the case where a virtual stream of a large amount of data is mapped or assigned to a certain physical stream, the representative value of the certain physical stream can be a characteristic value (e.g., a logical block address range or a data size) capable of expressing the large amount of data. Alternatively, in the case where a virtual stream of hot data is mapped or assigned to a certain physical stream, the representative value of the certain physical stream can be a characteristic value (e.g., updateability) indicating an update period of the data. However, the above description is an example, and at least some example embodiments of the inventive concept are not limited thereto. According to at least one example embodiment of the inventive concept, the representative values extracted from each of the plurality of stream features can correspond to one piece of information, or can correspond to at least two or more pieces of information. Alternatively, the representative values extracted from the plurality of stream features can be different types of information.

[0086] Returning to FIG. 8 As described above, the representative value extractor 1111 can extract the 0th representative value RV0 to the fourth representative value RV4 based on a model pre-learned through machine learning.

[0087] The distance function engine 1112 can be configured to calculate distance information DS based on the representative values RV0 to RV4 extracted by the representative value extractor 1111. For example, as described above, the 0th representative value RV0 can be a representative value corresponding to the 0th virtual stream VSID0 of the request RQ received from the host 110, and the first representative value RV1 to the fourth representative value RV4 can be representative values corresponding to the first physical stream PSID1 to the fourth physical stream PSID4 managed by the storage 1000, respectively. The distance function engine 1112 can compare the 0th representative value RV0 with each of the first representative value RV1 to the fourth representative value RV4, and can output a comparison result as the distance information DS. That is, the distance information DS can include a first distance value ds1 to a fourth distance value ds4. The first distance value ds1 can indicate a degree of similarity between the 0th virtual stream VSID0 and the first physical stream PSID1, the second distance value ds2 can indicate a degree of similarity between the 0th virtual stream VSID0 and the second physical stream PSID2, the third distance value ds3 can indicate a degree of similarity between the 0th virtual stream VSID0 and the third physical stream PSID3, and the fourth distance value ds4 can indicate a degree of similarity between the 0th virtual stream VSID0 and the fourth physical stream PSID4. According to at least one example embodiment of the present conception, the distance function engine 1112 can be configured to calculate the above-described distance information DS using a learning model pre-learned through machine learning.

[0088] The physical stream determiner 1113 can receive the distance information DS from the distance function engine 1112 and can determine a physical stream or a physical stream identifier PSID corresponding to the 0th virtual stream VSID0 based on the received distance information DS. For example, the physical stream determiner 1113 can determine whether there is a value lower than the reference value REF among the first distance value ds1 to the fourth distance value ds4 included in the distance information DS. Alternatively, when there is no value lower than the reference value REF among the first distance value ds1 to the fourth distance value ds4 and there is any other physical stream, the physical stream determiner 1113 can select any other physical stream other than the first physical stream PSID1 to the fourth physical stream PSID4 as the physical stream corresponding to the 0th virtual stream VSID0.

[0089] Alternatively, when there is no value lower than the reference value REF among the first distance value ds1 to the fourth distance value ds4 and there is no any other physical stream, the physical stream determiner 1113 can select a physical stream corresponding to the lowest value among the first distance value ds1 to the fourth distance value ds4 as the physical stream corresponding to the 0th virtual stream VSID0. Alternatively, when there is a value lower than the reference value REF among the first distance value ds1 to the fourth distance value ds4, the physical stream determiner 1113 can select a physical stream corresponding to the lowest value among the first distance value ds1 to the fourth distance value ds4 as the physical stream corresponding to the 0th virtual stream VSID0.

[0090] For example, assume that [ds1, ds2, ds3, ds4] is [0.52, 0.83, 0.15, 0.41]. Under this assumption, in the case where the reference value REF is "0.2", since the distance value ds3 is lower than the reference value REF, the third physical stream PSID3 corresponding to the lowest third distance value ds3 can be selected as the physical stream corresponding to the 0th virtual stream VSID0. In the case where the reference value REF is "0.1" and there is an unassigned physical stream (e.g., a fifth physical stream (not shown)), the unassigned physical stream can be selected as the physical stream corresponding to the 0th virtual stream VSID0. In the case where the reference value REF is "0.1" and there is no unassigned physical stream (e.g., a fifth physical stream (not shown)), the third physical stream PSID3 corresponding to the lowest third distance value ds3 can be selected as the physical stream corresponding to the 0th virtual stream VSID0.

[0091] The physical stream identifier PSID corresponding to the selected physical stream can be provided to the non-volatile memory interface circuit 1140, and the non-volatile memory interface circuit 1140 can perform an operation associated with the selected physical stream identifier PSID (i.e., an operation corresponding to the request RQ). According to at least one example embodiment of the present inventive concept, the physical stream identifier PSID corresponding to the selected physical stream can be provided to a flash translation layer (FTL) (not shown), and the flash translation layer (FTL) can select or assign a memory block to perform the operation corresponding to the request RQ from among a plurality of memory blocks included in the non-volatile memory device 1200 based on the selected physical stream identifier PSID. For example, in the case where the third physical stream PSID3 is selected, at least one of the third memory blocks BLK3 corresponding to the third physical stream PSID3 can be selected as the memory block to perform the operation corresponding to the request RQ, as described with reference to FIG. 4

[0092] FIG. 11A FIG. 11B are graphs for describing operations of the representative value extractor. FIG. 8 FIG. 9 The configurations of the selection models SM1 to SM4 are omitted in FIG. 11A FIG. 11B for the sake of simplicity of illustration and for the sake of convenience of description.

[0093] Referring to FIG. 8 , FIG. 11A and FIG. 11B ​​​​As described above, the selection engine 1111a can select the virtual stream features VSFa to VSFd based on the first to fourth physical stream information PSDB1 to PSDB4. For example, the selection engine 1111a can select, as the virtual stream feature VSFa corresponding to the first physical stream PSID1, a virtual stream feature VSF11 corresponding to a virtual stream VSID11 among the virtual streams VSID11 to VSID14 mapped to the first physical stream PSID1, based on the first physical stream information PSDB1. Likewise, the selection engine 1111a can select, as the virtual stream features VSFb to VSFd corresponding to the second to fourth physical streams PSID2 to PSID4, virtual stream features VSF23, VSF32, and VSF44 corresponding to virtual streams VSID23, VSID32, and VSID44 among the virtual streams VSID21 to VSID44 mapped to the second to fourth physical streams PSID2 to PSID4, based on the second to fourth physical stream information PSDB2 to PSDB4. The selection engine 1111a can perform the above-described selection operation based on selection models SM1 to SM4 pre-learned through machine learning (refer to FIG. 11B). FIG. 10 ) to perform the above-described selection operation.

[0094] The extraction engine 1111b can extract the 0th to fourth representative values RV0 to RV4 based on the 0th virtual stream feature VSF0 and the virtual stream features VSFa to VSFd selected by the selection engine 1111a. In this case, the 0th to fourth representative values RV0 to RV4 can include the same type of information or can include different types of information.

[0095] For example, as illustrated in FIG. 11C, the extraction engine 1111b can extract the 0th to fourth representative values RV0 to RV4 from the 0th virtual stream feature VSF0 and the selected virtual stream features VSFa to VSFd, respectively, by using a plurality of extraction models EM0 to EM4. In this case, the 0th to fourth representative values RV0 to RV4 can include information TP0, TP11, TP23, TP32, and TP44 about throughput associated with corresponding virtual streams. That is, the 0th to fourth representative values RV0 to RV4 extracted by the extraction engine 1111b can include the same type of information. In this case, a plurality of extraction models EM0 to EM4 included in the extraction engine 1111b can be implemented with a single model pre-learned through machine learning. That is, the extraction engine 1111b can extract the 0th to fourth representative values RV0 to RV4 by using the single model. FIG. 11A On the contrary, as illustrated in FIG. 11D, the extraction engine 1111b can extract the 0th to fourth representative values RV0 to RV4 from the 0th virtual stream feature VSF0 and the selected virtual stream features VSFa to VSFd, respectively, by using a plurality of extraction models EM0 to EM4. In this case, the 0th to fourth representative values RV0 to RV4 can include information TP0, TP11, TP23, TP32, and TP44 about throughput associated with corresponding virtual streams. That is, the 0th to fourth representative values RV0 to RV4 extracted by the extraction engine 1111b can include different types of information. In this case, a plurality of extraction models EM0 to EM4 included in the extraction engine 1111b can be implemented with a plurality of models pre-learned through machine learning. That is, the extraction engine 1111b can extract the 0th to fourth representative values RV0 to RV4 by using the plurality of models.

[0096] FIG. 11B ​As shown, the representative values RV0 to RV4 extracted from the extraction engine 1111b' can include different types of information. For example, the first representative value RV1 corresponding to the first physical stream PSID1 can include information about the throughput TP11 of the virtual stream VSID11 of the first physical stream PSID1, the second representative value RV2 corresponding to the second physical stream PSID2 can include information about the logical block address range LR23 of the virtual stream VSID23 of the second physical stream PSID2, the third representative value RV3 corresponding to the third physical stream PSID3 can include information about the update UP32 of the virtual stream VSID32 of the third physical stream PSID3, and the fourth representative value RV4 corresponding to the fourth physical stream PSID4 can include information about the throughput TP44 of the virtual stream VSID44 of the fourth physical stream PSID4. In this case, the 0th representative value RV0 corresponding to the 0th virtual stream VSID0 can include information about the throughput TP0, the logical block address range LR0, and the update UP0 for comparison with the remaining representative values RV1 to RV4. In this case, the first extraction model EM1 and the fourth extraction model EM4 can be implemented with the same single learning model, and the remaining extraction models EM0, EM2, and EM3 can be implemented with different learning models.

[0097] According to at least one example embodiment of the inventive concept, each of the extraction models EM1 to EM4 configured to extract the first representative value RV1 to the fourth representative value RV4 corresponding to the first physical stream PSID1 to the fourth physical stream PSID4, respectively, can receive information about the corresponding physical stream (e.g., the corresponding one of the physical stream identifiers PSID1 to PSID4) as input. That is, the extraction models EM1 to EM4 can extract the first representative value RV1 to the fourth representative value RV4 based on the corresponding physical stream identifiers PSID1 to PSID4 and the corresponding virtual stream features VSFa to VSFd.

[0098] The above describes an embodiment in which the representative value extractor 1111 selects one virtual stream feature for each physical stream and extracts one piece of information from the selected virtual stream feature, but at least some example embodiments of the inventive concept are not limited thereto. For example, the selection engine 1111a of the representative value extractor 1111 can select at least two or more virtual stream features for each physical stream. Alternatively, the extraction engine 1111b of the representative value extractor 1111 can be configured to calculate a new type of information by combining, reprocessing, or recalculating at least two or more types of information of the selected virtual stream features. The new type of information can be determined through machine learning of the extraction engine 1111b.

[0099] FIG. 12 is used to describe FIG. 8FIG. 1 illustrates an example diagram of a distance function engine according to an example embodiment of the present inventive concept. For convenience of description and for the sake of simplicity of illustration, FIG. 12 FIG. 2 illustrates a configuration of calculating one of a plurality of distance information included in distance information DS according to an example embodiment of the present inventive concept. However, at least some example embodiments of the present inventive concept are not limited thereto. For example, it can be appreciated that the distance function engine can be extended or modified based on FIG. 12 the configuration illustrated in FIG. 2.

[0100] Referring to FIG. 8 and FIG. 12 , the extraction engine 1111b can include a 0thconvolutional layer (ConvNet) CN0 and a first convolutional layer CN1. According to at least one example embodiment of the present inventive concept, the 0thconvolutional layer CN0 can indicate a 0thextraction model EM0, and the first convolutional layer CN1 can indicate a first extraction model EM1. The 0thconvolutional layer CN0 can receive a value "x0" and can extract or output a value "h0". The first convolutional layer CN1 can receive a value "x1" and can extract or output a value "h1". According to at least one example embodiment of the present inventive concept, the value "x0" can indicate a 0thvirtual stream feature VSF0, and the value "h0" can indicate a 0threpresentative value RV0. The value "x1" can indicate a virtual stream feature VSFa corresponding to a first physical stream PSID1, and the value "h1" can indicate a first representative value RV1. According to at least one example embodiment of the present inventive concept, each of "x0", "x1", "h0", and "h1" can be a vector value including corresponding information.

[0101] According to at least one example embodiment of the present inventive concept, in order to symmetry for similarity calculation (i.e., to extract the same type of information), the 0thconvolutional layer CN0 and the first convolutional layer CN1 can be configured to share learned parameters. According to at least one example embodiment of the present inventive concept, the 0thconvolutional layer CN0 and the first convolutional layer CN1 can be implemented based on different learning models or different feature extraction techniques for feature extraction.

[0102] The distance function engine 1112 can include a jointed fully-connected net layer FCN. The jointed fully-connected net layer FCN can receive the value "h0" from the 0thconvolutional layer CN0 and can receive the value "h1" from the first convolutional layer CN1. The jointed fully-connected net layer FCN can output or calculate a value "p" based on the input values "h0" and "h1". According to at least one example embodiment of the present inventive concept, the value "p" can be a first distance value ds1, which can be expressed by a value corresponding to a difference between RV1 and RV0. That is, the value "p" can be calculated by Equation 1 below.

[0103] [Equation 1]

[0104]

[0105] Referring to Equation 1 above, "p" indicates an output of the joint fully connected net layer FCN, "σ" indicates a function that allows the value "p" to have a value between "0" and "1", and "a" indicates a weight used at the joint fully connected net layer FCN. As described above, the value "p" can be calculated by Equation 1 above, and the value "p" can indicate a similarity between the value "h0" and the value "h1". In other words, the value "p" can indicate a similarity between the 0th virtual stream and the first physical stream.

[0106] As described above, the storage device 1000 according to at least one example embodiment of the present inventive concept can map or cluster the virtual streams from the host 110 to the physical streams managed at the storage device 1000. In this case, the number of the virtual streams can exceed the number of the physical streams. The storage device 1000 can calculate distance information (i.e., stream similarity) by extracting a representative value of each of the physical streams based on the virtual stream features of the virtual streams mapped to the physical streams in advance and comparing each of the extracted representative values with the representative value of the virtual stream from the host 110. The storage device 1000 can select the physical stream corresponding to the virtual stream from the host 110 based on the calculated distance information.

[0107] According to at least one example embodiment of the present inventive concept, the above-described operation of extracting a representative value and calculating distance information can be performed by a learning model that is pre-learned via machine learning. As compared with a way of clustering virtual streams based on a scheme that is simply designated in advance, since the above-described way of clustering virtual streams uses various features of the virtual streams, accuracy of the stream similarity can be improved. That is, since virtual streams having similar features are mapped to the same physical stream, performance and lifespan of the storage device can be improved.

[0108] FIG. 13 and FIG. 14 are a flowchart and a block diagram illustrating an operation of a storage device according to at least one example embodiment of the present inventive concept. For the sake of illustration simplicity and for the convenience of description, the flowchart of FIG. 1 the storage device 1000 will be described with reference to FIG. 13 the flowchart, and the stream mapping manager 2110 can correspond to FIG. 1 the stream mapping manager 1110 of FIG. 14 the storage device 1000. That is, the stream mapping manager 2110 of FIG. 1 may be used instead of the stream mapping manager 1110 included in the storage controller 1100 of

[0109] Referring to FIG. 1 , FIG. 13 and FIG. 14 , the storage device 1000 can perform operation S210 to operation S230. Referring to FIG. 6Operations S110 to S130 similar to operations S210 to S230 are described, and thus additional description will be omitted to avoid redundancy.

[0110] In operation S242, the storage 1000 can extract a 0th representative value RV0 corresponding to the 0th virtual stream by using the machine learning model. In operation S243, the storage 1000 can calculate distance information DS based on the representative value pool 2114 and the 0th representative value RV0.

[0111] Thereafter, the storage 1000 can perform operations S250 to S290. Operations S250 to S290 are similar to operations S150 to S190 of FIG. 6 , and thus additional description will be omitted to avoid redundancy.

[0112] In operation S295, the storage 1000 can update the representative value pool 2114. According to at least one example embodiment of the present inventive concept, the representative value pool 2114 can be updated according to a result of the distance information DS calculated in operation S243. FIG. 6 The operation method of the flowchart of FIG. 13 does not include the operation of extracting the representative value of each physical stream (i.e., operation S141). In detail, as shown in FIG. 14 , the stream mapping manager 2110 which can be included in the storage controller 1100 can include a representative value extractor 2111, a distance function engine 2112, a physical stream determiner 2113, a representative value pool 2114, and a representative value pool manager 2115.

[0113] The representative value extractor 2111 can be configured to extract a 0th representative value RV0 of a 0th virtual stream VSID0 corresponding to a request RQ from the host 110. That is, the representative value extractor 2111 can extract the 0th representative value RV0 of the 0th virtual stream VSID0 based on the 0th extraction model EM0 described with reference to FIG. 8 to FIG. 12 .

[0114] Meanwhile, the representative value pool 2114 can store representative values respectively associated with a plurality of physical streams. For example, the representative value of each physical stream can be extracted or calculated through a virtual stream mapping operation or a virtual stream clustering operation associated with a virtual stream. The representative value extracted for each physical stream can be stored in the representative value pool 2114. That is, the representative value pool 2114 can store representative values respectively corresponding to a plurality of physical streams, and thus the representative value of each physical stream can be obtained without a separate extraction operation (i.e., operation S141 of FIG. 7 is omitted).

[0115] The distance function engine 2112 can receive the 0th representative value RV0 from the representative value extractor 2111 and can receive representative values of the plurality of physical streams from the representative value pool 2114. The distance function engine 2112 can calculate distance information DS based on the received representative values, and the physical stream determiner 2113 can select a physical stream based on the calculated distance information DS and can output a physical stream identifier PSID corresponding to the selected physical stream. Operations of the distance function engine 2112 and the physical stream determiner 2113 are described above, and thus additional description will be omitted to avoid redundancy.

[0116] The representative value pool manager 2115 can update the representative value pool 2114 based on the physical stream identifier PSID selected by the physical stream determiner 2113. For example, in the case where a new physical stream (e.g., a 0th physical stream) is selected for the 0th virtual stream VSID0, the representative value pool manager 2115 can store the 0th representative value RV0 in the representative value pool 2114 as a representative value of the 0th physical stream thus selected. In the case where a previously allocated physical stream (e.g., a first physical stream) is selected for the 0th virtual stream VSID0, the representative value pool manager 2115 can compare a representative value of the first physical stream previously stored in the representative value pool 2114 with the 0th representative value RV0, and can select and update one of the representative value previously stored in the representative value pool 2114 and the 0th representative value RV0. According to at least one example embodiment of the present inventive concept, the above-described update operation can be performed based on machine learning.

[0117] As described above, with respect to the plurality of physical streams, the storage apparatus according to at least one example embodiment of the present inventive concept can store and manage representative values extracted through machine learning in a representative value pool. In this case, an operation of extracting a representative value of each physical stream can be omitted in each virtual stream cluster operation. Accordingly, performance and lifespan of the storage apparatus can be improved.

[0118] FIG. 15A and FIG. 15B is a diagram for describing an operation of updating a representative value pool of FIG. 14 . For the sake of simplicity and for ease of description, components unnecessary for describing the operation of updating the representative value pool 2114 are omitted.

[0119] Referring to FIG. 1 , FIG. 14 , FIG. 15A and FIG. 15B , the representative value pool 2114 can be configured to store first to third representative values RV1 to RV3 corresponding to first to third physical streams PSID1 to PSID3, respectively. The representative value pool 2114 can be in a state where a virtual stream has not been assigned to a fourth physical stream PSID4.

[0120] In this case, as FIG. 15AAs shown, storage device 1000 can select a fourth physical flow PSID4 for the 0th virtual flow VSID0 provided from host 110. That is, storage device 1000 can determine that there is no physical flow similar to the 0th virtual flow VSID0, and can assign a new physical flow (e.g., the fourth physical flow PSID4) to the 0th virtual flow VSID0. In this case, representative value pool manager 2115 can update representative value pool 2114 using the 0th representative value RV0 extracted for the 0th virtual flow VSID0 as the representative value of the fourth physical flow PSID4. The updated representative value pool 2114' can store the first representative value RV1, the second representative value RV2, the third representative value RV3, and the 0th representative value RV0, respectively, corresponding to the first physical flow PSID1 to the fourth physical flow PSID4.

[0121] Alternatively, such as FIG. 15B As shown, storage device 1000 can select a first physical flow PSID1 for the 0th virtual flow VSID0 provided from host 110. That is, storage device 1000 can determine that the first physical flow PSID1 is similar to the 0th virtual flow VSID0, and can assign the first physical flow PSID1 to the 0th virtual flow VSID0. In this case, representative value pool manager 2115 can update representative value pool 2114 using the 0th representative value RV0 extracted for the 0th virtual flow VSID0 as the representative value of the first physical flow PSID1. The updated representative value pool 2114' can store the 0th representative value RV0, the second representative value RV2, and the third representative value RV3 corresponding to the first physical flow PSID1 to the third physical flow PSID3, respectively.

[0122] In at least one example embodiment of the present invention, updating the representative value of the first physical flow PSID1 can be selectively performed. For example, in the representative value pool 2114, based on the result of comparing the previously stored first representative value RV1 of the first physical flow PSID1 with the newly assigned 0th representative value RV0 of the 0th virtual flow VSID0, one of the first representative value RV1 and the 0th representative value RV0 can be updated to the representative value of the first physical flow PSID1. Alternatively, a new representative value obtained by combining the first representative value RV1 and the 0th representative value RV0 can be updated to the representative value of the first physical flow PSID1. The above selection or combination operation can be determined based on machine learning.

[0123] FIG. 16 It is shown FIG. 1 A flowchart of the operation of the storage device. According to at least one example embodiment of the present invention, it is possible to perform operations based on... FIG. 16 The flowchart operation method does not require a virtual stream or a virtual stream identifier (VSID). For example, according to FIG. 16The operation method of the flowchart of FIG. 1 can be an operation of assigning a physical flow to a request having an order (i.e., not a random write request, but a sequential write request).

[0124] Referring to FIG. 1 and FIG. 16 In operation S310, the storage device 1000 can receive an input / output request RQ from the host 110. According to at least one example embodiment of the inventive concept, the input / output request RQ can be a write request.

[0125] In operation S320, the storage device 1000 can check the orderliness of the received input / output request RQ. For example, the storage device 1000 can manage a hash table associated with logical block addresses of the request RQ received from the host 110. The hash table can include information accumulating logical block addresses of a plurality of input / output requests received from the host 110. The storage device 1000 can determine whether the logical block address of the received input / output request RQ is sequential (or continuous) with respect to a previous input / output request or stored data based on the hash table.

[0126] When it is determined in operation S330 that the input / output request RQ is not sequential or continuous, the storage device 1000 can perform operation S340. In operation S340, the storage device 1000 can write data in response to the received input / output request RQ to the non-volatile memory device 1200. According to at least one example embodiment of the inventive concept, the data written in operation S340 can be random data (i.e., disordered data).

[0127] When it is determined in operation S330 that the input / output request RQ is sequential or continuous, the storage device 1000 can perform operation S350. In operation S350, the storage device 1000 can store data corresponding to the received input / output request RQ in a buffer. For example, the storage device 1000 can include a separate data buffer (e.g., DRAM or SRAM). The storage device 1000 can store data corresponding to the received input / output request RQ in the data buffer.

[0128] In operation S360, the storage device 1000 can determine whether the size of the data stored in the buffer (i.e., I / O size) is greater than a reference size. When the size of the data stored in the buffer is not greater than the reference size, the storage device 1000 can return to operation S310.

[0129] When the size of the data stored in the buffer is greater than the reference size, in operation S370, the storage device 1000 can assign a physical flow to the data stored in the buffer. According to at least one example embodiment of the inventive concept, the assignment of the physical flow can be based on referring to the hash table. FIG. 1 to FIG. 15BThe described physical flow selection or assignment method performs operation S370. For example, the storage device 1000 can extract or manage representative values of a plurality of physical flows. The storage device 1000 can extract representative values of data stored in the buffer. The storage device 1000 can calculate distance information based on the representative values of data stored in the buffer and the representative values of the physical flows, and can assign one of the plurality of physical flows based on the calculated distance information. That is, operation S370 can be similar to the operations of the above-described embodiments, except that random data and sequential data are classified based on virtual flows or virtual flow identifiers. Therefore, additional descriptions will be omitted to avoid redundancy. According to at least one example embodiment of the inventive concept, as described above, operation S370 can be performed based on machine learning.

[0130] In operation S380, the storage device 1000 can store data (i.e., data stored in the buffer) in the non-volatile memory device 1200 based on the assigned physical flow PSID. For example, the storage device 1000 can store data in a memory block included in the allocated physical flow PSID. Alternatively, the storage device 1000 can store data in a specific memory block and can allow the specific memory block to be included in the assigned physical flow PSID.

[0131] According to at least some example embodiments of the inventive concept, the storage device 1000 can determine whether an input / output request received from the host 110 is associated with random data or sequential data based on burstiness, and can assign physical flows having similar characteristics to sequential data. In this case, even if logical block addresses lose burstiness due to page caching occurring at a kernel on the host 110, since physical flows are assigned to data based on representative values of each physical flow, data having similar characteristics can be managed at the same physical flow. Therefore, performance and lifespan of the storage device can be improved.

[0132] FIG. 17 is a flowchart illustrating operations of the storage device of FIG. 1 Referring to FIG. 1 and FIG. 17 , in operation S410, the storage device 1000 can perform normal operations. For example, the storage device 1000 can operate based on the operation method described with reference to FIG. 1 to FIG. 16 .

[0133] In operation S420, the storage 1000 can determine whether stream re-clustering is required. For example, the storage 1000 can re-cluster the physical streams in response to an explicit request of the host 110. Alternatively, the storage 1000 can re-cluster the physical streams under certain conditions. According to at least one of example embodiments of the present inventive concept, the re-clustering of the physical streams can include re-clustering information required to assign the physical streams, such as re-clustering mapping relationships between the physical streams and the virtual streams, re-clustering representative values of the physical streams, adjusting the number of the physical streams, and adjusting the number of the virtual streams.

[0134] According to at least one of example embodiments of the present inventive concept, the certain conditions can include various conditions, such as a case where data included in two or more physical streams have a similarity, a case where a similarity of data included in a certain physical stream is significantly reduced, a case where a new physical stream that is not assigned is required, and a case where data included in one physical stream is required to be distributed to two physical streams.

[0135] When the stream re-clustering is required, in operation S430, the storage 1000 can perform a stream re-clustering operation. For example, in the stream re-clustering operation, the storage 1000 can perform training of a learning model (e.g., a selection model or an extraction model) based on the collected stream information SDB. Alternatively, in the stream re-clustering operation, the storage 1000 can distribute data included in one physical stream to at least two physical streams. Alternatively, in the stream re-clustering operation, the storage 1000 can integrate data included in at least two physical streams into one physical stream. Alternatively, in the stream re-clustering operation, the storage 1000 can re-cluster representative values of the respective physical streams. The above operations are examples, and at least some of example embodiments of the present inventive concept are not limited thereto. For example, in the stream re-clustering operation, the storage 1000 can re-cluster various information required to assign the physical streams.

[0136] FIG. 18 is a block diagram illustrating a solid state drive (SSD) system of a storage system to which at least one of example embodiments of the present inventive concept is applied. Referring to FIG. 18 , the SSD system 3000 can include a host 3100 and a storage 3200. According to at least one of example embodiments of the present inventive concept, the host 3100 and the storage 3200 can be the host 110 and the storage 1000 described with reference to FIG. 1 to FIG. 17 , or can operate based on the operation method described with reference to FIG. 1 to FIG. 17 .

[0137] The storage device 3200 can exchange a signal SIG with the host 3100 through a signal connector 3201, and can be supplied with power PWR through a power connector 3202. The storage device 3200 includes an SSD controller 3210, a plurality of nonvolatile memories 3221 through 322n, an auxiliary power supply 3230, and a buffer memory 3240.

[0138] The SSD controller 3210 can control the plurality of nonvolatile memories 3221 through 322n in response to a signal SIG received from the host 3100. The plurality of nonvolatile memories 3221 through 322n can operate under the control of the SSD controller 3210. The auxiliary power supply 3230 is connected with the host 3100 through the power connector 3202. The auxiliary power supply 3230 can be charged by the power PWR supplied from the host 3100. When the power PWR is not smoothly supplied from the host 3100, the auxiliary power supply 3230 can supply power to the storage device 3200.

[0139] The buffer memory 3240 can serve as a buffer memory of the storage device 3200. According to at least one example embodiment of the inventive concept, referring to FIG. 1 to FIG. 17 Each of the flow mapping managers 1110 and 2110 described above can perform the above-described operations by using information stored in the buffer memory 3240.

[0140] FIG. 19 is a block diagram illustrating an electronic device to which a storage system according to at least one example embodiment of the inventive concept is applied. Referring to FIG. 19 , the electronic device 4000 can include a main processor 4100, a touch panel 4200, a touch driver integrated circuit (TDI) 4202, a display panel 4300, a display driver integrated circuit (DDI) 4302, a system memory 4400, a storage device 4500, an audio processor 4600, a communication block 4700, and an image processor 4800. According to at least one example embodiment of the inventive concept, the electronic device 4000 can be one of various electronic devices such as a personal computer, a laptop computer, a workstation, a portable communication terminal, a personal digital assistant (PDA), a portable media player (PMP), a digital camera, a smart phone, a tablet computer, and a wearable device.

[0141] The main processor 4100 can control the overall operation of the electronic device 4000. The main processor 4100 can control / manage the operation of the components of the electronic device 4000. To operate the electronic device 4000, the main processor 4100 can process various operations.

[0142] The touch panel 4200 can be configured to sense a touch input from a user under the control of a touch driver integrated circuit 4202. The display panel 4300 can be configured to display image information under the control of a display driver integrated circuit 4302.

[0143] The system memory 4400 can store data for the operation of the electronic device 4000. For example, the system memory 4400 can include volatile memory such as static random access memory (SRAM), dynamic RAM (DRAM), or synchronous DRAM (SDRAM), and / or non-volatile memory such as phase-change RAM (PRAM), magnetoresistive RAM (MRAM), resistive RAM (ReRAM), or ferroelectric RAM (FRAM).

[0144] The storage 4500 can store data regardless of whether power is supplied. For example, the storage 4500 can include at least one of various non-volatile memories such as flash memory, PRAM, MRAM, ReRAM, and FRAM. For example, the storage 4500 can include embedded memory and / or removable memory of the electronic device 4000. According to at least one example embodiment of the inventive concept, the storage 4500 can be a storage device described with reference to FIG. 1 to FIG. 17 or can operate based on an operation method described with reference to FIG. 1 to FIG. 17

[0145] The audio processor 4600 can process an audio signal by using an audio signal processor 4610. The audio signal processor 4610 can receive an audio input through a microphone 4620, or can provide an audio output through a speaker 4630.

[0146] The communication block 4700 can exchange signals with an external device / system through an antenna 4710. A transceiver 4720 and a modulator / demodulator (MODEM) 4730 of the communication block 4700 can process signals exchanged with the external device / system in compliance with at least one of various wireless communication protocols such as long term evolution (LTE), worldwide interoperability for microwave access (WiMax), global system for mobile communications (GSM), code division multiple access (CDMA), Bluetooth, near field communication (NFC), wireless fidelity (Wi-Fi), and radio frequency identification (RFID).

[0147] The image processor 4800 can receive light through a lens 4810. An image device 4820 and an image signal processor (ISP) 4830 included in the image processor 4800 can generate image information about an external object based on the received light.

[0148] FIG. 20 is a block diagram illustrating a data center of a storage system to which at least one example embodiment of the inventive concept is applied.​FIG. 20 The data center 5000 can include a plurality of computing nodes 5100 to 5400. The plurality of computing nodes 5100 to 5400 can communicate with each other via a network NT. According to at least one example embodiment of the inventive concept, the network NT can include at least one of various communication protocols such as Fibre Channel, iSCSI protocol, FCoE, NAS, and NVMe-oF.

[0149] The plurality of computing nodes 5100 to 5400 can include processors 5110, 5210, 5310, and 5410, memories 5120, 5220, 5320, and 5420, storage devices 5130, 5230, 5330, and 5430, and interface circuits 5140, 5240, 5340, and 5440.

[0150] For example, the first computing node 5100 can include a first processor 5110, a first memory 5120, a first storage device 5130, and a first interface circuit 5140. According to at least one example embodiment of the inventive concept, the first processor 5110 can be implemented with a single core or multiple cores. The first memory 5120 can include a memory such as DRAM, SDRAM, SRAM, 3D XPoint memory, MRAM, PRAM, FeRAM, or ReRAM. The first storage device 5130 can be a mass storage medium such as a hard disk drive (HDD) or a solid state drive (SSD). The first interface circuit 5140 can be a network interface controller (NIC) configured to support communication via the network NT.

[0151] According to at least one example embodiment of the inventive concept, the first processor 5110 of the first computing node 5100 can be configured to access the first memory 5120. Alternatively, the first processor 5110 of the first computing node 5100 can be configured to access the memories 5220, 5320, and 5420 of the second to fourth computing nodes 5200, 5300, and 5400 via the network NT. According to at least one example embodiment of the inventive concept, the first processor 5110 of the first computing node 5100 can be configured to access the first storage device 5130. Alternatively, the first processor 5110 of the first computing node 5100 can be configured to access the storage devices 5230, 5330, and 5430 of the second to fourth computing nodes 5200, 5300, and 5400 via the network NT. Operations of the second to fourth computing nodes 5200 to 5400 can be similar to those of the first computing node 5100 described above, and thus additional description will be omitted to avoid redundancy.

[0152] According to at least one example embodiment of the inventive concept, various applications can be executed at the data center 5000. The applications can be configured to execute instructions for data movement or replication between the computing nodes 5100 through 5400, or can be configured to execute instructions for combining, processing, or rendering various information existing on the computing nodes 5100 through 5400. According to at least one example embodiment of the inventive concept, the data center 5000 can be used for high performance computing (HPC) (e.g., finance, oil, material science, weather prediction), enterprise applications (e.g., scale-out databases), big data applications (e.g., NoSQL databases or in-memory replication).

[0153] According to at least one example embodiment of the inventive concept, at least one of the plurality of computing nodes 5100 through 5400 can be an application server. The application server can be configured to execute applications configured to perform various operations at the data center 5000. At least one of the plurality of computing nodes 5100 through 5400 can be a storage server. The storage server can be configured to store data generated or managed at the data center 5000. The plurality of computing nodes 5100 through 5400 included in the data center 5000 can be placed at the same site, or can exist at sites physically separated from each other. According to at least one example embodiment of the inventive concept, the plurality of computing nodes 5100 through 5400 included in the data center 5000 can be implemented by the same memory technology, or can be implemented by different memory technologies. According to at least one example embodiment of the inventive concept, the number of computing nodes 5100 through 5400 included in the data center 5000 is an example, and at least some example embodiments of the inventive concept are not limited thereto. Also, the number of processors, the number of memories, and the number of storage devices in each computing node are examples, and at least some example embodiments of the inventive concept are not limited thereto. According to at least one example embodiment of the inventive concept, the storage devices 5130, 5230, 5330, and 5430 included in the computing nodes 5100, 5200, 5300, and 5400, respectively, can operate based on the operation method described with reference to FIGS. 1 through 4. FIG. 1 to FIG. 17 The described operation method.

[0154] According to at least one example embodiment of the inventive concept, the storage device can extract representative values of the virtual stream and the internally managed physical stream, and can determine a similarity between the virtual stream and the physical stream based on the extracted representative values. The storage device can assign the physical stream to the virtual stream based on the similarity. Accordingly, since the virtual streams having similar characteristics are mapped to the same physical stream, the performance and lifespan of the storage device can be improved.

[0155] Having thus described example embodiments of the inventive concept, it will be apparent that the inventive concept can be varied in many ways. Such variations are not to be regarded as a departure from the intended spirit and scope of example embodiments of the inventive concept, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.

Claims

1. A method of operating a storage device configured to manage a plurality of non-volatile memories with a plurality of physical streams, the method comprising: receiving an input / output request from an external host device; determining a 0th virtual stream identifier corresponding to the received input / output request; extracting, from a 0th virtual stream feature of a 0th virtual stream corresponding to the determined 0th virtual stream identifier, a 0th representative value including 0th information associated with the 0th virtual stream; extracting, from a first virtual stream feature corresponding to at least one of one or more first virtual streams mapped to a first physical stream of the plurality of physical streams, a first representative value including first information associated with the at least one first virtual stream; extracting, from a second virtual stream feature corresponding to at least one of one or more second virtual streams mapped to a second physical stream of the plurality of physical streams, a second representative value including second information associated with the at least one second virtual stream; calculating distance information based on the extracted 0th representative value, first representative value, and second representative value, the distance information including a first similarity between the 0th virtual stream and the first physical stream and a second similarity between the 0th virtual stream and the second physical stream; assigning one of the plurality of physical streams to the 0th virtual stream based on the distance information; and performing an operation corresponding to the input / output request at the assigned physical stream, wherein the extraction of the 0th representative value, the extraction of the first representative value and the second representative value, and the calculation of the distance information are performed by using a learning model pre-learned through machine learning.

2. The method of claim 1, wherein, the learning model includes a 0th extraction model configured to extract the 0th representative value from the 0th virtual stream feature.

3. The method of claim 2, wherein the learning model further includes a first selection model, a second selection model, a first extraction model, and a second extraction model, wherein the extraction of the first representative value and the second representative value includes: selecting, by using the first selection model, the first virtual stream feature corresponding to the at least one of the one or more first virtual streams mapped to the first physical stream; selecting, by using the second selection model, the second virtual stream feature corresponding to the at least one of the one or more second virtual streams mapped to the second physical stream; extracting, by using the first extraction model, the first representative value from the first virtual stream feature; and extracting, by using the second extraction model, the second representative value from the second virtual stream feature.

4. The method of claim 3, wherein, the 0th virtual stream feature includes information on a 0th throughput, a 0th logical block address range, a 0th update, a 0th sequential, and a 0th burstiness of the 0th virtual stream corresponding to the 0th virtual stream identifier, wherein the first virtual stream feature includes information on a first throughput, a first logical block address range, a first update, a first sequential, and a first burstiness of the at least one of the one or more first virtual streams, and wherein the second virtual stream characteristics include information about a second throughput, a second logical block address range, a second update property, a second sequential property, and a second burstiness of the at least one of the one or more second virtual streams.

5. The method of claim 4, further comprising: monitoring, by an input / output monitor, the 0th virtual stream characteristics, the first virtual stream characteristics, and the second virtual stream characteristics.

6. The method of claim 4, wherein the 0th representative value includes a 0th value corresponding to information about the 0th throughput, information about the 0th logical block address range, information about the 0th update property, information about the 0th sequential property, information about the 0th burstiness, or a combination of at least two thereof, wherein the first representative value includes a first value corresponding to information about the first throughput, information about the first logical block address range, information about the first update property, information about the first sequential property, information about the first burstiness, or a combination of at least two thereof, wherein the second representative value includes a second value corresponding to information about the second throughput, information about the second logical block address range, information about the second update property, information about the second sequential property, information about the second burstiness, or a combination of at least two thereof, and wherein the 0th value included in the 0th representative value, the first value included in the first representative value, and the second value included in the second representative value are of a same type.

7. The method of claim 4, wherein, the 0th representative value includes a 0th value corresponding to information about the 0th throughput, information about the 0th logical block address range, information about the 0th update property, information about the 0th sequential property, information about the 0th burstiness, or a combination of at least two thereof, wherein the first representative value includes a first value corresponding to information about the first throughput, information about the first logical block address range, information about the first update property, information about the first sequential property, information about the first burstiness, or a combination of at least two thereof, wherein the second representative value includes a second value corresponding to information about the second throughput, information about the second logical block address range, information about the second update property, information about the second sequential property, information about the second burstiness, or a combination of at least two thereof, wherein the first value included in the first representative value corresponds to a first type, wherein the second value included in the second representative value corresponds to a second type different from the first type, and wherein the 0th value included in the 0th representative value corresponds to both the first type and the second type.

8. The method of claim 1, wherein, assigning one of the plurality of physical streams to the 0th virtual stream based on the distance information includes: determining whether at least one of the first similarity and the second similarity included in the distance information is lower than a reference value; and when at least one of the first similarity and the second similarity included in the distance information is lower than the reference value, assigning a stream among the first physical stream and the second physical stream corresponding to the lowest similarity among the first similarity and the second similarity to the 0th virtual stream, and when both of the first similarity and the second similarity included in the distance information are not lower than the reference value, assigning a third physical stream among the plurality of physical streams different from the first physical stream and the second physical stream to the 0th virtual stream. 9.The method of claim 1, further comprising: updating a stream mapping table configured to store mapping information between the plurality of physical streams and a plurality of virtual streams based on the 0th virtual stream identifier and a physical stream identifier of the assigned physical stream.

10. The method of claim 1, wherein, the input / output request includes information on the 0th virtual stream identifier.

11. The method of claim 1, wherein, the 0th virtual stream identifier is determined based on a logical block address or a data size included in the input / output request.

12. The method of claim 9, wherein, a number of the plurality of virtual streams exceeds a number of the plurality of physical streams.

13. A storage device comprising: a plurality of non-volatile memories; and a storage controller including processing circuitry configured to manage the plurality of non-volatile memories with a plurality of physical streams and assign one of the plurality of physical streams to a 0th virtual stream corresponding to an input / output request from an external host device, wherein the storage controller further includes a memory configured to store stream information including a plurality of virtual stream features respectively corresponding to a plurality of virtual streams mapped to the plurality of physical streams, and wherein the processing circuitry is configured to: extract, from a 0th virtual stream feature corresponding to the 0th virtual stream, a 0th representative value including 0th information associated with the 0th virtual stream based on a machine learning model pre-learned through machine learning, extract a plurality of representative values respectively corresponding to the plurality of physical streams from a plurality of selection virtual stream features among the plurality of virtual stream features included in the stream information, the plurality of representative values including a plurality of information respectively associated with the plurality of selection virtual streams, calculate distance information indicating a similarity between the 0th virtual stream and each of the plurality of physical streams based on the extracted 0th representative value and the extracted plurality of representative values, and assign one of the plurality of physical streams to the 0th virtual stream based on the distance information.

14. The memory device of claim 13, wherein, the processing circuitry is configured to: extract the 0th representative value and the plurality of representative values based on the 0th virtual stream feature and the stream information; calculate the distance information indicating a similarity between each of the plurality of representative values and the 0th representative value; and assign the one of the plurality of physical streams based on the distance information.

15. The storage device of claim 14, wherein the processing circuitry is further configured to: select the plurality of selected virtual flow features from among the plurality of virtual flow features included in the flow information respectively corresponding to the plurality of physical flows by using a plurality of selection models; and extract the plurality of representative values respectively corresponding to the plurality of physical flows from the plurality of selected virtual flow features by using a plurality of extraction models, and extract the 0th representative value from the 0th virtual flow feature by using a 0th extraction model, and wherein the plurality of selection models and the plurality of extraction models are included in the machine learning model.

16. The memory device of claim 15, wherein, the 0th extraction model is a 0th convolutional layer configured to extract the 0th representative value from the 0th virtual flow feature, wherein a first extraction model of the plurality of extraction models is a first convolutional layer configured to extract a first representative value of the plurality of representative values from a first virtual flow feature of the plurality of selected virtual flow features corresponding to a first physical flow of the plurality of physical flows, wherein the distance function engine includes a joint fully connected net layer configured to calculate a first similarity between the 0th virtual flow and the first physical flow based on the 0th representative value and the first representative value, and wherein the 0th convolutional layer and the first convolutional layer are further configured to share a plurality of learning parameters.

17. The memory device of claim 13, wherein, the processing circuitry is further configured to monitor the 0th virtual flow feature and the plurality of virtual flow features.

18. The memory device of claim 17, wherein, the 0th virtual flow feature includes information on a throughput, a logical block address range, an update, a sequential, and a burstiness of the 0th virtual flow, and wherein the plurality of virtual flow features include information on a throughput, a logical block address range, an update, a sequential, and a burstiness of each of a plurality of virtual flows assigned to each of the plurality of physical flows.

19. An operating method of a storage device configured to manage a plurality of non-volatile memories with a plurality of physical flows, the method comprising: receiving an input / output request from an external host device; determining a 0th virtual flow identifier corresponding to the received input / output request; extracting a 0th representative value including 0th information associated with the 0th virtual flow from a 0th virtual flow feature of a 0th virtual flow corresponding to the determined 0th virtual flow identifier; obtaining a first representative value and a second representative value respectively corresponding to a first physical flow and a second physical flow of the plurality of physical flows from a representative value pool; calculating distance information including a first similarity between the 0th virtual flow and the first physical flow and a second similarity between the 0th virtual flow and the second physical flow based on the obtained first representative value and second representative value; assigning one of the plurality of physical flows to the 0th virtual flow based on the distance information; performing an operation corresponding to the input / output request at the assigned physical flow; and updating the representative value pool based on the 0th representative value and a physical flow identifier corresponding to the assigned physical flow, wherein the extraction of the 0th representative value and the calculation of the distance information are performed by using a learning model that is pre-learned through machine learning, wherein the method further comprises, before performing the method, extracting, from a first virtual stream feature corresponding to at least one of one or more first virtual streams mapped to the first physical stream, the first representative value including first information associated with the at least one first virtual stream, extracting, from a second virtual stream feature corresponding to at least one of one or more second virtual streams mapped to the second physical stream, the second representative value including second information associated with the at least one second virtual stream, and storing the first representative value and the second representative value in the representative pool.

20. The method of claim 19, wherein, The learning model includes a 0th extraction model configured to extract the 0th representative value from the 0th virtual stream feature. 21.An operating method of a storage device configured to manage a plurality of non-volatile memories with a plurality of physical streams, the method comprising: receiving an input / output request from an external host device; determining burstiness of the input / output request based on a logical block address of the input / output request; when the input / output request has burstiness, storing data corresponding to the input / output request in a data buffer; when a size of the data stored in the data buffer is a reference value or more, extracting a 0th representative value including 0th information associated with the data from a 0th virtual stream feature corresponding to the data stored in the data buffer; extracting a first representative value including first information associated with at least one of one or more first virtual streams mapped to a first physical stream among the plurality of physical streams from a first virtual stream feature corresponding to the at least one first virtual stream; extracting a second representative value including second information associated with at least one of one or more second virtual streams mapped to a second physical stream among the plurality of physical streams from a second virtual stream feature corresponding to the at least one second virtual stream; calculating distance information based on the extracted 0th representative value, first representative value, and second representative value, the distance information including a first similarity between the data stored in the data buffer and the first physical stream and a second similarity between the data stored in the data buffer and the second physical stream; assigning one of the plurality of physical streams to the data stored in the data buffer based on the distance information; and storing the data stored in the data buffer in the assigned physical stream, wherein the extraction of the 0th representative value, the extraction of the first representative value and the second representative value, and the calculation of the distance information are performed by using a learning model that is pre-learned through machine learning. ​

Citation Information

Patent Citations

  • System architecture construction method

    CN105512403A

  • Source code flow analysis using information retrieval

    EP2801906A1