An apparatus includes a non-volatile memory and a controller coupled to the non-volatile memory. The controller includes an interface configured to send first data to be stored to the non-volatile memory. The controller further includes a control circuit configured to generate updated control information based on storing of the first data to the non-volatile memory. The interface is further configured to concurrently send second data and the updated control information to be stored at the non-volatile memory. The non-volatile memory is configured to store the second data and the updated control information in a non-blocking manner
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method of operation of a non-blocking control sync operation in a data storage device, comprising: detecting, by a controller, a trigger event for the non-blocking control sync operation for user data, wherein the trigger event is determined by reaching a threshold time duration, wherein the threshold time duration comprises a time since previously updating and storing control information; detecting a trigger event for the non-blocking control sync operation; when the trigger event is detected, creating the log file that includes control information updates which correspond to processed memory commands, wherein creating the log file comprises generating a mapping table of the updated control information; providing, by the controller, barrier commands to a plurality of command queues of the data storage device; generating, by a control circuit, an indication as a response to detecting the trigger event; providing, by a flash translation layer (FTL), the indication to a plurality of processors; generating, by the plurality of processors, a barrier command, wherein the barrier command propagates through all of the plurality of command queues until reaching the one or more memory dies; propagating the barrier commands through all of the plurality of command queues; accumulating, by the controller, response messages for completion of the barrier commands from all of the plurality of command queues of the data storage device; sending, by the controller, a log file including a mapping table data to one or more memory dies maintaining a coherence of data and control information; and writing the user data and the log file to the one or more memory dies continuously during the non-blocking control sync operation.
Data storage device control synchronization. This invention addresses maintaining coherence between user data and control information in a non-blocking manner within a data storage device. The method involves detecting a trigger event for a control synchronization operation, specifically when a predetermined time duration has elapsed since the last update and storage of control information. Upon detecting this trigger event, a log file is created. This log file contains updates to control information that correspond to processed memory commands, and its creation includes generating a mapping table of these updated control information. Barrier commands are then provided by a controller to multiple command queues within the data storage device. A control circuit generates an indication in response to the trigger event, which is then provided to multiple processors by a flash translation layer. The processors generate a barrier command that propagates through all command queues to the memory dies. The controller accumulates response messages confirming the completion of these barrier commands from all command queues. Finally, the controller sends the log file, including the mapping table data, to the memory dies to maintain data and control information coherence, with user data and the log file being written continuously to the memory dies during this non-blocking synchronization process.
2. The method of claim 1 , further comprising: transmitting a set of memory commands to all of the plurality of command queues after providing the barrier command, wherein the set of memory commands are written to the one or more memory dies continuously including during the non-blocking control sync operation.
This invention relates to memory command processing in systems with multiple command queues and memory dies. The problem addressed is ensuring synchronized execution of memory commands across multiple queues while maintaining continuous data flow to memory dies, avoiding performance bottlenecks caused by traditional blocking synchronization mechanisms. The method involves a system with multiple command queues and one or more memory dies. A barrier command is provided to all command queues, which acts as a synchronization point. After the barrier command is issued, a set of memory commands is transmitted to all command queues. These memory commands are written to the memory dies continuously, even during the non-blocking control synchronization operation. This ensures that memory operations proceed without interruption while synchronization is maintained across the queues. The barrier command coordinates the execution of subsequent commands, allowing the system to handle memory operations efficiently without stalling the data flow to the memory dies. The continuous writing during synchronization prevents performance degradation that would occur with traditional blocking synchronization methods. This approach is particularly useful in high-performance computing environments where minimizing latency and maintaining data throughput are critical.
3. The method of claim 1 , further comprising: setting a threshold according to a number of all of the plurality of command queues; receiving, by the controller, one or more completion messages; adjusting a value indicated by a counter in response to receiving each of one or more completion messages; comparing the value to the threshold to determine a number satisfies the threshold; when a number of the one or more completion messages satisfies the threshold, sending the log file to the one or more memory dies; and writing the log file to the one or more memory dies.
This invention relates to memory systems, specifically managing command queues and log file handling in storage devices. The problem addressed is efficiently tracking command completions and determining when to write log files to memory dies, ensuring data integrity and performance. The method involves monitoring a plurality of command queues in a memory system. A threshold is set based on the total number of these queues. A controller receives completion messages from the memory system, incrementing a counter for each message. The counter value is compared to the threshold. Once the number of completion messages meets or exceeds the threshold, a log file is sent to and written into one or more memory dies. This ensures log files are only written when a sufficient number of commands have completed, optimizing resource usage and reducing unnecessary write operations. The method may also include dynamically adjusting the threshold based on system conditions or workload characteristics to further improve efficiency. The invention enhances reliability and performance in memory systems by synchronizing log file writes with command completions.
4. The method of claim 1 , further comprising: providing a plurality of processors, wherein each processor of the plurality of processors provides the barrier command propagated through all of the plurality of command queues, wherein the barrier command has corresponding barrier identification and threshold numbers.
This invention relates to parallel processing systems where multiple processors coordinate execution using barrier commands. The problem addressed is ensuring synchronization between processors in a distributed or multi-core system, where tasks must wait for all processors to reach a certain point before proceeding. The solution involves a method for propagating barrier commands through command queues to synchronize processors. Each processor in the system receives and processes these barrier commands, which include unique barrier identification and threshold numbers to track synchronization points. The barrier command ensures that all processors reach a specified execution stage before allowing any to proceed, preventing race conditions and ensuring consistent task execution. The system dynamically manages these barriers, allowing flexible synchronization across different stages of parallel processing. This method improves efficiency in parallel computing by reducing idle time and ensuring proper coordination between processors. The invention is particularly useful in high-performance computing, distributed systems, and multi-core architectures where precise synchronization is critical.
5. The method of claim 1 , further comprising: collecting messages from all of the plurality of command queues for adjusting a plurality of counter values.
This invention relates to a system for managing command queues in a distributed computing environment, addressing the challenge of efficiently processing and tracking commands across multiple queues. The system includes a plurality of command queues, each configured to receive and store commands for execution by a processing unit. A monitoring module continuously tracks the status of these queues, including the number of pending commands and their execution progress. The system also maintains a set of counters that track various metrics, such as the number of commands processed, failed, or pending in each queue. The counters are dynamically adjusted based on the messages collected from the queues, ensuring real-time updates to the system's operational state. This adjustment mechanism allows the system to optimize command distribution, prioritize critical tasks, and balance workloads across the queues. The invention improves efficiency by providing accurate, up-to-date metrics for decision-making and resource allocation in distributed command processing environments.
6. The method of claim 1 , further comprising: providing multiple number of die managers, wherein each die manager is configured to receive messages from a die and increment a counter.
This invention relates to a system for managing and processing messages from multiple integrated circuit dies, particularly in high-performance computing or data processing environments where efficient message handling is critical. The problem addressed is the need to accurately track and process messages from numerous dies in a scalable and reliable manner, ensuring that message data is properly counted and managed without overwhelming system resources. The system includes a plurality of die managers, each assigned to one or more dies. Each die manager is configured to receive messages transmitted by its assigned die(s) and increment a counter in response to each received message. This counter tracks the number of messages processed, allowing for monitoring, load balancing, or error detection. The die managers operate independently, enabling parallel processing of messages from different dies, which improves system throughput and reduces latency. The counters can be used to generate statistics, detect anomalies, or trigger further actions based on message volume. The invention ensures that message data from multiple dies is efficiently collected and processed, with each die manager handling its assigned dies autonomously. This modular approach allows for easy scalability, as additional die managers can be added to accommodate more dies without modifying existing components. The system is particularly useful in applications requiring high-speed data processing, such as distributed computing, telecommunications, or real-time analytics.
7. A method of operation of a data storage device, comprising: sending, by a controller, first data to a non-volatile memory of the data storage device; storing the first data at the non-volatile memory of the data storage device; detecting, by a controller, a trigger event, wherein the trigger event corresponds with a threshold time duration, wherein the threshold time duration comprises a time since previously updating and storing control information; providing, by a flash translation layer (FTL), an indication to a plurality of processors, wherein the plurality of processors generates a barrier command, and wherein the controller sends the barrier command to the non-volatile memory to be executed; generating, by the controller, an updated control information based on the storing of the first data to the non-volatile memory, wherein the generated updated control information includes a mapping table; in response to the sending of the first data to the non-volatile memory, generating, by the controller, an updated mapping table; after generating the updated mapping table and executing the barrier command, concurrently sending, by the controller, the updated mapping table and second data to the non-volatile memory; and storing, by the controller, the updated mapping table and the second data in a non-blocking operation.
The invention relates to data storage devices, specifically improving the efficiency of updating control information in non-volatile memory. The problem addressed is the delay and inefficiency in maintaining up-to-date mapping tables and control information, which can lead to data inconsistency or performance bottlenecks. The solution involves a method for optimizing the timing and execution of control information updates in a data storage device. The method begins by sending first data to a non-volatile memory and storing it. A controller detects a trigger event, such as a threshold time duration since the last update of control information, which includes a mapping table. Upon detection, a flash translation layer (FTL) signals multiple processors to generate a barrier command, which the controller sends to the non-volatile memory for execution. The controller then generates updated control information, including an updated mapping table, based on the stored first data. After generating the updated mapping table and executing the barrier command, the controller concurrently sends the updated mapping table and second data to the non-volatile memory. The storage of both the updated mapping table and the second data occurs in a non-blocking operation, ensuring efficient and timely updates without disrupting other operations. This approach reduces latency and improves the reliability of data storage operations.
8. The method of claim 7 , wherein the second data is sent to the non-volatile memory to initiate a write operation.
A system and method for managing data storage operations in a computing environment, particularly addressing the challenge of efficiently handling data writes to non-volatile memory (NVM) to improve performance and reliability. The invention involves a process where a first set of data is received and processed to determine whether a write operation to the NVM is necessary. If required, a second set of data is generated or derived from the first set, and this second data is then transmitted to the NVM to trigger the write operation. The method ensures that only relevant or optimized data is written to the NVM, reducing unnecessary write cycles and extending the lifespan of the memory. Additionally, the process may include steps to validate or prepare the data before transmission, ensuring data integrity and minimizing errors during storage. The system may also monitor the NVM's status to optimize write operations further, such as by adjusting timing or prioritizing critical data. This approach is particularly useful in systems where NVM endurance and performance are critical, such as in solid-state drives (SSDs) or embedded storage solutions.
9. The method of claim 7 , wherein the updated mapping table is sent to the non-volatile memory to initiate a non-blocking control sync (CS) operation.
A method for managing data storage in a system with volatile and non-volatile memory addresses the challenge of efficiently updating mapping tables while minimizing performance impact. The method involves maintaining a mapping table that translates logical addresses to physical addresses in non-volatile memory. When a write operation occurs, the system updates the mapping table in volatile memory to reflect the new data location. To ensure data integrity, the updated mapping table is then sent to non-volatile memory to initiate a non-blocking control sync (CS) operation. This operation allows the system to continue processing other tasks while the mapping table is being synchronized to non-volatile memory, reducing latency and improving overall system performance. The method ensures that the mapping table remains consistent between volatile and non-volatile memory without disrupting ongoing operations. This approach is particularly useful in systems where low-latency performance is critical, such as solid-state drives or embedded systems. The non-blocking nature of the sync operation prevents delays in data access while maintaining data reliability.
10. The method of claim 7 , further comprising: receiving a completion acknowledgment in response to sending the first data, wherein the updated mapping table is generated in response to the completion acknowledgement.
A system and method for managing data storage in a distributed computing environment addresses the challenge of efficiently tracking and updating data mappings across multiple storage nodes. The invention involves a distributed storage system where data is stored across multiple nodes, and a mapping table is used to track the location of data blocks. The method includes sending a first data block from a source node to a target node, updating a mapping table to reflect the new location of the data block, and receiving a completion acknowledgment from the target node confirming successful storage. The updated mapping table is generated only after receiving this acknowledgment, ensuring data consistency. The system may also include mechanisms for handling failures, such as retrying the data transfer if the acknowledgment is not received within a specified time. The method ensures reliable data placement and consistency in distributed storage systems by verifying successful storage before updating the mapping table. This approach reduces the risk of data loss or corruption due to incomplete transfers. The invention is particularly useful in large-scale distributed storage systems where data is frequently moved or replicated across nodes.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
February 27, 2019
March 29, 2022
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.