Storage device supporting real-time processing and method of operating same

By using the real-time manager to control the storage controller to independently manage physical functions in a multi-host storage system, the problem of real-time command processing delay is solved, and the effect of efficiently processing real-time commands within a predetermined time is achieved.

CN119440397APending Publication Date: 2025-02-14SAMSUNG ELECTRONICS CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411067537.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-08-07
Filing Date
2024-08-06
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

In a multi-host storage system, real-time commands cannot be processed in time on the storage medium, resulting in processing delays.

Method used

A storage system is designed, including a nonvolatile memory device and a storage controller, which independently controls physical functions under the control of multiple hosts through a real-time manager to ensure that real-time commands are processed within a predetermined time.

Benefits of technology

It realizes efficiently processing of real-time commands received from the host within a predetermined time, and improves the response speed and processing efficiency of the storage system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119440397A_ABST
    Figure CN119440397A_ABST
Patent Text Reader

Abstract

A storage device includes a non-volatile memory device and a storage controller configured to control the non-volatile memory device under control of a plurality of hosts. The apparatus includes a storage controller including a plurality of physical functions respectively corresponding to a plurality of hosts, and a real-time manager configured to control the plurality of physical functions based on real-time information of a real-time command when the real-time command is issued from at least one of the plurality of hosts.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the priority of Korean Patent Application No. 10-2023-0103097 filed on August 7, 2023 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety. Technical Field

[0003] Example embodiments of the present disclosure relate to storage systems. Background Art

[0004] Semiconductor memory devices are divided into volatile memory devices and non-volatile memory devices. In volatile memory devices, when the power is interrupted, the stored data will be lost. Volatile memory devices such as, for example, static random access memory (SRAM) or dynamic random access memory (DRAM) and non-volatile memory devices, even if the power is interrupted, the stored data will be retained. Non-volatile memory devices such as, for example, flash memory devices, phase-change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM) or ferroelectric RAM (FRAM).

[0005] Recently, research on multi-host storage systems has been actively conducted. A multi-host storage system may refer to a system in which a single storage medium supports multiple hosts or multiple tenants. In this case, multiple hosts access a single storage medium, resulting in a problem that commands requested to be processed urgently or in real time on a specific host are not processed in time on the storage medium. Summary of the invention

[0006] Example embodiments of the present disclosure provide a storage system that can efficiently process a real-time command received from a host within a predetermined time.

[0007] According to an example embodiment, a storage device includes a nonvolatile memory device and a storage controller configured to control the nonvolatile memory device under the control of a plurality of hosts. The storage controller includes a plurality of physical functions corresponding to the plurality of hosts, respectively, and a real-time manager configured to control the plurality of physical functions based on real-time information of a real-time command when a real-time command is issued from at least one of the plurality of hosts.

[0008] According to an example embodiment, a method of operating a storage device including multiple physical functions corresponding to multiple hosts respectively includes: obtaining real-time information about a real-time command issued by at least one of the multiple hosts; determining the performance of a physical function corresponding to the real-time command among the multiple physical functions based on the real-time information; and fetching the real-time command and processing the fetched real-time command.

[0009] According to an example embodiment, a storage controller that controls a nonvolatile memory device includes: a plurality of physical functions that respectively correspond to a plurality of hosts, and the plurality of physical functions independently control the nonvolatile memory device based on a request of each of the plurality of hosts; and a real-time manager that is configured to perform control operations on the plurality of physical functions based on real-time information of the real-time command when the real-time command is issued from at least one of the plurality of hosts. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The above and other features of the present disclosure will become more apparent by describing in detail embodiments of the present disclosure with reference to the attached drawings.

[0011] Figure 1 is a block diagram illustrating a storage system according to example embodiments.

[0012] Figure 2 is a block diagram illustrating an example of a memory controller according to example embodiments.

[0013] Figure 3A and Figure 3B is a diagram illustrating physical functions of a memory controller according to an example embodiment.

[0014] Figure 4 It is shown Figure 1 A timing diagram of the operation of the memory device of FIG. 3 is provided.

[0015] Figure 5 is a block diagram illustrating a memory controller according to example embodiments.

[0016] Fig. 6A and Figure 6B is a diagram illustrating an example of a real-time information field according to an example embodiment.

[0017] Figure 7 is a flowchart illustrating an example of the operation of a memory controller according to an example embodiment.

[0018] Figure 8 is a diagram illustrating an example of a real-time setting table according to an exemplary embodiment.

[0019] Fig. 9 is a diagram illustrating an example of an operation of a memory controller according to example embodiments.

[0020] Fig.10 is a flowchart illustrating an example of the operation of a memory controller according to an example embodiment.

[0021] Fig.11 is a block diagram illustrating a memory controller according to example embodiments.

[0022] Fig.12 is a diagram illustrating an example of a virtual time stamp (VTS) table according to an example embodiment.

[0023] Fig.13 is a diagram illustrating an example of an operation of a memory controller according to example embodiments.

[0024] Fig.14A is a diagram illustrating an example of an operation of a memory controller according to example embodiments.

[0025] Fig. 14B is a diagram illustrating an example of an operation of a memory controller according to example embodiments.

[0026] Fig.15 is a flowchart illustrating an example of the operation of a memory controller according to an example embodiment.

[0027] Fig.16 is a block diagram illustrating a memory controller according to example embodiments.

[0028] Fig.17 is a diagram illustrating an example of an operation of a memory controller according to example embodiments.

[0029] Fig.18 is a flowchart illustrating an example of the operation of a memory controller according to an example embodiment.

[0030] Fig.19 is a diagram illustrating an example of an operation of a memory controller according to example embodiments.

[0031] Fig. 20 is a flowchart illustrating an example of the operation of a memory controller according to an example embodiment.

[0032] Fig.21 is a block diagram illustrating a memory controller according to example embodiments.

[0033] Fig. 22 is a flowchart illustrating an example of the operation of a memory controller according to an example embodiment. DETAILED DESCRIPTION

[0034] Embodiments of the present disclosure will be described more fully below with reference to the accompanying drawings. In all drawings, the same reference numerals may refer to the same elements.

[0035] It should be understood that the terms "first", "second", "third", etc. are used herein to distinguish one element from another element, and these elements are not limited by these terms. Therefore, the "first" element in one exemplary embodiment can be described as the "second" element in another exemplary embodiment.

[0036] It should be understood that descriptions of features or aspects within each exemplary embodiment should typically be considered as available for other similar features or aspects in other exemplary embodiments, unless the context clearly dictates otherwise.

[0037] As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.

[0038] [Storage system that supports real-time processing of commands]

[0039] Figure 1 is a block diagram illustrating a storage system 10 according to an example embodiment.

[0040] The storage system 10 according to the example embodiment may include a plurality of hosts 11 to 1n and a storage device 100, where n is a positive integer. The storage device 100 may be configured to support a plurality of hosts or a plurality of tenants. At least one of the plurality of hosts 11 to 1n may send a real-time command to the storage device 100. The storage device 100 may receive the real-time command and may process the received real-time command within a predetermined time.

[0041] In this case, the storage device 100 according to the example embodiment can obtain real-time information corresponding to the received real-time command, and can perform function control operations based on the real-time information, such as, for example, selection of a physical function, determination of resource allocation, or determination of acquisition timing. Therefore, the storage device 100 according to the example embodiment can effectively process the real-time command received from the host within a predetermined time.

[0042] The plurality of hosts 11 to 1n may correspond to the same storage device 100. For example, the storage system 10 may be a multi-host storage system.

[0043] According to an example embodiment, the storage system 10 may be a storage system applied to an automotive system. According to an example embodiment, the storage system 10 may be a storage system applied to various information processing devices, such as, for example, a server, a personal computer (PC), a laptop computer, a workstation, a smart phone, a tablet PC, etc.

[0044] Each of the plurality of hosts 11 to 1 n may be configured to access the storage device 100 .

[0045] According to an example embodiment, the plurality of hosts 11 to 1n may be computing nodes configured to operate independently of each other, respectively. For example, when the storage system 10 is implemented as an automobile system, each of the plurality of hosts 11 to 1n may be an electronic control unit (ECU) that controls at least one of the following functions, such as, for example, engine management, airbags, headlights, radar cruise control, electric power steering, advanced driver assistance system (ADAS), active suspension, braking, brake lights, cameras, instrument panel, etc.

[0046] According to an example embodiment, the plurality of hosts 11 to 1n may be single-core or multi-core processors included in different computing nodes (or computing systems). Alternatively, at least a portion of the plurality of hosts 11 to 1n may be different processors included in the same computing node (or computing system). Alternatively, the plurality of hosts 11 to 1n may be processors configured to process different applications.

[0047] The storage device 100 may operate under the control of each of the plurality of hosts 11 to 1n. For example, the storage device 100 may be a single storage device or a storage device configured to support a plurality of hosts or a plurality of tenants.

[0048] According to an example embodiment, a plurality of hosts 11 to 1n and a storage device 100 may communicate with each other based on a fast peripheral component interconnect (PCI-express) interface or a fast nonvolatile memory (NVMe) interface based on PCI-express. However, this is merely an example, and the example embodiment is not limited thereto. For example, according to an example embodiment, a plurality of hosts 11 to 1n and a storage device 100 may communicate with each other based on an Ethernet interface. For example, according to an example embodiment, one of the plurality of hosts 11 to 1n may communicate with the storage device 100 based on a PCI-express interface, and another of the plurality of hosts 11 to 1n may communicate with the storage device 100 based on an Ethernet interface.

[0049] The storage device 100 may include a storage controller 110 and a nonvolatile memory device 120. The storage controller 110 may store data in the nonvolatile memory device 120 under the control of each of the plurality of hosts 11 to 1n. Alternatively, the storage controller 110 may provide the data stored in the nonvolatile memory device 120 to the plurality of hosts 11 to 1n under the control of each of the plurality of hosts 11 to 1n.

[0050] At least one of the plurality of hosts 11 to 1n may send a real-time command to the storage device 100. The real-time command may refer to a command requested to be processed urgently or a command requested to be processed in real time. The storage device 100 may receive the real-time command and then process the received real-time command within a real-time limit. According to example embodiments, the real-time limit may be defined in various ways.

[0051] According to an example embodiment, the real-time limit may be defined as a time from a point in time when the host writes a real-time command in a submission queue to a point in time when the storage device 100 writes a response to the real-time command in a completion queue.

[0052] According to an example embodiment, the real-time limit may be defined as a time from a point in time when the host writes a real-time command in a submission queue to a point in time when the host takes the real-time command written in a completion queue.

[0053] According to example embodiments, the real-time limit may be defined as a time from a point in time when the storage device 100 obtains a real-time command from a submission queue to a point in time when the storage device 100 writes a response to the real-time command in a completion queue.

[0054] The storage device 100 may acquire and process the real-time command until a real-time limit corresponding to the real-time command has passed, and may write a response to the real-time command in the completion queue.

[0055] The storage controller 110 according to example embodiments may include a real-time manager 111 that efficiently processes a real-time command transmitted from a host within real-time constraints.

[0056] The real-time manager 111 may check whether the real-time command has been issued. According to example embodiments, the real-time manager 111 may check whether the real-time command has been issued in various ways.

[0057] According to an example embodiment, the real-time manager 111 may periodically check whether a real-time command has been issued. According to an example embodiment, the host may send information about the issuance of the real-time command to the storage device 100, and the real-time manager 111 may check whether the real-time command has been issued based on the information. The host may send additional information to the storage device 100, such as, for example, a real-time limit and a processing time.

[0058] When a real-time command is issued, the real-time manager 111 may obtain real-time information corresponding to the real-time command.

[0059] According to an example embodiment, the real-time manager 111 may selectively access a submission queue corresponding to a real-time command. The submission queue may be defined as a storage space in which the host stores real-time commands and / or real-time information to be sent to the storage device 100. The real-time manager 111 may obtain real-time information corresponding to the real-time command from the submission queue.

[0060] According to an example embodiment, the real-time manager 111 may selectively access a physical function corresponding to a real-time command and a submission queue corresponding to the physical function.

[0061] The real-time manager 111 may control the storage device 100 or each physical function in various ways according to example embodiments based on the obtained real-time information.

[0062] According to an example embodiment, the real-time manager 111 may acquire a real-time command based on the acquired real-time information. Then, the real-time manager 111 may control a series of operations, such as, for example, a read operation or a write operation, to effectively process data of a real-time command issued by the host within real-time constraints.

[0063] According to an example embodiment, the real-time manager 111 can perform control operations on the storage device 100 or each physical function based on the obtained real-time information, such as, for example, selection of a physical function, determination of resource allocation, or determination of acquisition timing. Therefore, real-time commands can be effectively processed within real-time constraints.

[0064] As described above, the storage device 100 according to example embodiments may control the operation and / or performance of the storage device 100 based on real-time information. Therefore, the storage device 100 may effectively process a real-time command received from a host within real-time constraints.

[0065] Figure 2 is a block diagram illustrating an example of a storage controller according to an example embodiment. For example, Figure 2 The storage controller 110 may be Figure 1 A storage controller 110 is provided.

[0066] refer to Figure 2 The storage controller 110 may include a real-time manager 111 , a processor 112 , a static random access memory (SRAM) 113 , a host interface circuit 114 , and a non-volatile memory interface 115 .

[0067] The real-time manager 111 may identify whether a real-time command is issued. When a real-time command is issued, the real-time manager 111 may obtain real-time information corresponding to the real-time command.

[0068] According to an example embodiment, the real-time manager 111 may obtain real-time information from the host. For example, a real-time command may include a real-time information field, and the host may write real-time information in the real-time information field, such as a real-time limit or a submission queue (SQ) time. The SQ time may refer to a point in time when a real-time command is written into a submission queue. The real-time manager 111 may obtain the real-time information through the real-time information field of the real-time command received from the host. However, this is merely an example, and the host may send additional information to the storage device 100 separately from the real-time command, such as the issuance or processing time of the real-time command.

[0069] According to an example embodiment, the real-time manager 111 may store data from the storage device 100 (see Figure 1 ) to obtain real-time information. For example, each of the plurality of hosts 11 to 1n may have unique real-time information, and the real-time information corresponding to each host may be managed in a table form by the storage device 100. The real-time information managed in a table form by the storage device 100 may be referred to as a real-time setting table. The real-time manager 111 may obtain the real-time information through the real-time setting table managed by the storage device 100.

[0070] After obtaining the real-time information, the real-time manager 111 may control the performance of the storage device 100 or each physical function to efficiently process the real-time command within the real-time limitation.

[0071] According to an example embodiment, the real-time manager 111 may select one of the physical functions corresponding to each host based on the real-time information. For example, the storage device 100 may include a plurality of physical functions, and each of the plurality of hosts may correspond to at least one physical function. In this case, the real-time manager 111 may preferentially select a physical function corresponding to the host that issued the real-time command from among the plurality of physical functions.

[0072] According to an example embodiment, the real-time manager 111 may determine resource allocation of the storage device 100 based on the real-time information. For example, the real-time manager 111 may allocate a relatively large number of resources to the physical functions corresponding to the host that issued the real-time command. For example, the real-time manager 111 may further adjust the resources respectively allocated to the physical functions by additionally referring to the state of the completion queue of the host that has issued the real-time command.

[0073] According to an example embodiment, the real-time manager 111 may determine the acquisition timing of the real-time command based on the real-time information. For example, the shorter the real-time limit is, the more the real-time manager 111 may control each physical function to quickly acquire the real-time command.

[0074] The processor 112 may control the overall operation of the memory controller 110. For example, the processor 112 may execute various applications (eg, a flash translation layer (FTL)) running on the memory controller 110.

[0075] The SRAM 113 can be used as, for example, a buffer memory, a working memory, or a cache memory of the memory controller 110 .

[0076] According to an example embodiment, the real-time manager 111 may be implemented in the form of software, hardware, or a combination thereof. For example, when the real-time manager 111 is implemented in the form of software, information associated with the real-time manager 111 may be stored in the SRAM 113, and the real-time manager 111 stored in the SRAM 113 may be executed by the processor 112.

[0077] According to an example embodiment, the real-time setting information may be stored in the non-volatile storage device 120 (see Figure 1 ). For example, when the storage system 10 is powered on, the real-time setting information stored in the nonvolatile memory device 120 may be loaded into the SRAM 113, and the real-time setting information may be referred to by the real-time manager 111.

[0078] The host interface circuit 114 may communicate with the plurality of hosts 11 to 1n through a predetermined interface. For example, the predetermined interface may include at least one of various host interfaces, such as a peripheral component interconnect (PCI-express) interface, a nonvolatile memory express (NVMe) interface, a serial ATA (SATA) interface, a serial attached SCSI (SAS) interface, or a universal flash storage (UFS) interface.

[0079] Hereinafter, for the convenience of description, an example of implementing the host interface circuit 114 based on the NVMe interface will be provided. For example, the host interface circuit 114 can communicate with each of the plurality of hosts 11 to 1n through a physical layer based on a PCI-express interface, and can process information received from the plurality of hosts 11 to 1n through a physical function.

[0080] According to an example embodiment, the physical function may be included in the host interface circuit 114, and a plurality of physical functions may correspond to a plurality of hosts 11 to 1n (see Figure 1According to an example embodiment, when the real-time manager 111 is implemented in the form of hardware, the real-time manager 111 may be implemented to be included in the host interface circuit 114 .

[0081] The nonvolatile memory interface circuit 115 may provide communication between the storage controller 110 and the nonvolatile memory device 120. For example, when the nonvolatile memory device 120 is a NAND flash memory device, the nonvolatile memory interface circuit 115 may be a NAND interface. In this case, the nonvolatile memory interface circuit 115 may support multiplexing / multi-channels of a plurality of NAND flash memories included in the nonvolatile memory device 120.

[0082] As described above, the storage controller 110 according to example embodiments may include the real-time manager 111, and the real-time manager 111 may manage the execution of the storage device or each physical function based on real-time information. Therefore, the real-time command received from the host may be effectively processed within the real-time limit.

[0083] Figure 3A and Figure 3B is a diagram illustrating the physical functions of a storage controller according to an example embodiment. For example, Figure 3A and Figure 3B The storage controllers 110A and 110B may be Figure 1 and Figure 2 The storage controller 110. In the following, for the convenience of description, components not used to describe physical functions (hereinafter referred to as "PF") will be omitted.

[0084] The physical function PF may refer to an NVMe controller corresponding to each of the plurality of hosts 11 to 1n. According to an example embodiment, the physical function PF may be implemented in the form of software, hardware, or a combination thereof. According to an example embodiment, the physical function PF may refer to a PCI-express function supporting a single root I / O virtualization (SR-IOV) function, which is configured to allow the physical function PF to support one or more subordinate virtual functions.

[0085] The physical function PF may correspond to at least one of the plurality of hosts 11 to 1n, and may be understood as being configured to process a command of a submission queue managed by a corresponding host among the plurality of hosts 11 to 1n. For ease of description, an example will be provided in which the storage controllers 110A and 110B communicate with the three hosts 11, 12, and 13, but example embodiments are not limited thereto.

[0086] refer to Figure 3A, each of the first to third hosts 11 to 13 may issue commands CMD1 to CMD3. For example, the first host 11 may issue a first command CMD1, and the issued first command CMD1 may be written into the first submission queue SQ1. The second host 12 may issue a second command CMD2, and the issued second command CMD2 may be written into the second submission queue SQ2. The third host 13 may issue a third command CMD3, and the issued third command CMD3 may be written into the third submission queue SQ3.

[0087] For ease of description, Figure 3A , each of the first to third hosts 11 to 13 is shown as managing a single submission queue, but example embodiments are not limited thereto. For example, according to example embodiments, each of the first to third hosts 11 to 13 may manage multiple submission queues. For example, according to example embodiments, each of the first to third hosts 11 to 13 may also manage a completion queue configured to receive responses to multiple submission queues. For example, according to example embodiments, each of the first to third hosts 11 to 13 may issue an administration command, and may also manage an administration queue and an administration completion queue configured to receive responses to the administration command.

[0088] The storage controller 110A may communicate with the first to third hosts 11 to 13. For example, according to an example embodiment, the storage controller 110A may communicate with the first to third hosts 11 to 13 through an interface of a physical layer based on a PCI-express interface (e.g., NVMe over PCI-express). For example, according to an example embodiment, the storage controller 110A may communicate with the first to third hosts 11 to 13 through a network-based interface (e.g., NVMe over Fiber (NVMe-oF)), such as Fiber Channel or Remote Direct Random Access Memory (RDMA).

[0089] The storage controller 110A may communicate with the first to third hosts 11 to 13 through various types of physical layers. For example, the storage controller 110A includes first to third physical functions PF1 to PF3. The first to third physical functions PF1 to PF3 may correspond to the first to third hosts 11 to 13, respectively. The first to third physical functions PF1 to PF3 may be included in the host interface circuit 114 or may be implemented on the host interface circuit 114.

[0090] For example, the first physical function PF1 may communicate with the first host 11, and may be configured to process a first command CMD1 from the first host 11. The second physical function PF2 may communicate with the second host 12, and may be configured to process a second command CMD2 from the second host 12. The third physical function PF3 may communicate with the third host 13, and may be configured to process a third command CMD3 from the third host 13. Therefore, the first to third physical functions PF1 to PF3 may be referred to as first to third NVMe controllers NVMe Controller1 to NVMe Controller3, respectively.

[0091] The first to third physical functions PF1 to PF3 may perform operations of the nonvolatile memory device 120 based on commands from the corresponding host. For example, according to an example embodiment, the nonvolatile memory device 120 may be managed as a logically divided namespace NS. In this case, each of the first to third physical functions PF1 to PF3 may perform operations corresponding to the commands on the corresponding namespace. For example, according to an example embodiment, the nonvolatile memory device 120 may be managed as a physically or logically divided nonvolatile memory (NVM) set. In this case, each of the first to third physical functions PF1 to PF3 may perform operations corresponding to the commands on the corresponding nonvolatile memory set.

[0092] The real-time manager 111 may control the operation or execution of the first to third physical functions PF1 to PF3 based on the real-time information corresponding to the real-time command. For example, according to an example embodiment, the real-time manager 111 may schedule the physical functions of the first to third physical functions PF1 to PF3 to process the command based on the real-time information. For example, according to an example embodiment, the real-time manager 111 may determine that the resources of the storage device 100 will be respectively allocated to the first to third physical functions PF1 to PF3 based on the real-time information. For example, according to an example embodiment, the real-time manager 111 may determine the timing at which the command of each of the first to third physical functions PF1 to PF3 will be acquired based on the real-time information.

[0093] exist Figure 3A In FIG. 1 , a single host is shown as communicating with a single physical function. However, this is merely an example, and example embodiments are not limited thereto. According to example embodiments, a single host may communicate with multiple physical functions. For example, Figure 3B As shown, the storage controller 110B may include zeroth to fourth physical functions PF0 to PF3. The first host 11 may communicate with the zeroth physical function PF0 and the first physical function PF1.

[0094] exist Figure 3A and Figure 3BIn the example, a single physical function is shown as corresponding to a single submission queue. However, this is merely an example, and example embodiments are not limited thereto. According to example embodiments, a single physical function may correspond to multiple submission queues. In this case, a single physical function may correspond to multiple submission queues belonging to the same host. According to example embodiments, a single physical function may correspond to multiple submission queues belonging to different hosts.

[0095] As described above, the storage controllers 110A and 110B according to the example embodiments may include a plurality of physical functions PF and the real-time manager 111, and based on the real-time information, the real-time manager 111 may schedule commands of the plurality of physical functions PF, determine resources to be allocated to the plurality of physical functions PF, or determine acquisition timings of commands of the plurality of physical functions PF. Therefore, the real-time commands received from the host may be effectively processed within the real-time constraints.

[0096] Figure 4 It is shown Figure 1 A timing diagram of the operation of the memory device of FIG. 3 is provided.

[0097] In the following, for the convenience of description, a plurality of hosts 11 to 1n (see Figure 1 ) is an example of issuing a real-time command. The real-time limit RT_Limit can be defined as the time from the time point when the host writes the real-time command in the submission queue SQ to the time point when the host obtains the response to the real-time command from the completion queue CQ.

[0098] During time T1, the host may issue a real-time command that utilizes real-time processing. In this case, the host may write the real-time command in the submission queue SQ. Then, the storage controller 110 (see Figure 1 ) can check whether a real-time command has been issued, and can obtain real-time information corresponding to the real-time command.

[0099] According to an example embodiment, the host may send information that a real-time command has been issued to the storage controller 110. For example, the host may send an interrupt signal to the storage controller 110 through an additional channel different from the channel through which the command is sent. In this case, the storage controller 110 may check whether a real-time command has been issued through the interrupt signal, and may first obtain the real-time command from the submission queue. For example, the storage controller 110 may preferentially extract the real-time command instead of sequentially extracting commands in the submission queue.

[0100] According to example embodiments, the real-time command may include a real-time information field, and the host may write real-time information such as a real-time limit RT_Limit in the real-time information field. The storage controller 110 may obtain the real-time information through the real-time information field of the real-time command.

[0101] According to an example embodiment, the plurality of hosts 11 to 11n may have different real-time limits RT_Limit, and the real-time limit RT_Limit of each of the plurality of hosts 11 to 11n may be managed in the form of a table by the storage device 100. In this case, real-time information other than the real-time limit RT_Limit may also be managed in the form of a table by the storage device 100. When the host issues a real-time command, the storage controller 110 may obtain the real-time information about the real-time command from the storage device 100.

[0102] During time T2, the storage controller 110 may select a single physical function from the plurality of physical functions based on the real-time information. The storage controller 110 may obtain a real-time command corresponding to the selected physical function from the host. The storage controller 110 may determine the acquisition timing of the real-time command based on the real-time information.

[0103] According to example embodiments, the memory controller 110 may preferentially select a physical function corresponding to a real-time command from among a plurality of physical functions so that the real-time command may be processed before a general command.

[0104] According to an example embodiment, when each of a plurality of hosts issues a real-time command, the storage controller 110 may preferentially select a physical function corresponding to a real-time command having a shortest real-time limit RT_Limit from among a plurality of physical functions.

[0105] According to an example embodiment, the shorter the real-time limit RT_Limit is, the faster the storage controller 110 can obtain real-time commands from the submission queue SQ.

[0106] According to an example embodiment, the longer the time since the real-time command was written to the submission queue SQ, the faster the storage controller 110 fetches the real-time command from the submission queue SQ.

[0107] During time T3, the storage controller 110 may process the acquired real-time command. In this case, the storage controller 110 may determine resource allocation of multiple physical functions based on the real-time information and / or the status of the completion queue CQ.

[0108] According to example embodiments, tokens may be used to manage allocation of resources of the storage device 100. For example, the number of tokens may correspond to the amount of resources of the storage device 100. The storage controller 110 may allocate a relatively small number of tokens to a physical function to process a general command, and may allocate a relatively large number of tokens to a physical function to process a real-time command.

[0109] According to an example embodiment, when multiple physical functions process real-time commands, the storage controller 110 may allocate a relatively large number of tokens to the physical functions to process real-time commands having a relatively short real-time limit RT_Limit, and may allocate a relatively small number of tokens to the physical functions to process real-time commands having a relatively long real-time limit RT_Limit.

[0110] According to an example embodiment, the storage controller 110 may adjust the number of tokens by referring to the responses accumulated in the completion queue CQ. The responses accumulated in the completion queue CQ may be responses that have not yet been confirmed or referenced by the host. The storage controller 110 may allocate a relatively small number of tokens to a physical function corresponding to a host that has accumulated a large number of responses in the completion queue CQ, and may distribute a relatively large number of tokens to a physical function corresponding to a host that has accumulated a small number of responses in the completion queue CQ.

[0111] During time T4, the storage controller 110 may write a response to the real-time command in the completion queue CQ of the corresponding host.

[0112] According to example embodiments, after the response is written into the completion queue CQ, the memory controller 110 may provide information about the response to the host. For example, the memory controller 110 may provide information that the response has been written into the completion queue CQ to the host using an interrupt signal or the like.

[0113] Alternatively, according to an example embodiment, the storage controller 110 may allow the host to take the response to the real-time command first by placing the response in the front of the completion queue CQ.

[0114] Alternatively, according to an example embodiment, the storage controller 110 may monitor whether the host has obtained a response. When the host has not obtained a response, the storage controller 110 may periodically provide the host with information that the response has been written into the completion queue CQ using an interrupt signal or the like.

[0115] As described above, the storage controller according to example embodiments may control the execution of the storage device based on the real-time information and / or the state of the completion queue CQ. Therefore, the real-time command received from the host may be effectively processed within the real-time limit.

[0116] [Storage controller obtains real-time information]

[0117] Figure 5 is a block diagram illustrating a storage controller according to an example embodiment. For example, Figure 5 The storage controller 110C may be Figure 2 An example of a storage controller 110 is shown. Figure 5 The storage controller 110C is similar to Figure 2 Therefore, for the convenience of explanation, redundant description will be omitted below.

[0118] refer to Figure 5 , the storage controller 110C may include a real-time manager 111, a processor 112, a static random access memory (SRAM) 113, a host interface circuit 114, and a non-volatile memory interface circuit 115. The real-time manager 111 may include a real-time information checker RTI 111a and a command scheduler 111b.

[0119] The RTI checker 111a can check the real-time information corresponding to the real-time command. For example, when the real-time command includes a real-time information field, the RTI checker 111a can obtain the real-time information through the real-time information field. For example, when the storage device 100 (see Figure 1 ) manages multiple hosts 11 to 1n (see Figure 1 ) when the real-time information of each of them is obtained, the RTI checker 111a can obtain the real-time information through the real-time setting table.

[0120] The command scheduler 111b may be configured to schedule commands from each of the plurality of hosts 11 to 1n. For example, when a real-time command is issued from at least one of the plurality of hosts 11 to 1n, the command scheduler 111b may control the execution of the storage device 100 based on real-time information corresponding to the real-time command. For example, the command scheduler 111b may preferentially select a physical function corresponding to the real-time command from a plurality of physical functions based on the real-time information.

[0121] In the following, reference will be made to FIG. 6 and Figure 7 An example of obtaining real-time information through the real-time information field of the command is described in more detail. Figures 8 to 10 An example of obtaining real-time information through a real-time setting table is described in more detail.

[0122] Fig. 6A and Figure 6B 1 is a diagram showing an example of a real-time information field according to an example embodiment. For example, an example of a real-time command RTI_CMD is shown in FIG. Fig. 6A and an example of the real-time information field RTI_field is shown in Figure 6B Shown in.

[0123] For ease of description, Fig. 6A and Figure 6BIn the example, the real-time command RTI_CMD is a read command. In addition, an example is provided in which the storage system is an automotive system and the real-time limit RT_Limit is determined based on the automotive safety integrity level (ASIL).

[0124] refer to Fig. 6A , the real-time command RTI_CMD may include a data set management (DSM) field and a real-time information field RTI. The DSM field may include information for reading data of a logical block. For example, the DSM field may include an access frequency field, an access wait time field, a sequential request field, or an incompressible field.

[0125] refer to Figure 6B The real-time information field RTI may include real-time information. For example, the real-time information field RTI may include a real-time flag RT_Flag, an ASIL level, a real-time limit RT_Limit, and an SQ time.

[0126] The real-time flag RT_Flag may indicate whether the command is a real-time command or a general command. For example, when the real-time flag RT_Flag is enabled to be high, the command may be a real-time command requested for real-time processing. When the real-time flag RT_Flag is disabled to be low, the command may be a general command.

[0127] The ASIL level may indicate the safety level associated with a command. For example, the ASIL level may be a safety level defined by ISO 26262, an international standard for the functional safety of electrical and / or electronic systems in road vehicles. In this case, the ASIL level may be divided into four levels: A, B, C, and D, depending on the likelihood, severity, and controllability of an accident.

[0128] The real-time limit RT_Limit may indicate time information when the command should be processed. For example, according to an example embodiment, the real-time limit may be defined as the time from the time point when the host writes the real-time command in the submission queue to the time point when the host obtains the response to the real-time command from the completion queue. For example, according to an example embodiment, the real-time limit may be defined as the time from the time point when the host writes the real-time command in the submission queue to the time point when the storage device writes the response to the real-time command in the completion queue.

[0129] The real-time limit RT_Limit can be set based on the ASIL level. For example, when the ASIL level is "D", the real-time limit RT_Limit can be set to the shortest. For example, when the ASIL level is "C", the real-time limit RT_Limit can be set to be longer than when the ASIL level is "D". For example, when the ASIL level is "B", the real-time limit RT_Limit can be set to be longer than when the ASIL level is "C". For example, when the ASIL level is "A", the command is a general command, and the real-time limit RT_Limit may not be set or may be set to be long.

[0130] The SQ time may indicate information about a point in time at which a command has been written in the submission queue SQ.

[0131] Figure 7 is a flowchart illustrating an example of operation of a storage controller according to an example embodiment. For example, Figure 7 An example is shown in which the storage controller obtains real-time information from the host through commands.

[0132] In operation S110a, the storage controller 110C may receive an interrupt signal from the host. The interrupt signal may be a signal notifying that a real-time command has been written into the submission queue SQ. For example, the host may write the real-time command into the submission queue SQ and then send the interrupt signal to the storage controller 110C. However, this is merely an example, and according to example embodiments, the operation S110a of receiving the interrupt signal may be omitted.

[0133] In operation S120a, the storage controller 110C may obtain real time information from a real time information field RTI in the command.

[0134] For example, the RTI checker 111a can check whether the command is a real-time command by checking the real-time flag RT_Flag of the real-time information field RTI. In addition, for example, the RTI checker 111a can check information about the time when the command processing should be completed by checking the real-time limit RT_Limit of the real-time information field RTI. In addition, for example, the RTI checker 111a can check information about the time when the command has been written in the submission queue SQ by checking the SQ time of the real-time information field RTI.

[0135] As reference Figure 5 , Figure 6 and Figure 7 As described above, the storage controller 110C according to the example embodiment can obtain the real-time information through the real-time information field of the command. The obtained real-time information can be later referenced for the implementation control of the storage device 100 (see Figure 1 ).

[0136] Figure 8 is a diagram showing an example of a real-time setting table according to an exemplary embodiment. Figure 8 In the example, a storage system is an automobile system and a plurality of hosts are first to fourth ECUs ECU1 to ECU4 of the automobile system are provided. Furthermore, an example is provided in which the first to fourth ECUs ECU1 to ECU4 correspond to different ASIL levels.

[0137] The first to fourth ECUs ECU1 to ECU4 according to the example embodiment may have different ASIL levels and may match different physical functions (PF). In addition, the first to fourth ECUs ECU1 to ECU4 may have different real-time limits RT_Limit depending on the ASIL level. Real-time information about each of the first to fourth ECUs ECU1 to ECU4 may be pre-set and managed as a real-time setting table.

[0138] According to the example embodiment, the first to fourth ECUs ECU1 to ECU4 may correspond to different ASIL levels. In this case, the first to fourth ECUs ECU1 to ECU4 may have different real-time limits RT_Limit.

[0139] For example, Figure 8 As shown, the command issued by the first ECU (ECU1) may correspond to ASIL level "D". The first ECUECU1 may be an ECU that controls a function that should be handled very urgently, such as, for example, an airbag, a brake, an electric power steering, etc. In this case, the command issued by the first ECUECU1 may be a real-time command with a first real-time limit RT_Limit1. For example, the first real-time limit RT_Limit1 may be about 10 microseconds (ms).

[0140] In addition, for example, the command issued by the second ECU ECU2 may correspond to ASIL level "C". The second ECU ECU2 may be an ECU that controls a function that should be processed urgently, but is not as urgent as the function controlled by the first ECU ECU1, such as, for example, engine management, active shock absorbers, etc. In this case, the command issued by the second ECU ECU2 may be a real-time command with a second real-time limit RT_Limit2. For example, the second real-time limit RT_Limit2 may be about 20ms.

[0141] In addition, for example, the command issued by the third ECU ECU3 may correspond to ASIL level "B". The third ECU ECU3 may be an ECU that controls functions that should be handled relatively less urgently, such as, for example, headlights, radar cruise control, advanced driver assistance systems (ADAS), etc. In this case, the command issued by the third ECU ECU3 may be a real-time command with a third real-time limit RT_Limit3. For example, the third real-time limit RT_Limit3 may be about 30ms.

[0142] In addition, for example, the command issued by the fourth ECU (ECU4) may correspond to ASIL level "A". The fourth ECU ECU4 may be an ECU that controls functions that do not require emergency processing, such as, for example, taillights, etc. In this case, the command issued by the fourth ECU ECU4 may be a general command with a real-time limit RT_Limit.

[0143] According to an example embodiment, the first to fourth ECUs ECU1 to ECU4 may be pre-matched to different physical functions of different storage controllers 110C. Figure 8 As shown, the first to fourth ECUs ECU1 to ECU4 may be pre-matched with the first to fourth physical functions PF1 to PF4 , respectively.

[0144] As described above, real-time information on each of the first to fourth ECUs ECU1 to ECU4 may be set in advance and managed as a real-time setting table.

[0145] Fig. 9 is a diagram showing an example of operation of a storage controller according to an example embodiment. For example, Fig. 9 The storage controller 110C is shown using Figure 8 The real-time settings table shows an example of obtaining real-time information.

[0146] Hereinafter, for convenience of description, an example will be provided in which the first ECU 11 includes a first submission queue SQ1 and a first command CMD1 is written therein. In addition, an example will be provided in which the fourth ECU 14 includes a fourth submission queue SQ4 and a fourth command CMD4 is written therein. Fig. 9 The configuration and operation of the storage controller 110C in FIG. 3 and FIG. Figure 5 Therefore, for the convenience of explanation, redundant description will be omitted below.

[0147] refer to Fig. 9In operation ①, the real-time setting table stored in the nonvolatile memory device 120 may be loaded into the SRAM 113. For example, when the storage device is powered on, the real-time setting table stored in the nonvolatile memory device 120 may be loaded into the SRAM 113.

[0148] In operation ②, the real-time manager 111 can obtain the real-time information of the commands written in the submission queue SQ of the host by referring to the real-time setting table stored in the SRAM 113. For example, the real-time manager 111 can obtain the real-time information of the first command CMD1 and the real-time information of the fourth command CMD4 by referring to the real-time setting table stored in the SRAM 113.

[0149] In operation ③, the real-time manager 111 may select a physical function so that the first command CMD1 corresponding to the ASIL level "D" is processed first. For example, the real-time manager 111 may preferentially select the first physical function (PF1) corresponding to the first command CMD1 having a relatively short real-time limit RT_Limit. After the processing operation of the first command CMD1 is completed, the real-time manager 111 may select the fourth physical function PF4 corresponding to the fourth command CMD4.

[0150] Fig.10 is a flowchart illustrating an example of operation of a storage controller according to an example embodiment. For example, Fig.10 An example is shown in which the storage controller obtains real-time information through a real-time setting table.

[0151] In operation S110 b , the memory controller 110C may load the real-time setting table stored in the nonvolatile memory device 120 into the SRAM 113 .

[0152] For example, the physical function PF and the real-time limit RT_Limit corresponding to each of the plurality of hosts may be in a predetermined state in the real-time setting table, such as Figure 8 The memory controller 110C may load a real-time setting table having predetermined real-time information from the nonvolatile memory device 120 into the SRAM 113 during power-on.

[0153] In operation S120b, the memory controller 110C may obtain real time information from the real time setting table.

[0154] For example, when a specific host writes a command into the submission queue SQ, the storage controller 110C may obtain real-time information such as, for example, a physical function (PF), a real-time limit RT_Limit, etc. by referring to the real-time setting table.

[0155] As reference Figure 5 and Figures 8 to 10 As described, the storage controller 110C according to the example embodiment can obtain real-time information about commands in the write submission queue through a real-time setting table having predetermined real-time information. The obtained real-time information can be later referenced for execution control of the storage device 100 (see Figure 1 ).

[0156] [Selecting storage devices with physical functions based on real-time information]

[0157] Fig.11 is a block diagram illustrating a storage controller according to an example embodiment. For example, Fig.11 The controller 110D may be Figure 2 An example of a storage controller 110 is shown. Fig.11 The storage controller 110D is similar to Figure 2 and Figure 5 Therefore, the same or similar components will be denoted by the same or similar reference numerals, and redundant description will be omitted below.

[0158] refer to Fig.11 , the storage controller 110D may include a real-time manager 111, a processor 112, an SRAM 113, a host interface circuit 114, and a non-volatile memory interface circuit 115. The real-time manager 111 may include a real-time information (RTI) checker 111a, a command scheduler 111b, and a virtual time stamp (VTS) manager 111c.

[0159] The VTS manager 111c may be configured to manage a VTS table. The VTS table may include VTS values ​​of a physical function PF or a submission queue SQ corresponding to each of the plurality of hosts 11 to 1n (see Figure 1 ). The VTS value may be defined as the product of the input / output (IO) throughput and the weight. For example, under the premise of the same weight, a physical function PF with high IO throughput may have a relatively large VTS value, while a physical function PF with low IO throughput may have a relatively small VTS value.

[0160] The VTS manager 111c may manage weights for generating VTS values. For example, different weights may be set for the physical functions PF or submission queues SQ corresponding to each of the plurality of hosts 11 to 1n (see Figure 1). According to an example embodiment, the weight may be set in various ways. For example, the VTS manager 111c may set a low weight to correspond to a physical function PF with a high IO throughput, and may set a high weight to correspond to a physical function PF with a low IO throughput. However, this is merely an example, and the VTS manager 111c may set the weight in various ways according to an example embodiment.

[0161] The command scheduler 111b may select a physical function PF based on the VTS table to process the command. For example, the command scheduler 111b may be configured to select a physical function PF corresponding to the minimum VTS value from a plurality of physical functions PFs. In this case, the execution of all hosts 11 to 1n may be consistent, or the minimum execution of each host 11 to 1n may be guaranteed. However, this is merely an example, and according to example embodiments, the command scheduler 111b may select a physical function PF in various ways. For example, the command scheduler 111b may be configured to select a physical function PF corresponding to a maximum value from a plurality of physical functions PFs.

[0162] According to an example embodiment, the VTS manager 111c may be configured to additionally manage real-time information.

[0163] For example, according to an example embodiment, the VTS manager 111c may additionally manage real-time information such as a real-time flag RT_Flag using a VTS table. In this case, the command scheduler 111b may preferentially select a physical function PF corresponding to a real-time command based on the real-time flag RT_Flag of the VTS table. Therefore, the real-time command may be efficiently processed.

[0164] For example, according to an example embodiment, the VTS manager 111c may manage the VTS table so that it has different weights according to the ASIL level or the real-time limit RT_Limit. For example, the VTS manager 111c may set the weight of the VTS table so that a real-time command with a relatively short real-time limit RT_Limit may be selected before a real-time command with a relatively long real-time limit RT_Limit. Therefore, the real-time command may be efficiently processed within a predetermined time.

[0165] Fig.12 is a diagram showing an example of a VTS table according to an exemplary embodiment. For example, Fig.12 The VTS table can be composed of Fig.11 For ease of description, in Fig.12 , an example is provided in which first to third physical functions PF1 to PF3 are provided.

[0166] refer to Fig.12The VTS table can manage multiple physical functions PF1 to PF3, as well as submission queues SQ1 to SQ3, weights W1 to W3, VTS values ​​VTS_SQ1 to VTS_SQ3 and real-time flags RT_Flag corresponding to the multiple physical functions PF1 to PF3, respectively.

[0167] For example, the first physical function PF1 may correspond to a first submission queue (SQ1). The first physical function PF1 may have a first weight W1. The VTS value of the first physical function PF1 may be defined as the product of the IO throughput and the first weight W1 of the first physical function PF1. The real-time flag RT_Flag may indicate whether the command to be processed by the first physical function PF1 is a real-time command. Similarly, the submission queue SQ, the weight Weight, the VTS value VTS_Value, and the real-time flag RT_Flag may be set for the second physical function PF2 and the third physical function PF3.

[0168] Fig.13 is a diagram showing an example of operation of a storage controller according to an example embodiment. For example, Fig.13 Shows when real-time commands are not written to the submission queue SQ Fig.11 Hereinafter, for convenience of description, an example will be provided in which the VTS values ​​of the first physical function PF1, the second physical function PF2, and the third physical function PF3 are "3", "2", and "6", respectively.

[0169] refer to Fig.13 In operation ①, when the real-time command is not written into the submission queue SQ, the command scheduler 111b may select a physical function PF based on the VTS value of the VTS table. For example, the command scheduler 111b may select the second physical function PF2 having the smallest VTS value.

[0170] In operation ②, the command scheduler 111b may obtain a second command CMD2 of the second submission queue SQ2 corresponding to the second physical function PF2. In operation ③, a processing operation may be performed on the obtained second command CMD2.

[0171] Fig.14A is a diagram showing an example of operation of a storage controller according to an example embodiment. For example, Fig.14A Shows Fig.11 The storage controller 110D selects the operation of the physical function PF through the real-time flag RT_Flag of the VTS table. Fig.13In the example, the VTS values ​​of the first physical function PF1, the second physical function PF2, and the third physical function PF3 are respectively "3", "2", and "6". In addition, an example is provided in which the first command CMD1 of the first submission queue SQ1 is a real-time command.

[0172] refer to Fig.14A In operation ①, the RTI checker 111a may obtain the real-time information RTI and send the obtained RTI to the VTS manager 111c. Therefore, the VTS manager 111c may confirm that the first command CMD1 of the first submission queue SQ1 is a real-time command.

[0173] In operation ②, the VTS manager 111c may enable the real-time flag RT_Flag of the physical function PF corresponding to the real-time command. For example, the VTS manager 111c may enable the real-time flag RT_Flag corresponding to the first submission queue SQ1.

[0174] In operation ③, the command scheduler 111b may select a physical function PF based on the real-time flag RT_Flag of the VTS table and the VTS value. For example, when the enabled real-time flag RT_Flag exists, the command scheduler 111b may preferentially select the physical function PF corresponding to the enabled real-time flag RT_Flag, regardless of the VTS value. For example, the command scheduler 111b may select the first physical function PF1 having the enabled real-time flag RT_Flag.

[0175] In operation ④, the command scheduler 111b may acquire a first command CMD1 of a first submission queue SQ1 corresponding to a first physical function PF1. In operation ⑤, a processing operation may be performed on the acquired first command CMD1.

[0176] Fig. 14B is a diagram showing an example of operation of a storage controller according to an example embodiment. For example, Fig. 14B Shows Fig.11 An example of an operation of the storage controller 110D selecting a physical function PF by setting a weight of the VTS table. For ease of description, similar to Fig.13 , an example is provided in which the initial VTS values ​​of the first, second and third physical functions PF1, PF2 and PF3 are "3", "2" and "6", respectively. In addition, an example is provided in which the first command CMD1 of the first submission queue SQ1 is a real-time command.

[0177] refer to Fig. 14BIn operation ①, the RTI checker 111a may obtain the real-time information RTI and send the obtained RTI to the VTS manager 111c. Therefore, the VTS manager 111c may confirm that the first command CMD1 of the first submission queue SQ1 is a real-time command.

[0178] In operation ②, the VTS manager 111c may adjust the weight of the physical function PF corresponding to the real-time command. For example, the VTS manager 111c may adjust the weight of the physical function PF corresponding to the real-time command so that the VTS value corresponding to the real-time command is minimized.

[0179] For example, Fig. 14B As shown, the VTS manager 111c may adjust the first weight W1 corresponding to the first submission queue SQ from "3" to "1". Therefore, the VTS value VTS_SQ1 of the first physical function PF1 may be adjusted from "3" to "1". As a result, the first physical function PF1 may be adjusted to have the minimum VTS value.

[0180] In operation ③, the command scheduler 111b may select the first physical function PF1 having the smallest VTS value.

[0181] In operation ④, the command scheduler 111b may acquire a first command CMD1 of a first submission queue SQ1 corresponding to a first physical function PF1. In operation ⑤, a processing operation may be performed on the acquired first command CMD1.

[0182] Fig.15 is a flowchart illustrating an example of operation of a storage controller according to an example embodiment. For example, Fig.15 An example is shown in which a storage controller selects a physical function based on real-time information.

[0183] In operation S210, the storage controller 110D (see Fig.11 ) The physical function PF can be selected based on real-time information.

[0184] According to an example embodiment, the storage controller 110D may include a VTS table, and the VTS table may manage a physical function PF, a weight, a VTS value, and a real-time flag RT_Flag corresponding to each of a plurality of hosts. When the real-time flag RT_Flag is enabled, the storage controller 110D may select a physical function PF corresponding to the enabled real-time flag RT_Flag regardless of the size of the VTS value.

[0185] According to an example embodiment, the storage controller 110D may include a VTS table, and the VTS table may include a physical function PF, a weight, and a VTS value corresponding to each of the plurality of hosts. The weight may be set or adjusted to reflect the real-time limit RT_Limit. In this case, the storage controller 110D may select the physical function PF with the smallest VTS value.

[0186] In operation S220 , the storage controller 110D may select a commit queue SQ corresponding to the selected physical function PF and acquire a real-time command written in the selected commit queue.

[0187] In operation S230 , the memory controller 110D may perform a processing operation on the acquired real-time command.

[0188] As reference Figures 11 to 15 As described above, the storage controller 110D according to the example embodiment may select the physical function PF based on the VTS table reflecting the real-time information. Therefore, the real-time command may be preferentially selected compared to the general command, or the real-time command having a relatively short real-time limit RT_Limit may be preferentially selected compared to the real-time command having a relatively long real-time limit RT_Limit. Therefore, the real-time command may be efficiently processed.

[0189] [Storage device that allocates resources based on real-time information and / or the status of a completion queue]

[0190] Fig.16 is a block diagram illustrating a storage controller according to an example embodiment. For example, Fig.16 The controller 110E may be Figure 2 An example of a storage controller. Fig.16 The storage controller 110E is similar to Fig.11 Therefore, the same or similar components will be denoted by the same or similar reference numerals, and redundant descriptions will be omitted below.

[0191] refer to Fig.16 , the storage controller 110E may include a real-time manager 111, a processor 112, an SRAM 113, a host interface circuit 114, and a non-volatile memory interface circuit 115. The real-time manager 111 may include a real-time information (RTI) checker 111a, a command scheduler 111b, a VTS manager 111c, and a token manager 111d.

[0192] The token manager 111d may be configured to provide tokens to each of the plurality of physical functions PF based on real-time information. The number of tokens allocated to each physical function PF may be proportional to the number of storage devices 100 (see Figure 1 ) is proportional to the amount of resources.

[0193] According to an example embodiment, as the real-time limit RT_Limit decreases, the token manager 111d may provide a larger number of tokens. Therefore, the shorter the real-time limit RT_Limit of a real-time command is, the more resources of the storage device 100 may be allocated. As a result, the real-time command may be efficiently processed.

[0194] According to an example embodiment, the token manager 111d may provide tokens in consideration of the state of the completion queue CQ of each host. For example, the token manager 111d may provide tokens or adjust the number of provided tokens by referring to the responses accumulated in the completion queue CQ. The responses accumulated in the completion queue CQ may be responses that have not yet been confirmed or referenced by the host. For example, the token manager 111d may allocate relatively fewer tokens to physical functions corresponding to hosts that have accumulated a large number of responses in the completion queue CQ, and may allocate relatively more tokens to physical functions corresponding to hosts that have accumulated a small number of responses in the completion queue CQ.

[0195] As described above, the storage controller 110D according to example embodiments may provide a token to each physical function PF based on real-time information and / or a state of a completion queue CQ. Therefore, a real-time command may be efficiently processed.

[0196] Fig.17 is a diagram showing an example of operation of a storage controller according to an example embodiment. For example, Fig.17 Shows Fig.16 An example of an operation of the storage controller 110E determining the number of tokens to be allocated to each physical function PF based on real-time information. For ease of description, Fig.17 , 20 tokens corresponding to storage device 100 (see Figure 1 ). In addition, an example is provided in which the length of the real-time limit RT_Limit increases in the order of the first physical function PF1, the second physical function PF2, and the third physical function PF3.

[0197] refer to Fig.17 In operation ①, the RTI checker 111a may obtain the real-time information RTI and transmit the obtained RTI to the token manager 111d. Therefore, the token manager 111d may check the real-time limit RT_Limit of the real-time command corresponding to each of the first to third physical functions PF1 to PF3.

[0198] In operation ②, the token manager 111d may determine the number of tokens to be allocated to each physical function PF. For example, the real-time limit RT_Limit corresponding to the first physical function PF1 is the shortest, thereby allowing the token manager 111d to provide the first physical function PF1 with the maximum number of tokens. In addition, the real-time limit RT_Limit corresponding to the third physical function PF3 is the longest, thereby allowing the token manager 111d to provide the least number of tokens to the first physical function PF1. Therefore, the shorter the real-time limit RT_Limit, the faster the real-time limit RT_Limit can be processed.

[0199] Fig.18 is a flowchart illustrating an example of operation of a memory controller according to an example embodiment. Fig.19 The operation of the storage controller is similar to Fig.15 Therefore, redundant description will be omitted below.

[0200] In operation S210, the storage controller 110E (see Fig.16 ) The physical function PF can be selected based on real-time information.

[0201] In operation S211, the storage controller 110E may determine the number of tokens to be allocated to the selected physical function PF. For example, the shorter the real-time limit RT_Limit of the real-time command corresponding to the selected physical function PF is, the more tokens the storage controller 110E may provide.

[0202] In operation S220 , the storage controller 110E may select a commit queue SQ corresponding to the selected physical function PF and acquire a real-time command written in the selected commit queue.

[0203] In operation S230, the storage controller 110E may perform a processing operation on the acquired real-time command. In this case, the shorter the real-time limit RT_Limit of the real-time command is, the more tokens may be provided. Therefore, the real-time command may be effectively processed within the real-time limit RT_Limit.

[0204] Fig.19 is a diagram showing an example of operation of a storage controller according to an example embodiment. For example, Fig.19 Shows Fig.16 An example of operation of the storage controller 110E adjusting the number of tokens allocated to each physical function PF based on the state of the completion queue CQ.

[0205] For ease of description, something like Fig.17 ,exist Fig.19 , 20 tokens corresponding to storage device 100 (see Figure 1). In addition, an example is provided in which the length of the real-time limit RT_Limit increases in the order of the first physical function PF1, the second physical function PF2, and the third physical function PF3. In addition, an example is provided in which responses are accumulated in the first completion queue CQ1.

[0206] refer to Fig.19 , in operation ①, the RTI checker 111a can obtain the real-time information RTI and send the obtained RTI to the token manager 111d.

[0207] In operation ②, the token manager 111d may determine the number of tokens to be allocated to each physical function PF1. For example, 8 tokens (the maximum number of tokens) may be allocated to the first physical function PF1, 7 tokens may be allocated to the second physical function PF2, and 5 tokens may be allocated to the third physical function PF3.

[0208] In operation ③, the token manager 111d may check the status of the completion queue CQ of each physical function PF. For example, the token manager 111d may confirm that the response is accumulated in the first completion queue CQ1 of the first physical function PF1.

[0209] In operation ④, the token manager 111d can adjust the number of allocated tokens based on the state of the completion queue CQ of each physical function PF. For example, responses are accumulated in the first completion queue CQ1, so that the real-time command corresponding to the first physical function PF1 can be processed relatively slowly. Therefore, the token manager 111d can adjust the number of tokens allocated to the first physical function PF1 from "8" to "4". Therefore, the resources of the storage device 100 can be allocated more efficiently.

[0210] Fig. 20 is a flowchart illustrating an example of operation of a memory controller according to an example embodiment. Fig. 20 The operation of the storage controller is similar to Fig.18 Therefore, redundant description will be omitted below.

[0211] In operation S210, the storage controller 110E (see Fig.16 ) The physical function PF can be selected based on real-time information.

[0212] In operation S211 , the storage controller 110E may determine the number of tokens to be allocated to the selected physical function PF.

[0213] In operation S212 , the storage controller 110E may check a state of a completion queue CQ corresponding to the selected physical function PF.

[0214] In operation S213, the storage controller 110E may adjust the number of allocated tokens based on the state of the completion queue CQ. For example, when a large number of responses are accumulated in the completion queue CQ, the storage controller 110E may deduct the number of tokens corresponding to the corresponding physical function PF.

[0215] In operation S220 , the storage controller 110E may select a commit queue SQ corresponding to the selected physical function PF and acquire a real-time command written in the selected commit queue.

[0216] In operation S230 , the memory controller 110E may perform a processing operation on the acquired real-time command.

[0217] As reference Figures 16 to 20 As described above, the storage controller 110E according to example embodiments may provide a token or adjust a token to each physical function PF based on real-time information and / or a state of a completion queue CQ. Therefore, real-time commands may be efficiently processed.

[0218] [The storage controller determines the acquisition timing based on real-time information]

[0219] Fig.21 is a block diagram illustrating a storage controller according to an example embodiment. For example, Fig.21 The storage controller 110F may be Figure 2 An example of a storage controller. Fig.21 The storage controller 110F is similar to Figure 2 and Figure 5 Therefore, the same or similar components will be denoted by the same or similar reference numerals, and redundant description will be omitted below.

[0220] refer to Fig.21 , the storage controller 110F may include a real-time manager 111, a processor 112, an SRAM 113, a host interface circuit 114, and a non-volatile memory interface circuit 115. The real-time manager 111 may include a real-time information (RTI) checker 111a, a command scheduler 111b, and an SQ monitor 111e.

[0221] The SQ monitor 111e may monitor the submission queue SQ corresponding to each of the plurality of hosts 11 to 1n (see Figure 1 ). When it is found that a new command has been written into the single submission queue SQ, the SQ monitor 111e may send the new command to the RTI checker 111a. In this case, the RTI checker 111a may obtain real-time information about the command newly written into the submission queue SQ.

[0222] According to an example embodiment, the monitoring period of the SQ monitor 111e may be set to be shorter than the real-time limit RT_Limit. Figure 1 ) is an automotive system, the monitoring period of the SQ monitor 111e may be set to be shorter than the real-time limit RT_Limit corresponding to the ASIL level "D". Therefore, it is possible to ensure that there is sufficient time for selecting a physical function PF corresponding to a command written in the submission queue SQ, acquiring the command, and performing an operation of processing the acquired command.

[0223] Furthermore, according to an example embodiment, the acquisition timing of the command scheduler 111 b may be set in consideration of a point in time at which the SQ monitor 111 e detects that a new command has been written into the submission queue SQ.

[0224] For example, when the SQ monitor 111e detects that a new command is written relatively late into the submission queue SQ, the command scheduler 111b may acquire the command relatively early. For example, when the SQ monitor 111e detects that a new command has been written relatively early into the submission queue SQ, the command scheduler 111b may acquire the command relatively late. Therefore, it is possible to ensure that there is sufficient time for selecting a physical function PF corresponding to a command written into the submission queue SQ, acquiring the command, and performing an operation of processing the acquired command.

[0225] Fig. 22 is a flowchart illustrating an example of operation of a memory controller according to an example embodiment.

[0226] In operation S310, the storage controller 110F (see Fig.21 ) can monitor the submission queue SQ of each host. In this case, the monitoring period of the submission queue SQ of each host can be set to be shorter than the real-time limit RT_Limit.

[0227] In operation S320, the storage controller 110F may obtain real-time information about the command newly written to the submission queue SQ. For example, the storage controller 110F may obtain the real-time information through the real-time information field of the command. For example, the storage controller 110F may obtain the real-time information through a real-time setting table managed by the storage device.

[0228] In operation S330, the storage controller 110F may determine the acquisition timing of the command newly written into the submission queue SQ. For example, the storage controller 110F may determine the acquisition timing considering the time point when the storage controller 110F detects that the new command has been written into the submission queue SQ and the real-time limit RT_Limit of the command.

[0229] In operation S340 , the storage controller 110F may select a physical function PF and a commit queue SQ corresponding to the physical function PF, and may acquire a real-time command written in the selected commit queue.

[0230] In operation S350 , the memory controller 110F may perform a processing operation on the extracted real-time command.

[0231] As described above, the storage controller 110F according to example embodiments may determine the monitoring period of the submission queue SQ and / or the acquisition timing of the real-time command in consideration of the real-time information. Therefore, the real-time command may be efficiently processed within the real-time limit RT_Limit.

[0232] As described above, a storage system according to example embodiments may efficiently process a real-time command received from a host within a predetermined time.

[0233] It will be understood that the above description is illustrative, and the example embodiments are not limited thereto. For example, according to an example embodiment, the real-time manager may perform operations of selecting a physical function, allocating resources, and / or determining acquisition timing, taking into account an existing command being processed before acquiring a real-time command, the operation of a non-volatile memory device corresponding to the command, and / or a channel condition. In addition, according to an example embodiment, when processing a real-time command in a storage device, the real-time manager may predict the processing time, and may allocate resources based on the predicted processing time. Alternatively, according to an example embodiment, the real-time manager may predict the processing time of processing the real-time manager in the storage device, and may determine the priority of processing the real-time command based on the predicted processing time. As described above, the real-time command according to the example embodiment may be applied in various ways.

[0234] As a tradition in the field of the present disclosure, embodiments are described and shown in the accompanying drawings according to functional blocks, units and / or modules. It will be appreciated by those skilled in the art that these blocks, units and / or modules are physically implemented by electronic (or optical) circuits, such as logic circuits, discrete components, microprocessors, hard-wired circuits, memory components, wiring connections, etc., which can be formed using semiconductor-based manufacturing techniques or other manufacturing techniques. In the case where blocks, units and / or modules are implemented by microprocessors, etc., they can be programmed using software (e.g., microcode) to perform the various functions discussed herein, and can be optionally driven by firmware and / or software. Alternatively, each block, unit and / or module can be implemented by dedicated hardware, or implemented as a combination of dedicated hardware that performs some functions and processors (e.g., one or more programmed microprocessors and associated circuits) that perform other functions.

[0235] While the present disclosure has been particularly shown and described with reference to embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the spirit and scope of the present disclosure as defined by the appended claims.

Claims

1. A storage device, comprising: non-volatile memory devices; and a storage controller configured to control the nonvolatile memory device under the control of a plurality of hosts, in The storage controller comprises: a plurality of physical functions respectively corresponding to the plurality of hosts; and The real-time manager is configured to control the plurality of physical functions based on real-time information of a real-time command when the real-time command is issued from at least one host among the plurality of hosts.

2. The storage device according to claim 1, wherein The real-time manager selects, among the plurality of physical functions, a physical function corresponding to a host that issues the real-time command prior to a physical function corresponding to a host that issues a general command.

3. The storage device according to claim 2, wherein The real-time manager selects a physical function corresponding to the host issuing the real-time command from among the plurality of physical functions based on a virtual time stamp VTS table, and The VTS table includes: a plurality of weights respectively corresponding to the plurality of physical functions; a plurality of VTS values, the plurality of VTS values ​​respectively corresponding to the plurality of physical functions and being set based on an input / output IO throughput and a weight of each of the plurality of physical functions; as well as A plurality of real-time flags respectively correspond to the plurality of physical functions and indicate whether the real-time commands of the plurality of physical functions match each other.

4. The storage device according to claim 3, wherein The real-time manager comprises: A VTS manager configured to manage the VTS table; as well as a command scheduler configured to select a physical function from among the plurality of physical functions to process a command, wherein the VTS manager enables a real-time flag of a physical function corresponding to a host that issues the real-time command among the plurality of real-time flags of the VTS table, and The command scheduler selects a physical function corresponding to a host that issues the real-time command from among the plurality of physical functions based on the enabled real-time flag.

5. The storage device according to claim 3, wherein The real-time manager comprises: A VTS manager configured to manage the VTS table; as well as a command scheduler configured to select a physical function from among the plurality of physical functions to process a command, The VTS manager adjusts a weight of a physical function corresponding to a host that issues the real-time command among the plurality of weights of the VTS table.

6. The storage device according to claim 5, wherein The VTS manager adjusts the weight to reduce a VTS value of a physical function corresponding to a host that issues the real-time command among the plurality of VTS values, in, The command scheduler selects a physical function corresponding to a minimum VTS value among the plurality of VTS values.

7. The storage device according to claim 1, wherein The real-time manager determines a number of tokens to allocate to each of the plurality of physical functions based on the real-time information.

8. The storage device according to claim 7, wherein The number of tokens allocated to a physical function corresponding to a host that issues the real-time command is greater than the number of tokens allocated to a physical function corresponding to a host that does not issue the real-time command.

9. The storage device according to claim 7, wherein The real-time manager adjusts a number of tokens allocated to each of the plurality of physical functions based on a status of a completion queue corresponding to each of the plurality of hosts.

10. The storage device according to claim 9, wherein When the number of responses accumulated in the completion queue of the host that issued the real-time command is greater than or equal to a reference number, the real-time manager deducts the number of tokens allocated to the physical function corresponding to the host that issued the real-time command.

11. The storage device according to claim 1, wherein The real-time manager comprises: A real-time information RTI checker configured to check the real-time information; as well as a command scheduler configured to select a physical function from among the plurality of physical functions to process a command based on the real-time information, The RTI checker obtains the real-time information through a real-time information field included in the real-time command.

12. The storage device according to claim 11, wherein The real-time information includes real-time limit and submission queue SQ time, The real-time limit indicates a time from a point in time when the real-time command is written in a submission queue to a point in time when a response corresponding to the real-time command is written in a completion queue, and The SQ time indicates a time point when the real-time command is written into the submission queue.

13. The storage device according to claim 1, wherein The real-time manager comprises: A real-time information RTI checker configured to check the real-time information of the real-time command; as well as a command scheduler configured to select a physical function from among the plurality of physical functions to process a command based on the real-time information, The RTI checker obtains the real-time information through a real-time setting table managed by the storage device.

14. The storage device according to claim 13, wherein The real-time setting table includes: The plurality of physical functions respectively matched with the plurality of hosts; A plurality of automotive safety integrity levels ASIL respectively matching the plurality of physical functions; as well as a plurality of real-time constraints respectively matching the plurality of physical functions, Each of the plurality of real-time constraints is set based on a corresponding ASIL level among the plurality of ASIL levels.

15. The storage device according to claim 1, wherein The real-time manager determines an acquisition timing of the real-time command based on the real-time information.

16. The storage device according to claim 15, wherein The real-time information includes a real-time limit indicating a time from a point in time when the real-time command is written into a submission queue to a point in time when a response to the real-time command is written into a completion queue, wherein As the real-time limit corresponding to the real-time command becomes shorter, the real-time manager acquires the real-time command faster.

17. A method of operating a storage device including a plurality of physical functions respectively corresponding to a plurality of hosts, the method comprising: obtaining real-time information about real-time commands issued by at least one host among the plurality of hosts; determining, based on the real-time information, execution of a physical function corresponding to the real-time command among the plurality of physical functions; as well as The real-time command is acquired and the acquired real-time command is processed.

18. The method according to claim 17, wherein Determining the execution of the physical function corresponding to the real-time command includes: selecting a physical function corresponding to a host that issued the real-time command prior to a physical function corresponding to a host that did not issue the real-time command; allocating a greater number of tokens to a physical function corresponding to a host that issued the real-time command than to a physical function corresponding to a host that did not issue the real-time command; as well as The number of tokens allocated to a physical function corresponding to the host that issued the real-time command is adjusted based on a state of a completion queue of the host that issued the real-time command.

19. The method according to claim 17, wherein The real-time information is obtained from one of a real-time information field included in the real-time command and a real-time setting table managed by the storage device.

20. A storage controller for controlling a non-volatile memory device, the storage controller comprising: a plurality of physical functions, the plurality of physical functions respectively corresponding to a plurality of hosts and independently controlling the nonvolatile memory device based on a request of each of the plurality of hosts; as well as The real-time manager is configured to, when a real-time command is issued from at least one of the plurality of hosts, perform a control operation on the plurality of physical functions based on real-time information of the real-time command.

Citation Information

Patent Citations

  • Mutilayer electronic component

    KR1020230103097A