Search

US-12625820-B2 - Circular buffer partitions

US12625820B2US 12625820 B2US12625820 B2US 12625820B2US-12625820-B2

Abstract

Methods, systems, and devices for circular buffer partitions are described. A memory device may include one or more sets of memory cells configured to operate as circular buffers. In some cases, upon receiving w rite command, the memory device (e.g., a controller of the memory device) may write data to the circular buffer based on a location of a cursor (e.g., a header pointer). After a write operation, the cursor may be incremented such that, upon receiving a subsequent write command, data may be written to the circular buffer beginning at the location of the cursor. In some examples, the circular buffer may be associated with one or more partitions (e.g., snapshot partitions) such that, upon the occurrence of a triggering event, a subset of data stored to the circular buffer may be stored to the partition (e.g., to a different portion of the memory device).

Inventors

  • Olivier DUVAL

Assignees

  • MICRON TECHNOLOGY, INC.

Dates

Publication Date
20260512
Application Date
20220317

Claims (20)

  1. 1 . A method, comprising: receiving a first command to establish a partition and one or more second partitions within a memory device, wherein the first command indicates a quantity of partitions of the one or more second partitions; establishing the partition within the memory device to operate as a circular buffer, wherein the circular buffer comprises a first set of physical block addresses, and wherein the circular buffer is associated with a first set of logical block addresses that correspond to the first set of physical block addresses within the partition; establishing a second partition of the one or more second partitions within the memory device in response to the first command, wherein the second partition comprises a second set of blocks of the memory device, and wherein the second set of blocks comprises fewer memory blocks than a first set of blocks of the first set of physical block addresses; storing first data to the first set of blocks of the first set of physical block addresses of the circular buffer based at least in part on a location of a cursor associated with the partition, wherein the first data is stored sequentially to the first set of blocks beginning at a first physical block; identifying a triggering event based at least in part on storing the first data to the first set of blocks of the first set of physical block addresses, wherein the triggering event is associated with a sensor that is external to the memory device; and storing a subset of the first data to the second set of blocks of the memory device based at least in part on identifying the triggering event, wherein the second set of blocks are associated with a second set of physical block addresses, and wherein the subset of the first data is maintained in the second set of blocks of the memory device when the first data stored to the first set of blocks is overwritten.
  2. 2 . The method of claim 1 , wherein the first command comprises a size of the partition in physical blocks and an indication of the first set of logical block addresses, wherein establishing the partition is based at least in part on receiving the first command.
  3. 3 . The method of claim 1 , further comprising: receiving a second command that comprises a request for the location of the cursor associated with the partition based at least in part on establishing the partition within the memory device; and transmitting, to a host device, signaling comprising the location of the cursor associated with the partition based at least in part on receiving the second command.
  4. 4 . The method of claim 1 , further comprising: receiving a third command that comprises an indication to store the subset of the first data to the second set of blocks.
  5. 5 . The method of claim 1 , further comprising: determining that the cursor identifies a first logical block address included in the first set of logical block addresses, wherein the first logical block address corresponds to the first physical block included in the first set of blocks, wherein the first data is stored sequentially to the first set of blocks beginning at the first physical block based at least in part on determining that the cursor identifies the first logical block address.
  6. 6 . The method of claim 5 , wherein the first set of blocks includes at least the first physical block and a second physical block, the method further comprising: updating the location of the cursor to be associated with a third physical block of the first set of blocks based at least in part on storing the first data to the first set of blocks.
  7. 7 . The method of claim 1 , wherein the second partition is located in a different position in the memory device than the partition.
  8. 8 . The method of claim 7 , further comprising: identifying a slot of the second partition to store the subset of the first data, the slot comprising the second set of blocks, wherein storing the subset of the first data is based at least in part on identifying the slot of the second partition.
  9. 9 . The method of claim 7 , further comprising: overwriting information stored in the second set of blocks based at least in part on slots of the second partition storing information.
  10. 10 . The method of claim 7 , further comprising: identifying that a location of a second cursor associated with the second partition points to a first block of the second set of blocks, wherein storing the subset of the first data is based at least in part on identifying that the location of the second cursor points to the first block of the second set of blocks.
  11. 11 . The method of claim 1 , further comprising: overwriting the first data stored to the first set of blocks after storing the subset of the first data to the second set of blocks.
  12. 12 . The method of claim 1 , further comprising: identifying that the location of the cursor points to a first block the first set of blocks, wherein storing the first data to the first set of blocks is based at least in part on identifying that the location of the cursor points to the first block of the first set of blocks.
  13. 13 . The method of claim 12 , further comprising: receiving, at the memory device, a write command comprising the first data and a logical block address; and determining that the logical block address of the write command is included in the first set of logical block addresses associated with the circular buffer, wherein identifying that the location of the cursor points to the first block of the first set of blocks is based at least in part on determining that the logical block address of the write command is included in the first set of logical block addresses associated with the circular buffer.
  14. 14 . An apparatus, comprising: a memory device comprising a plurality of memory cells; and a controller coupled with the memory device, wherein the controller is configured to cause the apparatus to: receive a first command to establish a partition and one or more second partitions within the memory device, wherein the first command indicates a quantity of partitions of the one or more second partitions; establish the partition within the memory device to operate as a circular buffer, wherein the circular buffer comprises a first set of physical block addresses, and wherein the circular buffer is associated with a first set of logical block addresses that correspond to the first set of physical block addresses within the partition; establish a second partition of the one or more second partitions within the memory device in response to the first command, wherein the second partition comprises a second set of blocks of the memory device, and wherein the second set of blocks comprises fewer memory blocks than a first set of blocks of the first set of physical block addresses; store first data to the first set of blocks of the first set of physical block addresses of the circular buffer based at least in part on a location of a cursor associated with the partition, wherein the first data is stored sequentially to the first set of blocks beginning at a first physical block; identify a triggering event based at least in part on storing the first data to the first set of blocks of the first set of physical block addresses, wherein the triggering event is associated with a sensor that is external to the memory device; and store a subset of the first data to the second set of blocks of the memory device based at least in part on identifying the triggering event, wherein the second set of blocks are associated with a second set of physical block addresses, and wherein the subset of the first data is maintained in the second set of blocks of the memory device when the first data stored to the first set of blocks is overwritten.
  15. 15 . The apparatus of claim 14 , wherein the first command comprises a size of the partition in physical blocks and an indication of the first set of logical block addresses, wherein establishing the partition is based at least in part on receiving the first command.
  16. 16 . The apparatus of claim 14 , wherein the controller is further configured to cause the apparatus to: receive a second command that comprises a request for the location of the cursor associated with the partition based at least in part on establishing the partition within the memory device; and transmit, to a host device, signaling comprising the location of the cursor associated with the partition based at least in part on receiving the second command.
  17. 17 . The apparatus of claim 14 , wherein the controller is further configured to cause the apparatus to: receive a third command that comprises an indication to store the subset of the first data to the second set of blocks.
  18. 18 . The apparatus of claim 14 , wherein the controller is further configured to cause the apparatus to: determine that the cursor identifies a first logical block address included in the first set of logical block addresses, wherein the first logical block address corresponds to the first physical block included in the first set of blocks, wherein the first data is stored sequentially to the first set of blocks beginning at the first physical block based at least in part on determining that the cursor identifies the first logical block address.
  19. 19 . The apparatus of claim 18 , wherein the first set of blocks includes at least the first physical block and a second physical block, and the controller is further configured to cause the apparatus to: update the location of the cursor to be associated with a third physical block of the first set of blocks based at least in part on storing the first data to the first set of blocks.
  20. 20 . The apparatus of claim 14 , wherein the second partition is located in a different position in the memory device than the partition.

Description

FIELD OF TECHNOLOGY The following relates to one or more systems for memory, including circular buffer partitions. BACKGROUND Memory devices are widely used to store information in various electronic devices such as computers, user devices, wireless communication devices, cameras, digital displays, and the like. Information is stored by programming memory cells within a memory device to various states. For example, binary memory cells may be programmed to one of two supported states, often corresponding to a logic 1 or a logic 0. In some examples, a single memory cell may support more than two possible states, any one of which may be stored by the memory cell. To access information stored by a memory device, a component may read (e.g., sense, detect, retrieve, identify, determine, evaluate) the state of one or more memory cells within the memory device. To store information, a component may write (e.g., program, set, assign) one or more memory cells within the memory device to corresponding states. Various types of memory devices exist, including magnetic hard disks, random access memory (RAM), read-only memory (ROM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), static RAM (SRAM), ferroelectric RAM (FeRAM), magnetic RAM (MRAM), resistive RAM (RRAM), flash memory, phase change memory (PCM), 3-dimensional cross-point memory (3D cross point), not-or (NOR) and not-and (NAND) memory devices, and others. Memory devices may be described in terms of volatile configurations or non-volatile configurations. Volatile memory cells (e.g., DRAM) may lose their programmed states over time unless they are periodically refreshed by an external power source. Non-volatile memory cells (e.g., NAND) may maintain their programmed states for extended periods of time even in the absence of an external power source. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 illustrates an example of a system that supports circular buffer partitions in accordance with examples as disclosed herein. FIG. 2 illustrates an example of a system that supports circular buffer partitions in accordance with examples as disclosed herein. FIGS. 3A and 3B illustrate block diagrams that support circular buffer partitions in accordance with examples as disclosed herein. FIG. 4 illustrates an example of a process flow diagram that supports circular buffer partitions in accordance with examples as disclosed herein. FIG. 5 shows a block diagram of a memory system controller that supports circular buffer partitions in accordance with examples as disclosed herein. FIG. 6 shows a flowchart illustrating a method or methods that support circular buffer partitions in accordance with examples as disclosed herein. DETAILED DESCRIPTION A memory system may include one or more memory devices (e.g., not-and (NAND) devices). In some examples, the memory devices may operate in accordance with a black box configuration, which may also be referred to as a sequential write configuration or a strictly sequential write configuration. A black box may be an example of a memory device or a portion of a memory device that allows data (e.g., large quantities of data) to be written continuously and sequentially in a secure manner (e.g., write protected). In some examples, the black box configuration may support high-bandwidth operations and may be implemented to store data (e.g., video data, sensor data) in a continuous manner. For example, a memory device operating according to a black box configuration may use pointers to identify locations to store information instead of using logical addresses and physical addresses. In some cases, a memory device operating in a black box or strictly sequential write configuration may receive an access command (e.g., write command) that may include a logical block address (LBA). The memory device may convert the LBA to a physical address to facilitate data storage using a logical-to-physical (L2P) table. For example, the memory device may convert the LBA associated with data to a physical address and then store the data at the location indicated by the physical address. Storing a L2P table and converting LBAs to physical addresses may consume memory resources (e.g., non-volatile memory cells), take a considerable amount of time, and continuously writing data to memory cells of the memory device may contribute to the aging of the memory device. Specifically, non-volatile memory cells may support a finite quantity of operations during their useful life, and, accordingly, continuously writing data to the cells may adversely affect the useful life of the memory device. Thus, methods to improve the life and efficiency of memory devices that support black box operations may be desired. Techniques, methods, and devices are described herein for improving the life and efficiency of memory devices that support black box operations. For example, the life and efficiency may be improved by partitioning one or more sections of the memory device to operate as a c