Predictive garbage collection

By training a custom garbage collection triggering mechanism using an artificial neural network in the memory device, the performance issues caused by static timing and fixed windows are resolved, resulting in more efficient garbage collection and system performance optimization.

CN115712579BActive Publication Date: 2026-03-24MICRON TECHNOLOGY INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-16
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

Existing garbage collection methods in memory devices rely on static times and fixed windows, which cannot be dynamically adjusted, resulting in poor system performance or interruptions, failure to complete garbage collection events in a timely manner, and impact on the execution of background operations.

Method used

Using machine learning techniques, a custom garbage collection triggering mechanism is trained through an artificial neural network (ANN) to predict the ideal garbage collection time based on the usage patterns of memory devices, and to dynamically adjust the triggering and duration of garbage collection events.

Benefits of technology

It improves the performance of memory devices and system efficiency, allows background operations to start earlier, avoids unnecessary interruptions, and dynamically adjusts garbage collection time to adapt to different use cases.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115712579B_ABST
    Figure CN115712579B_ABST
Patent Text Reader

Abstract

Devices and methods can involve performing prediction-based garbage collection. Performing prediction-based garbage collection can include performing, using first circuitry of a controller, a first instance of garbage collection of a memory device, and generating, using second circuitry of the controller, a prediction. A confidence interval for the prediction can also be generated using the second circuitry of the controller. In response to determining that the confidence interval is greater than a threshold, a second instance of garbage collection of the memory device can be triggered using the first circuitry of the controller, where the first instance of garbage collection is triggered prior to the second instance of garbage collection.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to memory, and more specifically, to apparatus and methods associated with performing prediction-based garbage collection. Background Technology

[0002] Memory devices are typically provided as internal semiconductor integrated circuits in computers or other electronic devices. Many different types of memory exist, including volatile and non-volatile memory. Volatile memory requires power to maintain its data and includes random access memory (RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM), among others. Non-volatile memory provides persistent data by retaining the stored data when no power is supplied and includes NAND flash memory, NOR flash memory, read-only memory (ROM), electrically erasable programmable ROM (EEPROM), erasable programmable ROM (EPROM), and resistive variable memory, such as phase-change random access memory (PCRAM), resistive random access memory (RRAM), and magnetoresistive random access memory (MRAM), etc.

[0003] Memory is also utilized as a volatile and non-volatile data storage for a wide variety of electronic applications, including but not limited to personal computers, portable memory sticks, digital cameras, cellular phones, portable music players (e.g., MP3 players), movie players, and other electronic devices. Memory cells can be arranged in an array, wherein the array is used in the memory device. Summary of the Invention

[0004] According to one aspect of this disclosure, an apparatus is provided. The apparatus includes: a memory device; a controller coupled to the memory device and configured to: trigger a first instance of garbage collection of the memory device based on a static value; generate a prediction of a second instance of garbage collection; generate a confidence interval for the prediction; and, in response to determining that the confidence interval is greater than a threshold, trigger the second instance of garbage collection based on the prediction, wherein the first instance of garbage collection is triggered prior to the second instance of garbage collection.

[0005] According to another aspect of this disclosure, a method is provided. The method includes: generating a first prediction using an artificial neural network of a memory device; generating a first confidence interval for the first prediction using the artificial neural network; in response to determining that the first confidence interval is greater than a threshold of the memory device, triggering garbage collection using the first prediction in a first instance; generating a second prediction using the artificial neural network of the memory device; generating a second confidence interval for the second prediction using the artificial neural network; and in response to determining that the second confidence interval is not greater than the threshold, triggering garbage collection of the memory device without using the first prediction and the second prediction in a second instance.

[0006] According to another aspect of this disclosure, an apparatus is provided. The apparatus includes: a memory device; a controller coupled to the memory device and configured to: receive a command stream comprising a plurality of commands, wherein the command stream is received at the controller and wherein garbage collection of the memory device is triggered using the controller; identify predetermined commands from the command stream; and, in response to identifying the predetermined commands, train an artificial neural network implemented in the controller using the plurality of commands, wherein the garbage collection of the memory device is triggered using the artificial neural network. Attached Figure Description

[0007] Figure 1 This is a block diagram of a device in the form of a computing system including a memory device, according to several embodiments of the present disclosure.

[0008] Figure 2 A block diagram illustrating a waste collection control block according to several embodiments of the present disclosure.

[0009] Figure 3 Example flowcharts illustrating the training of an artificial neural network for waste collection according to several embodiments of the present disclosure.

[0010] Figure 4 Example flowcharts illustrating methods for performing garbage collection according to several embodiments of the present disclosure.

[0011] Figure 5 This disclosure describes an example computer system in which embodiments of the present disclosure may be operated. Detailed Implementation

[0012] This disclosure includes apparatus and methods relating to performing prediction-based waste collection. Waste collection is a form of automated memory management. Waste collection reclaims memory occupied by objects no longer in use. Reclaiming memory using waste collection allows the reclaimed memory to be used for storing additional data, which was not available for storing additional data prior to being reclaimed.

[0013] Garbage collection can prevent programs from performing memory deallocation. Garbage collection can be performed to eliminate dangling pointers and memory leaks, as well as other instances of problems associated with memory deallocation.

[0014] Garbage collection events can be triggered by the host and / or managed by the memory device (e.g., as a background operation). For example, the memory device can wait for a specific idle state to run a single garbage collection event. In various prior methods, the duration of the idle time and the length of time allocated to the garbage collection event (e.g., a garbage collection window) can be defined by static values. If additional garbage collection is needed after executing a garbage collection event, then an additional garbage collection event can be executed during a subsequent idle period.

[0015] However, performing garbage collection based on a specific idle time duration and / or a specific garbage collection window can have various drawbacks. The specific idle time duration and / or specific garbage collection window can be static values ​​because they do not change. Specific device usage (e.g., type of write / read mode, type of idle event, etc.) can provide the ability to perform more or fewer garbage collection events during a specific idle period, which can improve system performance compared to methods that treat garbage collection events and / or idle events equally via static values. For example, some idle events may allow sufficient time for multiple garbage collection events, even if the garbage collection firmware algorithm allows only one garbage collection event per idle time event window. Conversely, some host sequences can cause interruptions to ongoing garbage collection events; in this case, it may be necessary to avoid such garbage collection events (or provide a smaller garbage collection window) to avoid adverse effects on system performance.

[0016] Additionally, there are instances where a particular garbage collection event can be completed before the static wait time expires. In such instances, it can be advantageous to allow other background operations to begin before the static wait time expires (e.g., immediately after the garbage collection event completes), so as to allow other background operations to begin earlier.

[0017] The present disclosure addresses the aforementioned and other deficiencies. In several embodiments, machine learning implemented by the controller predicts ideal garbage collection triggers and the duration of garbage collection events based on known usage of the memory device and / or the system. An artificial neural network (ANN) can be trained using multiple commands received via the controller of the memory device to identify custom garbage collection opportunities. The firmware of the memory device can generate a custom timing distribution curve that defines the triggering event and the duration of time at which deployment can occur once a predetermined confidence interval of the AIN's predictions for a given command pattern is achieved. The firmware may use static time values ​​until the custom timing distribution curve is identified.

[0018] As used herein, a garbage collection event may include operations performed on a memory device to perform garbage collection. Artificial intelligence (AI) refers to the ability of a machine to “learn,” for example, by storing patterns and / or instances that can be used to take action at a later time. Machine learning refers to the ability of a device to learn from data provided as instances. Machine learning may be a subset of AI. As used herein, an ANN can provide learning by forming probabilistic weighted associations between inputs and outputs. Probabilistic weighted associations can be provided by multiple nodes comprising an ANN. Nodes, along with weights, biases, and activation functions, can be used to produce the ANN’s output based on inputs to the ANN. An ANN can use several inputs to produce predictions and confidence intervals for those predictions. The confidence interval defines the confidence level of the prediction.

[0019] The figures in this document follow a numbering rule, where the first one or more digits correspond to the figure number, and the remaining digits identify elements or components in the figure. Similar elements or components between different figures can be identified by using similar digits. For example, 120 could represent... Figure 1 Component "20" in the text, and similar components can be found in the text. Figure 2 The value is represented as 220. Hyphens and additional numbers or letters can be used to refer to similar elements within the diagram. See, for example... Figure 2 Elements 232-1, ..., 232-N are shown in the figures. As will be understood, elements shown in various embodiments herein may be added, interchanged, and / or removed to provide several additional embodiments of this disclosure. Furthermore, it should be understood that the scale and relative dimensions of the elements provided in the figures are intended to illustrate certain embodiments of the invention and should not be construed as limiting.

[0020] Figure 1 This is a block diagram of a device in the form of a computing system 100 including a memory device 103, according to several embodiments of the present disclosure. As used herein, for example, the memory device 103, the memory array 110, and / or the host 102 may also be individually considered as a “device”.

[0021] In this example, computing system 100 includes a host 102 coupled to memory device 103 via interface 104. Computing system 100 may be a personal laptop, desktop computer, digital camera, mobile phone, memory card reader, or Internet of Things (IoT) enabled device, as well as various other types of systems. Host 102 may include several processing resources (e.g., one or more processors, microprocessors, or other types of control circuitry) capable of accessing memory device 103, referred to as processor 116. Computing system 100 may include a separate integrated circuit, or both host 102 and memory device 103 may be on the same integrated circuit. For example, host 102 may be a system controller for a memory system including multiple memory devices 103, wherein the system controller provides access to the respective memory devices 103 by another processing resource, such as a central processing unit (CPU). As an example, memory device 103 may be a managed NAND (mNAND) device.

[0022] exist Figure 1 In the example shown, host 102 is responsible for executing an operating system (OS) and / or various applications that can be loaded onto it (e.g., from memory device 103 via control circuitry 105). The OS and / or various applications can be loaded from memory device 103 by providing access commands from host 102 to memory device 103 for accessing data including the OS and / or various applications. Host 102 can also access said data for use by the OS and / or various applications by providing access commands to memory device 103 for retrieving data used in the execution of the OS and / or various applications.

[0023] For clarity, computing system 100 has been simplified to focus on features particularly relevant to this disclosure. For example, memory array 110 may be a DRAM array, SRAM array, STT RAM array, PCRAM array, TRAM array, RRAM array, NAND flash array, NOR flash array, and / or 3D cross-dot array. Memory array 110 may include memory cells arranged in rows coupled by access lines (which may be referred to herein as word lines or select lines) and columns coupled by sensing lines (which may be referred to herein as digital lines or data lines). Although memory array 110 is shown as a single memory array, it may represent multiple memory arrays (e.g., a library arranged as memory device 103).

[0024] Memory device 103 includes address circuitry 106 to latch address signals provided via interface 104. The interface may include, for example, a physical interface employing a suitable protocol (e.g., a data bus, address bus, and command bus, or a combined data / address / command bus). Such protocols may be custom or proprietary, or interface 104 may employ standardized protocols such as PCIe, Gen-Z interconnects, or accelerator cache coherent interconnects (CCIX). Row decoder 108 and column decoder 112 receive and decode address signals to access memory array 110. Data can be read from memory array 110 by sensing voltage and / or current changes on a sensing line using sensing circuitry 111. Sensing circuitry 111 may be coupled to memory array 110. Each memory array and corresponding sensing circuitry may constitute a library of memory device 103. Sensing circuitry 111 may include, for example, a sensing amplifier capable of reading and latching data pages (e.g., rows) from memory array 110. I / O circuitry 107 can be used for bidirectional data communication with host 102 via interface 104. Read / write circuitry 113 is used to write data to or read data from memory array 110. As an example, circuitry 113 may include various drivers, latching circuitry, etc.

[0025] Control circuitry system 105 decodes signals provided by host 102. These signals may be commands provided by host 102. These signals may include chip enable signals, write enable signals, and address latch signals for controlling operations performed on memory array 110 (including data read operations, data write operations, and data erase operations). The signals may also include commands to put memory device 103 into an idle state. For example, the commands may include a hibernation command. The signals may also include commands to interrupt garbage collection events. In various embodiments, control circuitry system 105 is responsible for executing instructions from host 102. Control circuitry system 105 may include a state machine, sequencer, and / or some other type of control circuitry system, which may be implemented in hardware, firmware, or software, or any combination of these. In some instances, host 102 may be a controller external to memory device 103. For example, host 102 may be a memory controller coupled to the processing resources of a computing device. Data may be provided to and / or from memory array 110 via data lines that couple memory array 110 to I / O circuitry system 107.

[0026] The control circuitry system 105 may include a garbage collection block 120. The garbage collection block 120 may include hardware (e.g., logic) and / or firmware that can be used to trigger garbage collection events. As used herein, triggering events may include signals that provide for initiating and / or performing operations. Thus, triggering garbage collection events may include signals that provide for the initialization and / or execution of operations associated with garbage collection.

[0027] Garbage collection block 120 may include circuitry and / or firmware that triggers garbage collection events based on static values. The static values ​​may include static criteria, such as a static duration among other possible static values. For example, the circuitry and / or firmware may utilize the static duration to trigger garbage collection events and / or generate the duration in which garbage collection events and / or associated operations are performed.

[0028] Garbage collection block 120 may include a separate circuit system and / or firmware that utilizes an ANN to trigger garbage collection and / or generate the duration in which garbage collection events and / or associated operations are performed. The triggering of garbage collection and / or the duration in which garbage collection events and / or associated operations are performed may be dynamic, allowing them to vary based on the training of the ANN. Dynamically triggering garbage collection events can allow for longer garbage collection bursts based on memory device usage without adversely affecting the performance of the memory device and / or the system. Dynamically triggering garbage collection events can also allow garbage collection events to be triggered before an event indicating that the memory device is idle. Additionally, providing a dynamic garbage collection window allows for earlier implementation of background operations. For example, if a garbage collection event completes before a static window expires, it is advantageous to reduce the garbage collection window to allow for earlier implementation of other background operations.

[0029] Figure 2 This diagram illustrates a garbage collection control block 220 according to several embodiments of the present disclosure. Garbage collection control block 220 may receive a command stream 221. Garbage collection control block 220 may provide a signal 231 that triggers a garbage collection event. Garbage collection control block 220 may include more than one circuit system / firmware implementing different triggering mechanisms. For example, garbage collection control block 220 may include circuit systems 233-1 and 233-2 to provide different triggers for garbage collection based on static values ​​or based on a command stream 221 that may include dynamic values ​​and other possible dynamic values. Although circuit systems 233-1 and 233-2 are described as hardware, circuit systems 233-1 and 233-2 may be implemented as firmware. For example, a first portion and a second portion of the firmware may be implemented using the same hardware.

[0030] Circuit system 233-1 may include blocks 222, 223 and timer 224. Circuit system 233-2 may include ANN 225, block 226 and confidence interval check 230. Block 226 (training block) may include block 227, ring buffer 228 and block 229.

[0031] Circuit system 233-1 can trigger garbage collection based on static values. For example, block 222 of circuit system 233-1 can monitor command stream 221 and identify commands that trigger idle conditions of the memory device. Commands that trigger idle conditions may include, for example, hibernation commands, as well as other commands that can trigger idle conditions.

[0032] Block 222 can provide a signal to block 223. Block 223 can be hardware or firmware and, in response to receiving a signal from block 222, can generate a duration in which a garbage collection event is performed. Timer 224 can be used to generate and / or store a static value containing the duration in which a garbage collection event is performed. Timer 224 can be a register that stores a static value that can be used to generate a duration (e.g., a window) in which a garbage collection event is performed.

[0033] Block 223 (GC determiner) may also receive a duration from circuit system 233-2. Block 223 may trigger a garbage collection event based on the duration received from circuit system 233-2 (if such a duration is received), or Block 223 may trigger a garbage collection event based on a duration generated using timer 224, a signal received from block 222, and if no duration is received from circuit system 233-2. Thus, block 223 may be described as a triggering mechanism. Block 223 is described as a triggering mechanism because block 223 provides a signal that causes a garbage collection event to be performed. As previously described, block 223 may include hardware and / or firmware.

[0034] Commands from command stream 221 can also be provided to circuit system 233-2 (e.g., AI circuit system). For example, these commands may be received at block 226 and / or ANN 225. Block 226 (training block) of circuit system 233-2 is firmware and / or software that can be used to train ANN 225 using commands from command stream 221. ANN 225 can use commands from command stream 221 to generate duration and confidence intervals for performing garbage collection events. Although ANN 225 is used to provide... Figure 2This is an example of an example, but other types of circuitry and / or firmware can be used to implement AI to generate durations and confidence intervals. In various instances, ANN 225 can generate the duration for performing a garbage collection event, different durations or times for initiating garbage collection, and confidence intervals. The duration or time for initiating garbage collection can indicate the future time when block 223 triggers the execution of garbage collection. The duration for initiating garbage collection identifies the duration between the output of ANN 225 and the execution in which garbage collection is triggered.

[0035] Block 226 can store commands 232-1, ..., 232-N in a ring buffer 228. Commands 232-1, ..., 232-N can be referred to as command 232. Ring buffer 228 is hardware and / or firmware that can use SRAM or other suitable memory to input commands. Therefore, ring buffer 228 can also be referred to as an SRAM command (CMD) log. Ring buffer 228 can also be referred to as a circular buffer for buffering only. Buffer 228 can store the timestamp of each command, each of commands 232, and / or variable parameters used individually or collectively for command 232.

[0036] Block 226 can determine whether any given command from command stream 221 puts the memory device into an idle state. For example, block 227 from block 226 is hardware and / or firmware that can determine whether any given command is a sleep command or a different specific command that puts the memory device into an idle state. The sleep command can also be used to train ANN 225. For example, the sleep command can trigger the training of ANN 225. ANN 225 can learn to expect a sleep command within a time window if it receives a certain number of commands (e.g., a command sequence) from command stream 221 and stored in buffer 228. The time when the sleep command is received can also be used to determine whether the ANN's prediction is accurate. ANN 225 can be trained based on the aforementioned considerations. Command 232, timestamps, and / or variable parameters can be provided as inputs to ANN 225 for training or can be used to determine the output of ANN 225.

[0037] Block 226 may also include block 229, which determines whether a garbage collection event was successfully executed. Block 229 is hardware and / or firmware that may be referred to as a successful subscription status information block. As described herein, executing a garbage collection event describes the execution of operations corresponding to the garbage collection event. If the execution of the garbage collection event is not interrupted, then the garbage collection event can be successfully executed. The host may provide commands to interrupt the garbage collection event by placing the memory device into an active state after the memory device has been placed into an idle state, or by providing any command other than the command to place the memory device into an idle state after the memory device has been placed into an idle state. Block 229 may identify the command to interrupt the garbage collection event. Block 229 may also store the identifier using, for example, a register.

[0038] If a garbage collection event is successfully executed (e.g., completed without interruption), then block 229 may store an indication that the garbage collection event was successfully completed. The indication of successful completion can be used to train ANN 225. For example, if block 229 indicates that the garbage collection event has been executed as completed, then ANN 225 can be trained by using weights and biases in ANN 225 to generate the correct duration for the execution of the garbage collection event. Block 229 may also indicate that a garbage collection event is not executed as completed. ANN 225 can also be trained by updating the weights and biases, using the indication to identify that the duration generated for the execution of the garbage collection event is inappropriate.

[0039] Command 232 can be provided to ANN 225 for training. Command 232, timestamps, and variable parameters can represent the use of memory devices. ANN 225 can use command 232 to generate timing distribution curves based on the use of memory devices. Although ANN 225 is used in the examples described herein, specific AI implementations are not limited to ANN 225, but may include different machine learning systems that can be used to generate duration and confidence intervals.

[0040] The use of memory devices can describe how the memory devices are used or how the system is used. For example, a computing system primarily used for data processing will exhibit different usage patterns compared to a computing system used, for example, for streaming video or playing video games. The use of the system can affect the use of memory devices as well as the commands 232, timestamps, and / or variable parameters received by garbage collection block 220.

[0041] The timing distribution curve may include a triggering event and the duration of the time for executing the garbage collection event. The timing distribution curve may be integrated into ANN 225. For example, the ANN may include weights and bias values ​​that represent the timing distribution curve. The triggering event identified by ANN 225 may be a dynamic value that differs from the static value utilized by circuit system 233-1. The triggering event may include a sleep command and / or different commands that may be included before or after the sleep command. For example, in a particular use, a specific number of commands may be received before the sleep command is received. ANN 225 can learn the command sequence and can trigger a garbage collection event in response to identifying the command sequence, even if the sleep command has not been identified at the time the garbage collection event is triggered. Thus, ANN 225 can learn that the sleep command is expected and that the garbage collection event can be triggered over a longer duration for execution compared to the triggering of the garbage collection event generated by circuit system 233-1.

[0042] The confidence interval check 230 is hardware and / or firmware that determines whether the confidence interval generated by ANN 225 is greater than a threshold. If the confidence interval is greater than the threshold, then ANN 225 has sufficient confidence in the duration of execution for the garbage collection event and the start time of the garbage collection event triggering to guarantee the triggering. The confidence interval check 230 may provide block 223 with signals that can be used to determine whether and / or for how long a garbage collection event should be triggered. Garbage control block 220 may generate a signal 231 for performing garbage collection based on the results determined by circuit systems 233-1 and 233-2. For example, if the confidence interval generated by ANN 225 is greater than the threshold, then the duration and triggering of the garbage collection event generated by ANN 225 may be used over the triggering and duration generated by circuit system 233-1. In various instances, block 223 may use the duration and / or time provided by ANN 225 for triggering the garbage collection event to determine when to trigger the garbage collection event.

[0043] Figure 3 A flowchart 340 illustrates an example of training an artificial neural network for garbage collection according to several embodiments of the present disclosure. At 321, the host may provide several commands that can constitute a command stream. The host may provide the commands to a memory device. At 342, a determination may be made regarding whether to trigger a default garbage collection in response to the commands. Default garbage collection may refer to triggering a garbage collection event using static values ​​as described above. For example, a default garbage collection may be triggered using circuit system 233-1 and timer 224. The determination of whether to trigger a default garbage collection in response to the commands may be part of a default garbage collection timer.

[0044] At 341, the command can be processed. In response to processing the command, and at 343, a determination can be made regarding whether the command is a sleep command. If the command is a sleep command, then the ANN can be trained using a circular buffer at 350. For example, a sleep command could indicate that ANN training can be performed in the background. At 342, a determination can be made regarding... Figure 2 The circuit system 233-1 determines whether block 223 can trigger garbage collection using timer 224. The determination of garbage collection triggering and the command to hibernate at 342 can be used at 350 to train the ANN using a ring buffer.

[0045] At 344, commands received from host 321 can also be recorded. For example, the command, the timestamp corresponding to the command, and the variable parameters corresponding to the command can be stored in a ring buffer. At 345, and in response to the recording of the command, timestamp, and variable parameters, the ANN can generate start and stop predictions, which have been previously described as the duration for executing garbage collection events. These predictions can be described as start and stop predictions because the ANN can generate predictions of when to start and when to stop executing garbage collection events. Stop and start predictions can also be referred to as predictions under the condition that the ANN is predicting garbage collection events that can be executed uninterruptedly if the start time is set to start and the stop time is set to stop.

[0046] The start and stop predictions generated at point 345 and the predictions made at point 342. Figure 2 The determination of whether the circuit system 233-1 indicates that block 223 can use timer 224 to trigger garbage collection can be used at 346 to determine whether the garbage collection confidence interval is greater than a threshold. The determination of whether the confidence interval is greater than the threshold can be used at 347 to determine whether to use the start and stop predictions generated at 345 to trigger the execution of the garbage collection event. The result of the garbage collection event execution can be used at 348 to determine whether the garbage collection event execution was successful. If the garbage collection event is executed without interruption, then the garbage collection event execution is successful. The determination of whether the garbage collection event was successfully executed can also be used at 350 for training the ANN.

[0047] The determination at point 349, checking if the confidence interval is greater than a threshold, can be used to determine if the ANN correctly predicts that the memory device will be placed in an idle state. The ANN correctly predicts that the memory device will be placed in an idle state if a sleep command is received between the start and stop times of the ANN prediction. The determination made at point 349 can be used at point 350 to further train the ANN. For example, the outputs of points 348 and 349 can be used to positively or negatively enhance the ANN prediction. In various instances, the outputs of points 342, 343, 348, and 349 can be used to positively or negatively enhance the ANN prediction at point 350. The outputs of points 342, 343, 348, and 349 can contain either positive or negative outputs. For example, the output of point 349 can contain a determination of whether the AI ​​predicted correctly or incorrectly.

[0048] Figure 4 This illustration provides example flowcharts of a method 450 for performing garbage collection according to several embodiments of the present disclosure. The method 450 can be executed by processing logic, which may include hardware (e.g., processing device, circuit system, dedicated logic, programmable logic, microcode, device hardware, integrated circuit, etc.), software (e.g., instructions that run or execute on the processing device), or a combination thereof. In some embodiments, by Figure 1 The control circuit system (e.g., controller) 105 executes method 450. Although shown in a specific order or sequence, the order of the processes may be modified unless otherwise specified. Therefore, it should be understood that the illustrated embodiments are merely examples, and the illustrated processes may be performed in different orders, and some processes may be performed in parallel. Furthermore, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are also possible.

[0049] At point 451, an artificial neural network using a memory device can generate a first prediction. At point 452, an artificial neural network can generate a first confidence interval for the first prediction. The artificial neural network can generate both the first prediction and the first confidence interval simultaneously.

[0050] At 453 and in response to determining that a first confidence interval is greater than a threshold, a first example can be used to trigger garbage collection on the memory device using a first prediction. This first prediction can be used to predict the start time of triggering garbage collection and to infer the timing of garbage collection.

[0051] At position 454, an artificial neural network can be used to generate a second prediction. At position 455, an artificial neural network can be used to generate a second confidence interval for the second prediction.

[0052] At 456, in response to determining that the first confidence interval is no greater than a threshold, a second example allows for triggering garbage collection of the memory device without using the first and second predictions. The use of the system or memory device can vary between the time the first prediction is generated and the time the second prediction is generated. Under the condition of the changed use, the ANN may have a lower confidence in the second prediction compared to the first prediction. When the ANN has a lower confidence in the second prediction, the controller can be used to trigger garbage collection.

[0053] In various situations, a first plurality of commands may be received at the controller of the memory device. These first plurality of commands may define a first use of the memory device. A network may be trained using these first plurality of commands, wherein the trained network is used to generate a first prediction and a first confidence level.

[0054] A second set of commands may also be received at the controller of the memory device. These second set of commands may define a second use of the memory device. An artificial neural network may be trained using these second set of commands, wherein the trained artificial neural network is used to generate a second prediction and a first prediction.

[0055] In several instances, the network can be trained using multiple commands, corresponding timestamps, and / or variable parameters corresponding to multiple commands. These commands, timestamps, and / or variable parameters can be further used to define the use of the memory device.

[0056] The memory device can receive a command from the host to interrupt garbage collection for the first instance. The network can be trained using the command, multiple commands, multiple timestamps, and variable parameters corresponding to the commands. For example, the memory device can use the interruption of garbage collection execution to train an artificial neural network. The artificial neural network can be corrected so that in future instances, the duration of garbage collection is shorter than the previous duration.

[0057] In various instances, a controller coupled to the memory device can trigger a first instance of garbage collection of the memory device using the controller. The controller can also generate predictions using its artificial neural network. A confidence interval for the predictions can be generated using the artificial neural network. In response to determining that the confidence interval is greater than a threshold, a second instance of garbage collection of the memory device can be triggered using the controller, wherein the first instance of garbage collection is triggered prior to the second instance of garbage collection. As used herein, the controller can trigger garbage collection by providing a signal.

[0058] The controller can be further configured to trigger a second instance of garbage collection based on the prediction in response to determining that the confidence interval is greater than a threshold. Alternatively, a second instance of garbage collection can be triggered after a duration equal to the prediction has elapsed, also in response to determining that the confidence interval is greater than the threshold.

[0059] A first instance of garbage collection can be triggered based on several static values. These static values ​​may include the duration of idle time and / or the duration of the first instance of garbage collection. For example, the static values ​​may describe the general duration of garbage collection and / or the start time of garbage collection. For example, the use of memory devices can be modeled using an ANN.

[0060] In various scenarios, the controller coupled to the memory device can be configured to receive a command stream comprising multiple commands, wherein the command stream is received at the controller and garbage collection of the memory device is triggered using a first circuit system. Predetermined commands can be identified from the command stream at the controller. In response to identifying the predetermined commands, a network can be trained using the multiple commands. Garbage collection of the memory device can be triggered using the network. The multiple commands can be stored in a ring buffer of the controller.

[0061] Figure 5 This disclosure describes an example computer system 590 that may be operated within embodiments of the present disclosure. In various embodiments, computer system 590 may correspond to including, being coupled to, or utilizing a memory subsystem (e.g., Figure 1 The memory device 103) or the controller that can be used to execute the controller (e.g., Figure 1 The system operating the control circuit system 105) (e.g., Figure 1 (Computing system 100).

[0062] System 590 may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular telephone, network appliance, server, network router, switch or bridge, or any machine capable of executing (sequentially or otherwise) a set of instructions specifying actions to be taken by said machine.

[0063] The example computer system 590 includes a processing device 591, a main memory 593 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 597 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage system 598, which communicate with each other via a bus 596.

[0064] Processing device 591 represents one or more general-purpose processing devices, such as microprocessors, central processing units, etc. More specifically, the processing device may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor implementing other instruction sets, or a combination of instruction sets. Processing device 591 may also be one or more special-purpose processing devices, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, etc. Processing device 591 is configured to execute instructions 592 to perform the operations and steps discussed herein. Computer system 590 may additionally include a network interface device 594 for communication over a network 595.

[0065] The data storage system 598 may include a machine-readable storage medium 599 (also called a computer-readable medium) on which one or more instruction sets 592 or software embodying any or more of the methods or functions described herein are stored. The instructions 592 may also reside wholly or at least partially in main memory 593 and / or processing device 591 during execution by computer system 590, which also constitute machine-readable storage media.

[0066] In one embodiment, instruction 592 includes implementing the corresponding Figure 1 The machine-readable storage medium 599 is shown as a single medium in the exemplary embodiment, but the term "machine-readable storage medium" should be considered to include a single medium or multiple media storing one or more sets of instructions. The term "machine-readable storage medium" should also be considered to include any medium capable of storing or encoding a set of instructions executable by a machine and causing the machine to perform any one or more of the methods of this disclosure. The term "machine-readable storage medium" should therefore be considered to include, but is not limited to, solid-state memory, optical media, and magnetic media.

[0067] As used herein, “several things” can refer to one or more of such things. For example, “several memory devices” can refer to one or more memory devices. “Multiple things” means two or more. Additionally, designations such as “N” as used herein, especially with respect to reference numerals in the drawings, indicate that such specified particular features may be included with several embodiments of this disclosure.

[0068] The figures in this document follow a numbering rule, wherein the first one or more digits correspond to the figure number, and the remaining digits identify elements or components in the figure. Similar elements or components between different figures can be identified by using similar digits. As will be understood, elements shown in various embodiments herein may be added, interchanged, and / or removed to provide several additional embodiments of this disclosure. Furthermore, the scale and relative proportions of the elements provided in the figures are intended to illustrate various embodiments of this disclosure and are not intended to be limiting.

[0069] While specific embodiments have been shown and described herein, those skilled in the art will understand that arrangements calculated to achieve the same results may replace the specific embodiments shown. This disclosure is intended to cover modifications or variations of various embodiments of this disclosure. It should be understood that the above description has been carried out illustratively and not restrictively. Combinations of the above embodiments and other embodiments not specifically described herein will be apparent to those skilled in the art upon review of the above description. The scope of the various embodiments of this disclosure includes other applications in which the above structures and methods are used. Therefore, the scope of the various embodiments of this disclosure should be determined by reference to the appended claims and the full scope of the equivalents granted thereto.

[0070] In the foregoing detailed embodiments, various features are grouped together in a single embodiment for the purpose of simplification. This approach of the present disclosure should not be construed as reflecting an intention that the disclosed embodiments must use more features than expressly stated in each claim. In fact, as reflected in the appended claims, the subject matter of the invention lies in less than all the features of a single disclosed embodiment. Therefore, the appended claims are hereby incorporated into the detailed embodiments, wherein each claim is, in itself, a separate embodiment.

Claims

1. An apparatus for performing prediction-based waste collection, the apparatus comprising: Memory devices; A controller, coupled to the memory device and configured to: A first example of triggering garbage collection of the memory device based on static values; Predicting the duration of the second example of garbage collection; Generate the confidence interval of the prediction to determine whether the prediction that the memory device will be placed in an idle state is correct; and In response to determining that the confidence interval is greater than a threshold, a second instance of garbage collection is triggered based on the prediction, wherein the first instance of garbage collection is triggered before the second instance of garbage collection.

2. The device of claim 1, wherein the controller is further configured to trigger a second instance of garbage collection using the same trigger mechanism as the first instance used to trigger the garbage collection in response to determining that the confidence interval is greater than the threshold.

3. The device of claim 1, wherein the controller is further configured to trigger a second instance of garbage collection after a duration equal to the prediction has elapsed in response to determining that the confidence interval is greater than the threshold.

4. The device of claim 1, wherein the static value describes the duration of the idle time of the first example in which the garbage collection is performed.

5. The device of claim 4, wherein the static value describes the duration of the first example of waste collection.

6. The device of claim 1, wherein the controller further comprises an artificial neural network configured to generate the prediction and the confidence interval.

7. The device of claim 6, wherein the first example of triggering the garbage collection without using the artificial neural network.

8. The device of claim 6, wherein the controller is further configured to model the use of the memory device using the artificial neural network.

9. A method for performing prediction-based garbage collection, the method comprising: An artificial neural network using a memory device generates a first prediction of the duration of a garbage collection event. The artificial neural network is used to generate a first confidence interval for the first prediction to determine whether the prediction that the memory device will be placed in an idle state is correct; In response to determining that the first confidence interval is greater than a threshold of the memory device, a first example of triggering garbage collection using the first prediction; The artificial neural network using the memory device generates a second prediction; The artificial neural network is used to generate a second confidence interval for the second prediction; and A second example of triggering garbage collection of the memory device without using the first prediction and the second prediction in response to determining that the second confidence interval is not greater than the threshold.

10. The method of claim 9, further comprising receiving a first plurality of commands at a controller of the memory device including the artificial neural network, wherein the first plurality of commands define a first use of the memory device.

11. The method of claim 10, further comprising training the artificial neural network using the first plurality of commands, wherein the trained artificial neural network is used to generate the first prediction and the first confidence level.

12. The method of claim 10, further comprising receiving a second plurality of commands at the controller of the memory device, wherein the second plurality of commands define a second use of the memory device.

13. The method of claim 12, further comprising training the artificial neural network using the second plurality of commands, wherein the trained artificial neural network is used to generate the second prediction and the first prediction.

14. The method of claim 9, further comprising training the artificial neural network using a plurality of commands, a plurality of timestamps, and a plurality of variable parameters corresponding to the plurality of commands.

15. The method of claim 14, further comprising: Receive a command to interrupt the first instance of garbage collection; and The artificial neural network is trained using the command, the plurality of commands, the plurality of corresponding timestamps, and the plurality of variable parameters corresponding to the plurality of commands.

16. An apparatus for performing prediction-based waste collection, the apparatus comprising: Memory devices; A controller, coupled to the memory device and configured to: Receive a command stream comprising multiple commands, wherein the command stream is received at the controller and wherein garbage collection of the memory device is triggered using the controller; Identify the predefined command from the command stream; and In response to identifying the predetermined command, the artificial neural network implemented in the controller is trained using the plurality of commands. The artificial neural network is used to trigger the garbage collection of the memory device.

17. The device of claim 16, wherein the controller is further configured to store the plurality of commands in a ring buffer.

18. The device of claim 16, wherein the predetermined command is a sleep command.

19. The device of claim 16, wherein the controller is further configured to: The artificial neural network is used to generate predictions; Determine whether the confidence interval of the prediction is greater than a threshold; In response to determining that the confidence interval is greater than the threshold, garbage collection of the memory device is triggered; Store the determination of whether the garbage collection was successfully performed; The artificial neural network is trained using the plurality of commands and the determination of whether the garbage collection was successfully executed.

20. The device of claim 16, wherein the controller is further configured to: The artificial neural network is used to generate a prediction of when the predetermined command will be received; Receive multiple additional commands; The accuracy of the prediction is determined based on whether the additional commands include the predetermined command. The artificial neural network is trained using the determination of whether the plurality of commands and the predetermined command are included in the additional plurality of commands.

Citation Information

Patent Citations

  • Memory system and operation method thereof

    CN111435335A

  • Optimization of quality of service of data storage device

    CN113269321A