US20220214953A1 - Managing memory objects that are assigned a respective designation - Google Patents
Managing memory objects that are assigned a respective designation Download PDFInfo
- Publication number
- US20220214953A1 US20220214953A1 US17/143,481 US202117143481A US2022214953A1 US 20220214953 A1 US20220214953 A1 US 20220214953A1 US 202117143481 A US202117143481 A US 202117143481A US 2022214953 A1 US2022214953 A1 US 2022214953A1
- Authority
- US
- United States
- Prior art keywords
- memory
- designation
- characteristic set
- media
- objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
Definitions
- the present disclosure relates generally to memory objects, and more particularly, to apparatuses, systems, and methods for managing memory objects.
- Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic systems. There are many different types of memory including volatile and non-volatile memory. Volatile memory can require power to maintain its data (e.g., host data, error data, etc.) and includes random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), and thyristor random access memory (TRAM), among others.
- RAM random access memory
- DRAM dynamic random access memory
- SRAM static random access memory
- SDRAM synchronous dynamic random access memory
- TAM thyristor random access memory
- Non-volatile memory can provide persistent data by retaining stored data when not powered and can include NAND flash memory, NOR flash memory, ferroelectric random access memory (FeRAM), and resistance variable memory such as phase change random access memory (PCRAM), resistive random access memory (RRAM), and magnetoresistive random access memory (MRAM), such as spin torque transfer random access memory (STT RAM), among others.
- NAND flash memory NOR flash memory
- FeRAM ferroelectric random access memory
- PCRAM phase change random access memory
- RRAM resistive random access memory
- MRAM magnetoresistive random access memory
- STT RAM spin torque transfer random access memory
- Memory devices may be coupled to a host (e.g., a host computing device) to store data, commands, and/or instructions for use by the host while the computer or electronic system is operating. For example, data, commands, and/or instructions can be transferred between the host and the memory device(s) during operation of a computing or other electronic system.
- a host e.g., a host computing device
- data, commands, and/or instructions can be transferred between the host and the memory device(s) during operation of a computing or other electronic system.
- FIG. 1 is a block diagram in the form of a computing system including a controller and memory devices in accordance with a number of embodiments of the present disclosure.
- FIG. 2 is a block diagram in the form of a computing system including a controller, control circuitry, and memory devices in accordance with a number of embodiments of the present disclosure.
- FIG. 3 is a block diagram representing memory objects in accordance with a number of embodiments of the present disclosure.
- FIG. 4 is a flow diagram representing an example method for managing memory objects in accordance with a number of embodiments of the present disclosure.
- memory objects that are written to a first memory device or a second memory device can be monitored. For instance, a first characteristic set, e.g., including a number of short term characteristics, and a second characteristic set, e.g., including a number of long term characteristics, may be monitored for each of these memory devices. Further, a performance characteristic set for the first memory device and the second memory device may be monitored. Based, at least in part, upon the first characteristic set, the second characteristic set, and the performance characteristic set each of the memory objects may be written to a particular respective location of the first memory device or the second memory device.
- a first characteristic set e.g., including a number of short term characteristics
- a second characteristic set e.g., including a number of long term characteristics
- Writing the memory objects to the particular respective location of the first memory device or the second memory device based, at least in part upon the first characteristic set, the second characteristic set, and the performance characteristic set can help provide that memory objects that are more frequent accessed may be written to memory locations that are relatively faster and/or relatively more reliable, as compared to other memory locations of the first memory device and the second memory device. Additionally, writing the memory objects to the particular respective location of the first memory device or the second memory device based, at least in part upon the first characteristic set, the second characteristic set, and the performance characteristic set, can help provide that memory objects that are less frequent accessed may be written to memory locations that are relatively slower and/or relatively less reliable, as compared to other memory locations of the first memory device and the second memory device.
- each of the plurality of memory objects may be assigned a respective designation based, at least in part, upon the first characteristic set and the second characteristic set.
- the respective designations are selected from a first designation, a second designation, a third designation, and a fourth designation, e.g., to provide four states.
- a memory object having the first designation may be more frequently accessed, e.g., during a short term interval and/or during a long term interval, than a memory object having the second designation, the third designation, or the fourth designation.
- a memory object having the second designation may be more frequently accessed, e.g., during a short term interval and/or during a long term interval, than a memory object having the third designation or the fourth designation.
- memory objects may change designations over time. For instance, two memory objects having the first designation may be combined to form a third memory object have second designation. Similarly, a memory object having the second memory designation may be separated into two memory objects, each having the first designation.
- “memory object” refers to data that can be written to and/or read from a memory device. For instance, a memory object can refer to a contiguously addressed region of data that is uniquely identified on a device and can be read or written.
- managing memory objects' refers to one or more operations, e.g., monitoring a characteristic set, monitoring a performance characteristic set, and writing the memory objects in a particular respective location, among other operations discussed herein.
- FIG. 1 is a block diagram in the form of a computing system 100 including an apparatus including a memory system 104 in accordance with a number of embodiments of the present disclosure.
- an “apparatus” can refer to, but is not limited to, any of a variety of structures or combinations of structures, such as a circuit or circuitry, a die or dice, a module or modules, a device or devices, or a system or systems, for example.
- the memory system 104 can include a host interface 108 , a controller 110 , e.g., a processor, control circuitry, hardware, firmware, and/or software, and a number of memory media devices.
- Memory system 104 can be located a location that is remote, e.g., part of a cloud database, from a host and/or from a location of a user that is accessing the memory system 104 .
- the host 102 can be a host system such as a personal laptop computer, a vehicle, a desktop computer, a digital camera, a mobile telephone, an internet-of-things (IoT) enabled device, or a memory card reader, graphics processing unit, e.g., a video card, among various other types of hosts.
- the host 102 can include a system motherboard and/or backplane and can include a number of memory access devices such as a number of processing resources, e.g., one or more processors, microprocessors, image processor, and/or some other type of controlling circuitry.
- a processor can intend one or more processors, such as a parallel processing system, a number of coprocessors, etc.
- the host 102 can be coupled to a host interface 108 of the memory system 104 by a communication channel 103 .
- an “IoT enabled device” can refer to devices embedded with electronics, software, sensors, actuators, and/or network connectivity which enable such devices to connect to a network and/or exchange data.
- IoT enabled devices include mobile phones, smart phones, tablets, phablets, computing devices, implantable devices, vehicles, home appliances, smart home devices, monitoring devices, wearable devices, devices enabling intelligent shopping systems, among other cyber-physical systems.
- the host 102 can be responsible for executing an operating system for a computing system 100 that includes the memory system 104 . Accordingly, in some embodiments, the host 102 can be responsible for controlling operation of the memory system 104 . For example, the host 102 can execute instructions, e.g., in the form of an operating system, that manage the hardware of the computing system 100 such as scheduling tasks, executing applications, controlling peripherals, etc.
- the memory system can include memory media such as memory media 112 including an array of DRAM memory cells 105 - 1 , memory media 114 including an array of Emerging Memory memory cells 105 - 2 , such as resistance variable, e.g., 3-D Crosspoint (3D XP), memory devices, memory devices that include an array of self-selecting memory (SSM) cells, etc., or any combination thereof, and memory media 116 including an array of NAND memory cells 105 - 3 .
- Resistance variable memory devices can perform bit storage based on a change of bulk resistance, in conjunction with a stackable cross-gridded data access array.
- resistance variable non-volatile memory can perform a write in-place operation, where a non-volatile memory cell can be programmed without the non-volatile memory cell being previously erased.
- self-selecting memory cells can include memory cells that have a single chalcogenide material that serves as both the switch and storage element for the memory cell.
- memory media 112 including the array of DRAM memory cells 105 - 1 and memory media 116 the array of NAND memory cells 105 - 3 are utilized, e.g., the memory media 114 including the array of 3D XP memory cells 105 - 2 is not included.
- a number of embodiments provide that memory media 114 including the array of Emerging Memory cells 105 - 2 and memory media 116 the array of NAND memory cells 105 - 3 are utilized, e.g., memory media 112 including the array of DRAM memory cells 105 - 1 is not included.
- the types of memory media e.g., types of arrays of memory cells, are not limited to the three specifically illustrated, e.g., DRAM 105 - 1 , Emerging Memory 105 - 2 , and/or NAND 105 - 3 , in FIG. 1 , other types of volatile and/or non-volatile memory media types are contemplated.
- the controller 110 , the memory media 112 , 114 , and 116 , and/or the host interface 108 can be physically located on a single die or within a single package, e.g., a managed memory application.
- a plurality of memory media e.g., memory media 112 , 114 , and/or 116 , can be included on a single memory system 104 .
- more than one memory media can include a same type of array of memory cells.
- memory media 112 and 114 can have an array of Emerging Memory cells.
- FIG. 2 is a block diagram in the form of a computing system 201 including multiple memory media types in accordance with a number of embodiments of the present disclosure.
- FIG. 2 illustrates a computing system 201 which includes a host 202 , including a host controller 209 which can be analogous to the host 102 and host controller 109 described in connection with FIG. 1 .
- the memory media 212 , 214 , 216 may each include a respective control circuitry.
- the memory media 212 includes control circuitry 213
- the memory media 214 includes control circuitry 215
- the memory media 216 includes control circuitry 217 . While each memory media shown in FIG.
- control circuitry 213 , 215 , 217 includes a respective control circuitry 213 , 215 , 217 , embodiments are not limited. For instance, embodiments provide that a number of memory media include the control circuitry, while a number of different memory media do not include the control circuitry. Operations discussed herein may be performed by the controller, the control circuitry, or combinations thereof.
- FIG. 3 is a block diagram representing memory objects in accordance with a number of embodiments of the present disclosure.
- memory objects may be assigned a respective designation, i.e. a first designation 350 , a second designation 352 , a third designation 354 , or a fourth designation 356 .
- a memory object may have one of four states.
- the first designation 350 and the second designation 352 may be referred to as generally “hot”, while the third designation 354 and the fourth designation 356 may be referred to as generally “cold”.
- the four designations provide that, in additional to general references of “hot” and “cold”, sub-references can be provided for further distinguishment.
- the first designation 350 may be considered “hot/hot”
- the second designation 352 may be considered “hot/cold”
- the third designation 354 may be considered “cold/hot”
- the fourth designation may be considered “cold/cold”.
- the first designation 350 may be considered to be more hot than the second designation 352
- both the first designation 350 and the second designation 352 may be considered to be more hot than either the third designation 354 or the fourth designation 356 .
- the fourth designation 356 may be considered to be more cold than the third designation 354
- both the fourth designation 356 and the third designation 354 may be considered to be more cold than either the second designation 352 or the first designation 350 .
- memory objects may be assigned a respective designation based upon a first characteristic set and a second characteristic set.
- the first characteristic set can include one or more characteristics including, but not limited to, access frequency, size of the memory object, and an amount of large sequential write traffic versus an amount of small non-sequential write traffic. Characteristics of the first characteristic set can be weighted differently. Weighting of the characteristics of the first characteristic set can change, e.g., with changing workloads, benchmarks, and/or behavior of the host. Characteristics of the first characteristic set can be referred to as short-term characteristics, as compared to characteristics of the second characteristic set.
- Access frequency indicates how often an associated address space is accessed during a particular time interval.
- the particular time interval can have various values, e.g., for different applications. As an example, the particular time interval may be 5 microseconds, 10 microseconds, 1 second, or 1 minute, among other values. Further, embodiments provide that the particular time interval may change over time, e.g., based upon changing workloads, benchmarks, and/or the host data traffic behavior, for instance. Generally, a greater access frequency will make a memory object more hot, as compared to another memory object having a lesser access frequency.
- a memory objects the greatest access frequency will generally have the first designation 350 and memory objects the least access frequency will generally have the fourth designation 356 .
- Memory objects having the second designation 352 will generally have a lesser access frequency as compared to memory objects having the first designation 350 .
- Memory objects having the second designation 352 will generally have a greater access frequency as compared to memory objects having the third designation 354 .
- Memory objects having the third designation 354 will generally have a lesser access frequency as compared to memory objects having the second designation 352 .
- Memory objects having the third designation 354 will generally have a greater access frequency as compared to memory objects having the fourth designation 356 .
- the first characteristic set can include size of the memory object.
- the size of the memory object can correspond to a quantity of bits or other information contained within the memory object. Generally, a smaller size will make a memory object more hot, as compared to another memory object having a greater size. In other words, memory objects having the smallest size will generally have the first designation 350 and memory objects having the largest size will generally have the fourth designation 356 .
- Memory objects having the second designation 352 will generally have a larger size as compared to memory objects having the first designation 350 .
- Memory objects having the second designation 352 will generally have a smaller size as compared to memory objects having the third designation 354 .
- Memory objects having the third designation 354 will generally have larger size as compared to memory objects having the second designation 352 .
- Memory objects having the third designation 354 will generally have a smaller size as compared to memory objects having the fourth designation 356 .
- the first characteristic set can include an amount of large sequential write traffic versus an amount of small non-sequential write traffic.
- memory objects that have a greater amount of small non-sequential write traffic will generally be more hot, as compared to another memory objects that have a greater amount of large sequential write traffic, i.e. memory object that are sequentially or serially accessed.
- memory objects that have greater amounts of small non-sequential write traffic will generally have the first designation 350 and memory objects that have greater amounts of large sequential write traffic will generally have the fourth designation 356 .
- Memory objects having the second designation 352 will have a lesser amount of small non-sequential write traffic than memory objects having the first designation 350 .
- Memory objects having the second designation 352 will generally have a greater amount of small non-sequential write traffic than memory objects having the third designation 354 .
- Memory objects having the third designation 354 will generally have a greater amount of large sequential write traffic than memory objects having the second designation 352 .
- Memory objects having the third designation 354 will generally have a lesser amount of large sequential write traffic than memory objects having the fourth designation 356 .
- the second characteristic set can include one or more characteristics including, but not limited to, access frequency, number of error corrections, and read/write disturbs. Characteristics of the second characteristic set can be weighted differently. Weighting of the characteristics of the second characteristic set can change, e.g., with changing workloads, benchmarks, and/or host data traffic patterns. Characteristics of the second characteristic set can be referred to as long-term characteristics, as compared to characteristics of the first characteristic set, which can be referred to as short-term characteristics. One or more embodiments provide that the second characteristic set is determined during a lifetime of a device.
- access frequency is monitored during a time interval that is larger than access frequency time interval for the first characteristic set.
- the access frequency may be during a lifetime of a device.
- a lower access frequency during the relatively longer time interval will make a memory object more cold, as compared to another memory object having a lesser access frequency during the relatively longer time interval.
- Cold means that a particular memory object has not been accessed for a long duration relative to other memory objects read from a memory device. In other words, memory objects having the lowest access frequency during the relatively longer time interval will generally have the fourth designation 356 .
- Error means that a particular memory object has been accessed frequently relative to other memory objects read from a memory device.
- memory objects having fewer error corrections during the relatively longer time interval will generally have the first designation 350 or the second designation 352
- memory objects having more error corrections during the relatively longer time interval will generally have the fourth designation 356 or the third designation 354 .
- Read/write disturbs are errors that respectively refer to read and write voltages of unread cells being affected by read operations and/or write operations to other cells.
- Embodiments provide that one or more performance characteristic sets may be monitored for each memory device.
- the performance characteristic set may include various parameters and/or statuses associated with a memory device. These parameters and/or statuses may vary over time. These parameters and/or statuses may include access speed, a number of uncorrectable errors associated with a memory device, and/or a number of program/erase cycles associated with the memory device, which may increase over time leading to degradation of the memory device.
- These parameters and/or statuses may include status checks of cards, e.g., memory devices, chips, or other circuitries, and/or status checks of registers, e.g., data structures storing memory addresses and/or memory locations associated with data retrieval and storage of data in a memory device, which may change over time based on varying conditions and/or implementations.
- status checks of cards e.g., memory devices, chips, or other circuitries
- registers e.g., data structures storing memory addresses and/or memory locations associated with data retrieval and storage of data in a memory device, which may change over time based on varying conditions and/or implementations.
- Monitoring the performance characteristic set for each memory device can provide a hierarchical organization of storage blocks. For instance, the monitored performance characteristic set may be utilized to rank storage blocks in terms of speed and/or health, e.g., performance. The speed and/or health, and thus the performance, of storage blocks may change over time. Storage block health may be indicated by remaining service life, e.g., where a relatively greater (longer) remaining service life indicates more health, as compared to a relatively lesser (shorter) remaining service life. Monitoring the performance characteristic set can include incrementing a counter and/or a register, e.g., such that characteristics may be documented and/or recorded for comparison.
- the hierarchical organization of storage blocks can be utilized for performing or refraining from performing a media management operation involving at least one memory object based, at least in part, on the upon the first characteristic set, the second characteristic set, and the performance characteristic set. For instance, various data protection and recovery schemes applied to different storage blocks. As an example, when a media management operation is performed, relatively faster and/or healthier storage blocks may utilize a first data protection and recovery scheme while relatively slower and/or less healthy storage blocks may utilize a second data protection and recovery scheme that is different from the first data protection and recovery scheme. Performing or refraining from performing a media management operation may enhance computing resource allocation and/or power consumption, for instance. As an example, when a media management operation is performed, relatively faster and/or healthier storage blocks may utilize a number of error code correction (ECC) operations, while relatively slower and/or less healthy storage blocks may utilize Redundant Array of Independent NAND (RAIN).
- ECC error code correction
- RAIN Redundant Array of Independent NAND
- One or more embodiments of the present disclosure provide that performing a media management operation involving at least one memory object occurs in response to a determination that the first characteristic set, the second characteristic set, and the performance characteristic set associated with the memory object are each less than a threshold value.
- the threshold value can have various values, e.g., for different applications.
- the threshold value can change over time, e.g., increase or decrease.
- One or more embodiments of the present disclosure provide for refraining from performance of a media management operation involving at least one memory object occurs in response to a determination that the first characteristic set, the second characteristic set, and the performance characteristic set associated with the memory object are each greater than the threshold value.
- Embodiment of the present disclosure provide that memory objects may be written to particular respective locations, e.g. storage blocks, based, at least in part, upon the first characteristic set, the second characteristic set, and the performance characteristic set.
- memory objects having the first designation 350 which may be considered to be “hot/hot”, are more hot than memory objects having the second designation 352 , the third designation 354 , or the fourth designation 356 .
- embodiments provide that memory objects having the first designation 350 are written to particular respective locations that have greater performance, e.g., greater access speed and/or health, than other particular respective locations that memory objects having the second designation 352 , the third designation 354 , or the fourth designation 356 are written to.
- Memory objects having the second designation 352 which may be considered to be “hot/cold”, are more hot than memory objects having the third designation 354 or the fourth designation 356 .
- embodiments provide that memory objects having the second designation 352 are written to particular respective locations that have greater performance, e.g., greater access speed and/or health, than other particular respective locations that memory objects having the third designation 354 or the fourth designation 356 are written to.
- Memory objects having the third designation 354 which may be considered to be “cold/hot”, are more hot than memory objects having the fourth designation 356 .
- embodiments provide that memory objects having the third designation 354 are written to particular respective locations that have greater performance, e.g., greater access speed and/or health, than other particular respective locations that memory objects having the fourth designation 356 are written to.
- Memory objects having the fourth designation 356 which may be considered to be “cold/cold”, are less hot than memory objects having the first designation 350 , the second designation 352 , and the third designation 354 .
- embodiments provide that memory objects having the fourth designation 356 are written to particular respective locations that have lesser performance, e.g., less access speed and/or health, than other particular respective locations that memory objects having the first designation 350 , the second designation 352 , and the third designation 354 are written to.
- One or more embodiments provide that memory objects having the third designation or the fourth designation may be written to a single-level cell (SLC) media.
- SLC single-level cell
- Embodiments provide that memory objects may change designations over time. Over time, the first characteristic set and/or the second characteristic set associated with a memory object may change. In other words, over time one or more characteristics associated with a memory object may change. For instance, the access frequency of a memory object over a short-term time interval may decrease over time. This decrease in access frequency may contribute to that memory object becoming less hot, as compared to the memory object prior to the decrease in access frequency. As such, this decrease can result in the memory objects changing designation. As an example, if the memory object initially had the first designation 350 , after the decrease in access frequency of the memory object, the memory object may be assigned the second designation 350 .
- memory objects having the second designation 352 are considered less hot than memory objects having the first designation 350
- the memory objects having the second designation 352 e.g., the memory object that changed designations
- the memory object may be assigned the first designation 350 , for instance.
- the memory objects having the first designation 350 e.g., the memory object that changed designations, will be written to a particular respective location that has greater performance, e.g., more access speed and/or health, as compared to where the memory object was written while having the second designation 352 .
- memory objects can change designation between any of the first designation 350 , the second designation 352 , the third designation 354 , and the fourth designation 356 .
- a memory object having the first designation 350 can change designation, e.g., as the first characteristic set and/or the second characteristic set associated with the memory object changes over time, to have the second designation 352 , the third designation 354 , or the fourth designation 356 .
- the memory object having a changed designation will be written to a particular respective location that has lesser performance, e.g., less access speed and/or health, as compared to where the memory object was written while having the first designation 350 .
- a memory object having the second designation 352 can change designation, e.g., as the first characteristic set and/or the second characteristic set associated with the memory object changes over time, to have the first designation 350 , the third designation 354 , or the fourth designation 356 . Accordingly, the memory object having a changed designation will be written to a particular respective location that has different performance, e.g., different access speed and/or health, as compared to where the memory object was written before having the changed designation.
- a memory object having the third designation 354 can change designation, e.g., as the first characteristic set and/or the second characteristic set associated with the memory object changes over time, to have the first designation 350 , the second designation 352 , or the fourth designation 356 . Accordingly, the memory object having a changed designation will be written to a particular respective location that has different performance, e.g., different access speed and/or health, as compared to where the memory object was written before having the changed designation.
- a memory object having the fourth designation 356 can change designation, e.g., as the first characteristic set and/or the second characteristic set associated with the memory object changes over time, to have the first designation 350 , second designation 352 , or the third designation 354 .
- the memory object having a changed designation will be written to a particular respective location that has greater performance, e.g., more access speed and/or health, as compared to where the memory object was written while having the fourth designation 356 .
- Embodiments provide that memory objects may be combined. Memory objects having the same designation may be combined to form a different memory object. Memory objects having the different designations may be combined to form a different memory object. Memory objects that are formed by combining two or more other memory objects will have designations based upon the first characteristic set and the second characteristic set for the formed memory object. Generally, larger memory objects, e.g., memory objects that are formed by combining two or more other memory objects, will be less hot than smaller memory objects. Accordingly, the memory object formed by combining two or more other memory objects may be written to a particular respective location that has different performance, e.g., different access speed and/or health, as compared to where the two or more other memory objects were written before being combined.
- Embodiments provide that memory objects may be separated. Memory objects having the same designation may be separated to form a different memory object. Memory objects that are formed by separating two or more other memory objects will have designations based upon the first characteristic set and the second characteristic set for the formed memory object. Generally, smaller memory objects, e.g., memory objects that are formed by separating two or more other memory objects, will be more hot than larger memory objects. Accordingly, the memory object formed by separating two or more other memory objects may be written to a particular respective location that has different performance, e.g., different access speed and/or health, as compared to where the two or more other memory objects were written before being separated.
- FIG. 4 is a flow diagram representing an example method for managing memory objects in accordance with a number of embodiments of the present disclosure.
- the method 439 can be performed by processing logic that can include hardware, e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc., software, e.g., instructions run or executed on a processing device, or a combination thereof.
- the method 439 is performed by the controller 110 illustrated in FIG. 1 .
- the method 439 is performed by the control circuitry 213 , 215 , 217 illustrated in FIG. 2 .
- the method 439 is performed by the controller 210 and control circuitry 213 , 215 , 217 illustrated in FIG. 2 .
- the order of the processes can be modified.
- the illustrated embodiments should be understood only as examples, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Other process flows are possible.
- the method 439 can include monitoring a first characteristic set for each of a plurality of memory objects written to a first memory device or a second memory device.
- the method 439 can include monitoring a second characteristic set for each of the plurality of memory objects.
- the method 439 can include monitoring a performance characteristic set for the first memory device and the second memory device, wherein the first memory device and the second memory device comprise different types of memory media.
- the method 439 can include writing each of the plurality of memory objects in a particular respective location of the first memory device or the second memory device based, at least in part, upon the first characteristic set, the second characteristic set, and the performance characteristic set.
- the first characteristic set comprises a respective access frequency for each of the plurality of memory objects during a first time interval; and the second characteristic set comprises a respective access frequency for each of the plurality of memory objects during a second time interval, wherein the second time interval is larger than the first time interval.
- the method 439 can include assigning each of the plurality of memory objects a respective designation based upon the first characteristic set and the second characteristic set, wherein the respective designation is selected from a first designation, a second designation, a third designation, and a fourth designation.
- the method 439 can include combining a first memory object having the first designation and a second memory object having the first designation to form a third memory object having the second designation, the third designation, or the fourth designation.
- the method 439 can include writing the third memory object having the second designation, the third designation, or the fourth designation in a particular location of the plurality of memory media that has a slower access time than either particular respective location of the plurality of memory media that the first memory object having the first designation or the second memory object having the first designation were written to before the combining.
- the method 439 can include writing the third memory object having the second designation, the third designation, or the fourth designation in a particular location of the plurality of memory media that has a lesser remaining service life than either particular respective location of the plurality of memory media that the first memory object having the first designation or the second memory object having the first designation were written to before the combining.
- the method 439 can include separating a first memory object having the fourth designation to form a second memory object having the first designation, the second designation, or the third designation and a third memory object having the first designation, the second designation, or the third designation.
- the method 439 can include writing the second memory object having the first designation, the second designation, or the third designation and the third memory object having the first designation, the second designation, or the third designation in particular respective locations of the plurality of memory media that each have a faster access time than the particular respective location of the plurality of memory media that the first memory object having the fourth designation was written to before the separating.
- the method 439 can include writing the second memory object having the first designation, the second designation, or the third designation and the third memory object having the first designation, the second designation, or the third designation in particular respective locations of the plurality of memory media that each have a greater remaining service life than the particular respective location of the plurality of memory media that the first memory object having the fourth designation was written to before the separating.
- a memory object having the first designation is written to a first type of memory media and a memory object having the fourth designation is written to a second type of memory media.
- the method 439 can include performing or refraining from performing a media management operation involving at least one memory object based, at least in part, on the upon the first characteristic set, the second characteristic set, and the performance characteristic set.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
- The present disclosure relates generally to memory objects, and more particularly, to apparatuses, systems, and methods for managing memory objects.
- Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic systems. There are many different types of memory including volatile and non-volatile memory. Volatile memory can require power to maintain its data (e.g., host data, error data, etc.) and includes random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), and thyristor random access memory (TRAM), among others. Non-volatile memory can provide persistent data by retaining stored data when not powered and can include NAND flash memory, NOR flash memory, ferroelectric random access memory (FeRAM), and resistance variable memory such as phase change random access memory (PCRAM), resistive random access memory (RRAM), and magnetoresistive random access memory (MRAM), such as spin torque transfer random access memory (STT RAM), among others.
- Memory devices may be coupled to a host (e.g., a host computing device) to store data, commands, and/or instructions for use by the host while the computer or electronic system is operating. For example, data, commands, and/or instructions can be transferred between the host and the memory device(s) during operation of a computing or other electronic system.
-
FIG. 1 is a block diagram in the form of a computing system including a controller and memory devices in accordance with a number of embodiments of the present disclosure. -
FIG. 2 is a block diagram in the form of a computing system including a controller, control circuitry, and memory devices in accordance with a number of embodiments of the present disclosure. -
FIG. 3 is a block diagram representing memory objects in accordance with a number of embodiments of the present disclosure. -
FIG. 4 is a flow diagram representing an example method for managing memory objects in accordance with a number of embodiments of the present disclosure. - Systems, apparatuses, and methods related to managing memory objects are described. In some embodiments, memory objects that are written to a first memory device or a second memory device can be monitored. For instance, a first characteristic set, e.g., including a number of short term characteristics, and a second characteristic set, e.g., including a number of long term characteristics, may be monitored for each of these memory devices. Further, a performance characteristic set for the first memory device and the second memory device may be monitored. Based, at least in part, upon the first characteristic set, the second characteristic set, and the performance characteristic set each of the memory objects may be written to a particular respective location of the first memory device or the second memory device. Writing the memory objects to the particular respective location of the first memory device or the second memory device based, at least in part upon the first characteristic set, the second characteristic set, and the performance characteristic set, can help provide that memory objects that are more frequent accessed may be written to memory locations that are relatively faster and/or relatively more reliable, as compared to other memory locations of the first memory device and the second memory device. Additionally, writing the memory objects to the particular respective location of the first memory device or the second memory device based, at least in part upon the first characteristic set, the second characteristic set, and the performance characteristic set, can help provide that memory objects that are less frequent accessed may be written to memory locations that are relatively slower and/or relatively less reliable, as compared to other memory locations of the first memory device and the second memory device.
- As described in more detail herein, each of the plurality of memory objects may be assigned a respective designation based, at least in part, upon the first characteristic set and the second characteristic set. One or more embodiments provide that the respective designations are selected from a first designation, a second designation, a third designation, and a fourth designation, e.g., to provide four states. As an example, a memory object having the first designation may be more frequently accessed, e.g., during a short term interval and/or during a long term interval, than a memory object having the second designation, the third designation, or the fourth designation. Similarly, a memory object having the second designation may be more frequently accessed, e.g., during a short term interval and/or during a long term interval, than a memory object having the third designation or the fourth designation. Embodiments provide that memory objects may change designations over time. For instance, two memory objects having the first designation may be combined to form a third memory object have second designation. Similarly, a memory object having the second memory designation may be separated into two memory objects, each having the first designation. As used herein, “memory object” refers to data that can be written to and/or read from a memory device. For instance, a memory object can refer to a contiguously addressed region of data that is uniquely identified on a device and can be read or written. As used herein, “managing memory objects' refers to one or more operations, e.g., monitoring a characteristic set, monitoring a performance characteristic set, and writing the memory objects in a particular respective location, among other operations discussed herein.
- In the following detailed description of the present disclosure, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration how one or more embodiments of the disclosure may be practiced. These embodiments are described in sufficient detail to enable those of ordinary skill in the art to practice the embodiments of this disclosure, and it is to be understood that other embodiments may be utilized and that process, electrical, and structural changes may be made without departing from the scope of the present disclosure.
- It is to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” can include both singular and plural referents, unless the context clearly dictates otherwise. In addition, “a number of,” “at least one,” and “one or more”, e.g., a number of memory banks, can refer to one or more memory banks, whereas a “plurality of” is intended to refer to more than one of such things.
- Furthermore, the words “can” and “may” are used throughout this application in a permissive sense, e.g., having the potential to, being able to, not in a mandatory sense, e.g., must. The term “include,” and derivations thereof, means “including, but not limited to.” The terms “coupled” and “coupling” mean to be directly or indirectly connected physically or for access to and movement (transmission) of commands and/or data, as appropriate to the context.
- The figures herein follow a numbering convention in which the first digit or digits correspond to the figure number and the remaining digits identify an element or component in the figure. Similar elements or components between different figures may be identified by the use of similar digits. For example, 110 may reference element “10” in
FIG. 1 , and a similar element may be referenced as 210 inFIG. 2 . A group or plurality of similar elements or components may generally be referred to herein with a single element number. For example, a plurality of reference elements 130-1 to 130-N may be referred to generally as 130. As will be appreciated, elements shown in the various embodiments herein can be added, exchanged, and/or eliminated so as to provide a number of additional embodiments of the present disclosure. In addition, the proportion and/or the relative scale of the elements provided in the figures are intended to illustrate certain embodiments of the present disclosure and should not be taken in a limiting sense. -
FIG. 1 is a block diagram in the form of acomputing system 100 including an apparatus including amemory system 104 in accordance with a number of embodiments of the present disclosure. As used herein, an “apparatus” can refer to, but is not limited to, any of a variety of structures or combinations of structures, such as a circuit or circuitry, a die or dice, a module or modules, a device or devices, or a system or systems, for example. Thememory system 104 can include ahost interface 108, acontroller 110, e.g., a processor, control circuitry, hardware, firmware, and/or software, and a number of memory media devices.Memory system 104 can be located a location that is remote, e.g., part of a cloud database, from a host and/or from a location of a user that is accessing thememory system 104. - The
host 102 can be a host system such as a personal laptop computer, a vehicle, a desktop computer, a digital camera, a mobile telephone, an internet-of-things (IoT) enabled device, or a memory card reader, graphics processing unit, e.g., a video card, among various other types of hosts. Thehost 102 can include a system motherboard and/or backplane and can include a number of memory access devices such as a number of processing resources, e.g., one or more processors, microprocessors, image processor, and/or some other type of controlling circuitry. One of ordinary skill in the art will appreciate that “a processor” can intend one or more processors, such as a parallel processing system, a number of coprocessors, etc. Thehost 102 can be coupled to ahost interface 108 of thememory system 104 by acommunication channel 103. - As used herein an “IoT enabled device” can refer to devices embedded with electronics, software, sensors, actuators, and/or network connectivity which enable such devices to connect to a network and/or exchange data. Examples of IoT enabled devices include mobile phones, smart phones, tablets, phablets, computing devices, implantable devices, vehicles, home appliances, smart home devices, monitoring devices, wearable devices, devices enabling intelligent shopping systems, among other cyber-physical systems.
- The
host 102 can be responsible for executing an operating system for acomputing system 100 that includes thememory system 104. Accordingly, in some embodiments, thehost 102 can be responsible for controlling operation of thememory system 104. For example, thehost 102 can execute instructions, e.g., in the form of an operating system, that manage the hardware of thecomputing system 100 such as scheduling tasks, executing applications, controlling peripherals, etc. - A non-limiting example of multiple memory media having various types are described in
FIG. 1 . For example, as illustrated inFIG. 1 , the memory system can include memory media such asmemory media 112 including an array of DRAM memory cells 105-1,memory media 114 including an array of Emerging Memory memory cells 105-2, such as resistance variable, e.g., 3-D Crosspoint (3D XP), memory devices, memory devices that include an array of self-selecting memory (SSM) cells, etc., or any combination thereof, andmemory media 116 including an array of NAND memory cells 105-3. Resistance variable memory devices can perform bit storage based on a change of bulk resistance, in conjunction with a stackable cross-gridded data access array. Additionally, in contrast to many flash-based memories, resistance variable non-volatile memory can perform a write in-place operation, where a non-volatile memory cell can be programmed without the non-volatile memory cell being previously erased. In contrast to flash-based memories and resistance variable memories, self-selecting memory cells can include memory cells that have a single chalcogenide material that serves as both the switch and storage element for the memory cell. - While three memory media types, e.g., DRAM 105-1, Emerging Memory 105-2, and/or NAND 105-3, are illustrated, embodiments are not so limited, however, and there can be more or less than three memory media types. For instance, a number of embodiments provide that
memory media 112 including the array of DRAM memory cells 105-1 andmemory media 116 the array of NAND memory cells 105-3 are utilized, e.g., thememory media 114 including the array of 3D XP memory cells 105-2 is not included. As another example, a number of embodiments provide thatmemory media 114 including the array of Emerging Memory cells 105-2 andmemory media 116 the array of NAND memory cells 105-3 are utilized, e.g.,memory media 112 including the array of DRAM memory cells 105-1 is not included. - Further, the types of memory media, e.g., types of arrays of memory cells, are not limited to the three specifically illustrated, e.g., DRAM 105-1, Emerging Memory 105-2, and/or NAND 105-3, in
FIG. 1 , other types of volatile and/or non-volatile memory media types are contemplated. In a number of embodiments, thecontroller 110, thememory media host interface 108 can be physically located on a single die or within a single package, e.g., a managed memory application. Also, in a number of embodiments, a plurality of memory media, e.g.,memory media single memory system 104. Also, in some embodiments, more than one memory media can include a same type of array of memory cells. For example, instead ofmemory media 112 having an array of DRAM memory cells andmemory media 114 having an array of Emerging Memory cells, bothmemory media -
FIG. 2 is a block diagram in the form of a computing system 201 including multiple memory media types in accordance with a number of embodiments of the present disclosure.FIG. 2 illustrates a computing system 201 which includes a host 202, including ahost controller 209 which can be analogous to thehost 102 andhost controller 109 described in connection withFIG. 1 . As shown inFIG. 2 , thememory media FIG. 2 , thememory media 212 includescontrol circuitry 213, thememory media 214 includescontrol circuitry 215, and thememory media 216 includescontrol circuitry 217. While each memory media shown inFIG. 2 includes arespective control circuitry -
FIG. 3 is a block diagram representing memory objects in accordance with a number of embodiments of the present disclosure. As shown inFIG. 3 , memory objects may be assigned a respective designation, i.e. afirst designation 350, asecond designation 352, athird designation 354, or afourth designation 356. In other words, a memory object may have one of four states. - The
first designation 350 and thesecond designation 352 may be referred to as generally “hot”, while thethird designation 354 and thefourth designation 356 may be referred to as generally “cold”. However, the four designations provide that, in additional to general references of “hot” and “cold”, sub-references can be provided for further distinguishment. For instance, thefirst designation 350 may be considered “hot/hot”, thesecond designation 352 may be considered “hot/cold”, thethird designation 354 may be considered “cold/hot”, and the fourth designation may be considered “cold/cold”. As such, thefirst designation 350 may be considered to be more hot than thesecond designation 352, and both thefirst designation 350 and thesecond designation 352 may be considered to be more hot than either thethird designation 354 or thefourth designation 356. Similarly, thefourth designation 356 may be considered to be more cold than thethird designation 354, and both thefourth designation 356 and thethird designation 354 may be considered to be more cold than either thesecond designation 352 or thefirst designation 350. - As mentioned, memory objects may be assigned a respective designation based upon a first characteristic set and a second characteristic set.
- Embodiments provide that the first characteristic set can include one or more characteristics including, but not limited to, access frequency, size of the memory object, and an amount of large sequential write traffic versus an amount of small non-sequential write traffic. Characteristics of the first characteristic set can be weighted differently. Weighting of the characteristics of the first characteristic set can change, e.g., with changing workloads, benchmarks, and/or behavior of the host. Characteristics of the first characteristic set can be referred to as short-term characteristics, as compared to characteristics of the second characteristic set.
- Access frequency indicates how often an associated address space is accessed during a particular time interval. Embodiments provide that for the first characteristic set the particular time interval is smaller, i.e., a shorter time passage, as compared to time intervals for the second characteristic set. The particular time interval can have various values, e.g., for different applications. As an example, the particular time interval may be 5 microseconds, 10 microseconds, 1 second, or 1 minute, among other values. Further, embodiments provide that the particular time interval may change over time, e.g., based upon changing workloads, benchmarks, and/or the host data traffic behavior, for instance. Generally, a greater access frequency will make a memory object more hot, as compared to another memory object having a lesser access frequency. In other words, a memory objects the greatest access frequency will generally have the
first designation 350 and memory objects the least access frequency will generally have thefourth designation 356. Memory objects having thesecond designation 352 will generally have a lesser access frequency as compared to memory objects having thefirst designation 350. Memory objects having thesecond designation 352 will generally have a greater access frequency as compared to memory objects having thethird designation 354. Memory objects having thethird designation 354 will generally have a lesser access frequency as compared to memory objects having thesecond designation 352. Memory objects having thethird designation 354 will generally have a greater access frequency as compared to memory objects having thefourth designation 356. - As mentioned, the first characteristic set can include size of the memory object. The size of the memory object can correspond to a quantity of bits or other information contained within the memory object. Generally, a smaller size will make a memory object more hot, as compared to another memory object having a greater size. In other words, memory objects having the smallest size will generally have the
first designation 350 and memory objects having the largest size will generally have thefourth designation 356. Memory objects having thesecond designation 352 will generally have a larger size as compared to memory objects having thefirst designation 350. Memory objects having thesecond designation 352 will generally have a smaller size as compared to memory objects having thethird designation 354. Memory objects having thethird designation 354 will generally have larger size as compared to memory objects having thesecond designation 352. Memory objects having thethird designation 354 will generally have a smaller size as compared to memory objects having thefourth designation 356. - As mentioned, the first characteristic set can include an amount of large sequential write traffic versus an amount of small non-sequential write traffic. In other words, memory objects that have a greater amount of small non-sequential write traffic will generally be more hot, as compared to another memory objects that have a greater amount of large sequential write traffic, i.e. memory object that are sequentially or serially accessed. In other words, memory objects that have greater amounts of small non-sequential write traffic will generally have the
first designation 350 and memory objects that have greater amounts of large sequential write traffic will generally have thefourth designation 356. Memory objects having thesecond designation 352 will have a lesser amount of small non-sequential write traffic than memory objects having thefirst designation 350. Memory objects having thesecond designation 352 will generally have a greater amount of small non-sequential write traffic than memory objects having thethird designation 354. Memory objects having thethird designation 354 will generally have a greater amount of large sequential write traffic than memory objects having thesecond designation 352. Memory objects having thethird designation 354 will generally have a lesser amount of large sequential write traffic than memory objects having thefourth designation 356. - Embodiments provide that the second characteristic set can include one or more characteristics including, but not limited to, access frequency, number of error corrections, and read/write disturbs. Characteristics of the second characteristic set can be weighted differently. Weighting of the characteristics of the second characteristic set can change, e.g., with changing workloads, benchmarks, and/or host data traffic patterns. Characteristics of the second characteristic set can be referred to as long-term characteristics, as compared to characteristics of the first characteristic set, which can be referred to as short-term characteristics. One or more embodiments provide that the second characteristic set is determined during a lifetime of a device.
- For the second characteristic set, access frequency is monitored during a time interval that is larger than access frequency time interval for the first characteristic set. For instance, as mentioned for the second characteristic set the access frequency may be during a lifetime of a device. Generally, a lower access frequency during the relatively longer time interval will make a memory object more cold, as compared to another memory object having a lesser access frequency during the relatively longer time interval. “Cold,” as used herein, means that a particular memory object has not been accessed for a long duration relative to other memory objects read from a memory device. In other words, memory objects having the lowest access frequency during the relatively longer time interval will generally have the
fourth designation 356. - Generally, fewer error corrections during the relatively longer time interval will make a memory object more hot, as compared to another memory object having more error corrections during the relatively longer time interval. “Hot,” as used herein, means that a particular memory object has been accessed frequently relative to other memory objects read from a memory device. In other words, memory objects having fewer error corrections during the relatively longer time interval will generally have the
first designation 350 or thesecond designation 352, while memory objects having more error corrections during the relatively longer time interval will generally have thefourth designation 356 or thethird designation 354. - Generally, fewer read/write disturbs during the relatively longer time interval will make a memory object more hot, as compared to another memory object having more read/write disturbs during the relatively longer time interval. In other words, memory objects having fewer read/write disturbs during the relatively longer time interval will generally have the
first designation 350 or thesecond designation 352, while memory objects having more read/write disturbs during the relatively longer time interval will generally have thefourth designation 356 or thethird designation 354. Read/write disturbs are errors that respectively refer to read and write voltages of unread cells being affected by read operations and/or write operations to other cells. - Embodiments provide that one or more performance characteristic sets may be monitored for each memory device. The performance characteristic set may include various parameters and/or statuses associated with a memory device. These parameters and/or statuses may vary over time. These parameters and/or statuses may include access speed, a number of uncorrectable errors associated with a memory device, and/or a number of program/erase cycles associated with the memory device, which may increase over time leading to degradation of the memory device. These parameters and/or statuses may include status checks of cards, e.g., memory devices, chips, or other circuitries, and/or status checks of registers, e.g., data structures storing memory addresses and/or memory locations associated with data retrieval and storage of data in a memory device, which may change over time based on varying conditions and/or implementations.
- Monitoring the performance characteristic set for each memory device can provide a hierarchical organization of storage blocks. For instance, the monitored performance characteristic set may be utilized to rank storage blocks in terms of speed and/or health, e.g., performance. The speed and/or health, and thus the performance, of storage blocks may change over time. Storage block health may be indicated by remaining service life, e.g., where a relatively greater (longer) remaining service life indicates more health, as compared to a relatively lesser (shorter) remaining service life. Monitoring the performance characteristic set can include incrementing a counter and/or a register, e.g., such that characteristics may be documented and/or recorded for comparison.
- Further, the hierarchical organization of storage blocks can be utilized for performing or refraining from performing a media management operation involving at least one memory object based, at least in part, on the upon the first characteristic set, the second characteristic set, and the performance characteristic set. For instance, various data protection and recovery schemes applied to different storage blocks. As an example, when a media management operation is performed, relatively faster and/or healthier storage blocks may utilize a first data protection and recovery scheme while relatively slower and/or less healthy storage blocks may utilize a second data protection and recovery scheme that is different from the first data protection and recovery scheme. Performing or refraining from performing a media management operation may enhance computing resource allocation and/or power consumption, for instance. As an example, when a media management operation is performed, relatively faster and/or healthier storage blocks may utilize a number of error code correction (ECC) operations, while relatively slower and/or less healthy storage blocks may utilize Redundant Array of Independent NAND (RAIN).
- One or more embodiments of the present disclosure provide that performing a media management operation involving at least one memory object occurs in response to a determination that the first characteristic set, the second characteristic set, and the performance characteristic set associated with the memory object are each less than a threshold value. The threshold value can have various values, e.g., for different applications. The threshold value can change over time, e.g., increase or decrease. One or more embodiments of the present disclosure provide for refraining from performance of a media management operation involving at least one memory object occurs in response to a determination that the first characteristic set, the second characteristic set, and the performance characteristic set associated with the memory object are each greater than the threshold value.
- Embodiment of the present disclosure provide that memory objects may be written to particular respective locations, e.g. storage blocks, based, at least in part, upon the first characteristic set, the second characteristic set, and the performance characteristic set.
- As mentioned, memory objects having the
first designation 350, which may be considered to be “hot/hot”, are more hot than memory objects having thesecond designation 352, thethird designation 354, or thefourth designation 356. As such, embodiments provide that memory objects having thefirst designation 350 are written to particular respective locations that have greater performance, e.g., greater access speed and/or health, than other particular respective locations that memory objects having thesecond designation 352, thethird designation 354, or thefourth designation 356 are written to. - Memory objects having the
second designation 352, which may be considered to be “hot/cold”, are more hot than memory objects having thethird designation 354 or thefourth designation 356. As such, embodiments provide that memory objects having thesecond designation 352 are written to particular respective locations that have greater performance, e.g., greater access speed and/or health, than other particular respective locations that memory objects having thethird designation 354 or thefourth designation 356 are written to. - Memory objects having the
third designation 354, which may be considered to be “cold/hot”, are more hot than memory objects having thefourth designation 356. As such, embodiments provide that memory objects having thethird designation 354 are written to particular respective locations that have greater performance, e.g., greater access speed and/or health, than other particular respective locations that memory objects having thefourth designation 356 are written to. - Memory objects having the
fourth designation 356, which may be considered to be “cold/cold”, are less hot than memory objects having thefirst designation 350, thesecond designation 352, and thethird designation 354. As such, embodiments provide that memory objects having thefourth designation 356 are written to particular respective locations that have lesser performance, e.g., less access speed and/or health, than other particular respective locations that memory objects having thefirst designation 350, thesecond designation 352, and thethird designation 354 are written to. One or more embodiments provide that memory objects having the third designation or the fourth designation may be written to a single-level cell (SLC) media. - Embodiments provide that memory objects may change designations over time. Over time, the first characteristic set and/or the second characteristic set associated with a memory object may change. In other words, over time one or more characteristics associated with a memory object may change. For instance, the access frequency of a memory object over a short-term time interval may decrease over time. This decrease in access frequency may contribute to that memory object becoming less hot, as compared to the memory object prior to the decrease in access frequency. As such, this decrease can result in the memory objects changing designation. As an example, if the memory object initially had the
first designation 350, after the decrease in access frequency of the memory object, the memory object may be assigned thesecond designation 350. Further, as memory objects having thesecond designation 352 are considered less hot than memory objects having thefirst designation 350, the memory objects having thesecond designation 352, e.g., the memory object that changed designations, will be written to a particular respective location that has lesser performance, e.g., less access speed and/or health, as compared to where the memory object was written while having thefirst designation 350. - Similarly, if a memory object initially had the
second designation 352, after an increase in access frequency of the memory object during a short-term time interval, the memory object may be assigned thefirst designation 350, for instance. Further, as memory objects having thefirst designation 350 are considered more hot than memory objects having thesecond designation 352, the memory objects having thefirst designation 350, e.g., the memory object that changed designations, will be written to a particular respective location that has greater performance, e.g., more access speed and/or health, as compared to where the memory object was written while having thesecond designation 352. - As shown in
FIG. 3 , memory objects can change designation between any of thefirst designation 350, thesecond designation 352, thethird designation 354, and thefourth designation 356. A memory object having thefirst designation 350 can change designation, e.g., as the first characteristic set and/or the second characteristic set associated with the memory object changes over time, to have thesecond designation 352, thethird designation 354, or thefourth designation 356. As such the memory object having a changed designation will be written to a particular respective location that has lesser performance, e.g., less access speed and/or health, as compared to where the memory object was written while having thefirst designation 350. - A memory object having the
second designation 352 can change designation, e.g., as the first characteristic set and/or the second characteristic set associated with the memory object changes over time, to have thefirst designation 350, thethird designation 354, or thefourth designation 356. Accordingly, the memory object having a changed designation will be written to a particular respective location that has different performance, e.g., different access speed and/or health, as compared to where the memory object was written before having the changed designation. - A memory object having the
third designation 354 can change designation, e.g., as the first characteristic set and/or the second characteristic set associated with the memory object changes over time, to have thefirst designation 350, thesecond designation 352, or thefourth designation 356. Accordingly, the memory object having a changed designation will be written to a particular respective location that has different performance, e.g., different access speed and/or health, as compared to where the memory object was written before having the changed designation. - A memory object having the
fourth designation 356 can change designation, e.g., as the first characteristic set and/or the second characteristic set associated with the memory object changes over time, to have thefirst designation 350,second designation 352, or thethird designation 354. As such the memory object having a changed designation will be written to a particular respective location that has greater performance, e.g., more access speed and/or health, as compared to where the memory object was written while having thefourth designation 356. - Embodiments provide that memory objects may be combined. Memory objects having the same designation may be combined to form a different memory object. Memory objects having the different designations may be combined to form a different memory object. Memory objects that are formed by combining two or more other memory objects will have designations based upon the first characteristic set and the second characteristic set for the formed memory object. Generally, larger memory objects, e.g., memory objects that are formed by combining two or more other memory objects, will be less hot than smaller memory objects. Accordingly, the memory object formed by combining two or more other memory objects may be written to a particular respective location that has different performance, e.g., different access speed and/or health, as compared to where the two or more other memory objects were written before being combined.
- Embodiments provide that memory objects may be separated. Memory objects having the same designation may be separated to form a different memory object. Memory objects that are formed by separating two or more other memory objects will have designations based upon the first characteristic set and the second characteristic set for the formed memory object. Generally, smaller memory objects, e.g., memory objects that are formed by separating two or more other memory objects, will be more hot than larger memory objects. Accordingly, the memory object formed by separating two or more other memory objects may be written to a particular respective location that has different performance, e.g., different access speed and/or health, as compared to where the two or more other memory objects were written before being separated.
-
FIG. 4 is a flow diagram representing an example method for managing memory objects in accordance with a number of embodiments of the present disclosure. Themethod 439 can be performed by processing logic that can include hardware, e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc., software, e.g., instructions run or executed on a processing device, or a combination thereof. In some embodiments, themethod 439 is performed by thecontroller 110 illustrated inFIG. 1 . In some embodiments, themethod 439 is performed by thecontrol circuitry FIG. 2 . In some embodiments, themethod 439 is performed by thecontroller 210 andcontrol circuitry FIG. 2 . Although shown in a particular sequence or order, unless otherwise specified, the order of the processes can be modified. Thus, the illustrated embodiments should be understood only as examples, and the illustrated processes can be performed in a different order, and some processes can be performed in parallel. Additionally, one or more processes can be omitted in various embodiments. Thus, not all processes are required in every embodiment. Other process flows are possible. - At
block 460, themethod 439 can include monitoring a first characteristic set for each of a plurality of memory objects written to a first memory device or a second memory device. - At
block 462, themethod 439 can include monitoring a second characteristic set for each of the plurality of memory objects. - At
block 464, themethod 439 can include monitoring a performance characteristic set for the first memory device and the second memory device, wherein the first memory device and the second memory device comprise different types of memory media. - At
block 466, themethod 439 can include writing each of the plurality of memory objects in a particular respective location of the first memory device or the second memory device based, at least in part, upon the first characteristic set, the second characteristic set, and the performance characteristic set. - In some embodiments, the first characteristic set comprises a respective access frequency for each of the plurality of memory objects during a first time interval; and the second characteristic set comprises a respective access frequency for each of the plurality of memory objects during a second time interval, wherein the second time interval is larger than the first time interval.
- In some embodiments, the
method 439 can include assigning each of the plurality of memory objects a respective designation based upon the first characteristic set and the second characteristic set, wherein the respective designation is selected from a first designation, a second designation, a third designation, and a fourth designation. - In some embodiments, the
method 439 can include combining a first memory object having the first designation and a second memory object having the first designation to form a third memory object having the second designation, the third designation, or the fourth designation. - In some embodiments, the
method 439 can include writing the third memory object having the second designation, the third designation, or the fourth designation in a particular location of the plurality of memory media that has a slower access time than either particular respective location of the plurality of memory media that the first memory object having the first designation or the second memory object having the first designation were written to before the combining. - In some embodiments, the
method 439 can include writing the third memory object having the second designation, the third designation, or the fourth designation in a particular location of the plurality of memory media that has a lesser remaining service life than either particular respective location of the plurality of memory media that the first memory object having the first designation or the second memory object having the first designation were written to before the combining. - In some embodiments, the
method 439 can include separating a first memory object having the fourth designation to form a second memory object having the first designation, the second designation, or the third designation and a third memory object having the first designation, the second designation, or the third designation. - In some embodiments, the
method 439 can include writing the second memory object having the first designation, the second designation, or the third designation and the third memory object having the first designation, the second designation, or the third designation in particular respective locations of the plurality of memory media that each have a faster access time than the particular respective location of the plurality of memory media that the first memory object having the fourth designation was written to before the separating. - In some embodiments, the
method 439 can include writing the second memory object having the first designation, the second designation, or the third designation and the third memory object having the first designation, the second designation, or the third designation in particular respective locations of the plurality of memory media that each have a greater remaining service life than the particular respective location of the plurality of memory media that the first memory object having the fourth designation was written to before the separating. - In some embodiments, a memory object having the first designation is written to a first type of memory media and a memory object having the fourth designation is written to a second type of memory media.
- In some embodiments, the
method 439 can include performing or refraining from performing a media management operation involving at least one memory object based, at least in part, on the upon the first characteristic set, the second characteristic set, and the performance characteristic set. - Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art will appreciate that an arrangement calculated to achieve the same results can be substituted for the specific embodiments shown. This disclosure is intended to cover adaptations or variations of one or more embodiments of the present disclosure. It is to be understood that the above description has been made in an illustrative fashion, and not a restrictive one. Combination of the above embodiments, and other embodiments not specifically described herein will be apparent to those of skill in the art upon reviewing the above description. The scope of the one or more embodiments of the present disclosure includes other applications in which the above structures and processes are used. Therefore, the scope of one or more embodiments of the present disclosure should be determined with reference to the appended claims, along with the full range of equivalents to which such claims are entitled.
- In the foregoing Detailed Description, some features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the disclosed embodiments of the present disclosure have to use more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
Claims (24)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/143,481 US11397657B1 (en) | 2021-01-07 | 2021-01-07 | Managing memory objects that are assigned a respective designation |
DE102021130392.3A DE102021130392A1 (en) | 2021-01-07 | 2021-11-20 | MANAGING STORAGE ITEMS |
CN202111519851.3A CN114741025B (en) | 2021-01-07 | 2021-12-13 | Managing memory objects |
US17/843,448 US11720463B2 (en) | 2021-01-07 | 2022-06-17 | Managing memory objects that are assigned a respective designation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/143,481 US11397657B1 (en) | 2021-01-07 | 2021-01-07 | Managing memory objects that are assigned a respective designation |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/843,448 Continuation US11720463B2 (en) | 2021-01-07 | 2022-06-17 | Managing memory objects that are assigned a respective designation |
Publications (2)
Publication Number | Publication Date |
---|---|
US20220214953A1 true US20220214953A1 (en) | 2022-07-07 |
US11397657B1 US11397657B1 (en) | 2022-07-26 |
Family
ID=82020624
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/143,481 Active US11397657B1 (en) | 2021-01-07 | 2021-01-07 | Managing memory objects that are assigned a respective designation |
US17/843,448 Active US11720463B2 (en) | 2021-01-07 | 2022-06-17 | Managing memory objects that are assigned a respective designation |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/843,448 Active US11720463B2 (en) | 2021-01-07 | 2022-06-17 | Managing memory objects that are assigned a respective designation |
Country Status (3)
Country | Link |
---|---|
US (2) | US11397657B1 (en) |
CN (1) | CN114741025B (en) |
DE (1) | DE102021130392A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130036286A1 (en) * | 2011-08-01 | 2013-02-07 | Hitachi, Ltd. | First storage control apparatus and first storage control apparatus control method |
US20150154066A1 (en) * | 2013-12-02 | 2015-06-04 | Knut S. Grimsrud | Error correction in solid state drives (ssd) |
US20150277802A1 (en) * | 2014-03-31 | 2015-10-01 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
US20160085625A1 (en) * | 2014-09-19 | 2016-03-24 | Micron Technology, Inc. | Self-accumulating exclusive or program |
US9898224B1 (en) * | 2012-09-12 | 2018-02-20 | EMC IP Holding Company LLC | Automatic adjustment of capacity usage by data storage optimizer for data migration |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026379A1 (en) | 2004-07-27 | 2006-02-02 | Samsung Electronics Co., Ltd. | Effective memory management method and device in object-oriented application |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US7926053B1 (en) * | 2005-08-26 | 2011-04-12 | Adobe Systems Incorporated | Methods and apparatus for optimizing installation location of software |
KR101792870B1 (en) | 2011-06-21 | 2017-11-02 | 삼성전자주식회사 | Non-volatile memory device and read method thereof |
US9601193B1 (en) | 2015-09-14 | 2017-03-21 | Intel Corporation | Cross point memory control |
US10649665B2 (en) * | 2016-11-08 | 2020-05-12 | Micron Technology, Inc. | Data relocation in hybrid memory |
US10929033B2 (en) * | 2018-04-25 | 2021-02-23 | Micron Technology, Inc. | Allocating variable media types of memory devices in a memory system |
-
2021
- 2021-01-07 US US17/143,481 patent/US11397657B1/en active Active
- 2021-11-20 DE DE102021130392.3A patent/DE102021130392A1/en active Pending
- 2021-12-13 CN CN202111519851.3A patent/CN114741025B/en active Active
-
2022
- 2022-06-17 US US17/843,448 patent/US11720463B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130036286A1 (en) * | 2011-08-01 | 2013-02-07 | Hitachi, Ltd. | First storage control apparatus and first storage control apparatus control method |
US9898224B1 (en) * | 2012-09-12 | 2018-02-20 | EMC IP Holding Company LLC | Automatic adjustment of capacity usage by data storage optimizer for data migration |
US20150154066A1 (en) * | 2013-12-02 | 2015-06-04 | Knut S. Grimsrud | Error correction in solid state drives (ssd) |
US20150277802A1 (en) * | 2014-03-31 | 2015-10-01 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
US20160085625A1 (en) * | 2014-09-19 | 2016-03-24 | Micron Technology, Inc. | Self-accumulating exclusive or program |
Also Published As
Publication number | Publication date |
---|---|
CN114741025A (en) | 2022-07-12 |
US11397657B1 (en) | 2022-07-26 |
CN114741025B (en) | 2023-08-04 |
US20220318113A1 (en) | 2022-10-06 |
US11720463B2 (en) | 2023-08-08 |
DE102021130392A1 (en) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10303614B2 (en) | Memory having a static cache and a dynamic cache | |
US20200233585A1 (en) | Data relocation in hybrid memory | |
US11209986B2 (en) | Memory operations on data | |
CN110678852B (en) | Apparatus and method for controlling memory operation to buffer | |
US10956290B2 (en) | Memory management | |
US11983403B2 (en) | Data relocation in memory | |
WO2020263586A1 (en) | Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system | |
KR20230142795A (en) | Different write prioritization in ZNS devices | |
US11720463B2 (en) | Managing memory objects that are assigned a respective designation | |
US11194708B2 (en) | Data relocation in memory having two portions of data | |
EP4405952A1 (en) | Improved ecc configuration in memories | |
US20210181980A1 (en) | Storage System and Method for Improving Utilization of a Communication Channel between a Host and the Storage System | |
US11392321B2 (en) | Memory system restoring data based on parity data and operating method thereof | |
US11487449B2 (en) | Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns | |
US20240055058A1 (en) | Scheduled interrupts for peak power management token ring communication | |
US20230395121A1 (en) | Row hammer refresh operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BASU, RESHMI;MURPHY, RICHARD C.;SIGNING DATES FROM 20201217 TO 20210106;REEL/FRAME:054845/0258 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BASU, RESHMI;MURPHY, RICHARD C.;SIGNING DATES FROM 20201217 TO 20210106;REEL/FRAME:055768/0386 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |