WO2019148757A1 - Non-volatile random access memory and method for providing same - Google Patents

Non-volatile random access memory and method for providing same Download PDF

Info

Publication number
WO2019148757A1
WO2019148757A1 PCT/CN2018/093075 CN2018093075W WO2019148757A1 WO 2019148757 A1 WO2019148757 A1 WO 2019148757A1 CN 2018093075 W CN2018093075 W CN 2018093075W WO 2019148757 A1 WO2019148757 A1 WO 2019148757A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
nvram
random access
access memory
data
Prior art date
Application number
PCT/CN2018/093075
Other languages
French (fr)
Chinese (zh)
Inventor
路向峰
田冰
Original Assignee
北京忆恒创源科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 北京忆恒创源科技有限公司 filed Critical 北京忆恒创源科技有限公司
Publication of WO2019148757A1 publication Critical patent/WO2019148757A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory

Definitions

  • the present application relates to a non-Volatile Random Access Memory (NVRAM) and a method of providing the same.
  • NVRAM non-Volatile Random Access Memory
  • FIG. 1 shows a block diagram of a solid state storage device.
  • the solid state storage device 102 is coupled to the host for providing storage capabilities to the host.
  • the host and the solid-state storage device 102 can be coupled in various manners, including but not limited to, for example, SATA (Serial Advanced Technology Attachment), SCSI (Small Computer System Interface). , SAS (Serial Attached SCSI), IDE (Integrated Drive Electronics), USB (Universal Serial Bus), PCIE (Peripheral Component Interconnect Express, PCIe, High Speed Peripheral Component Interconnect) NVMe (NVM Express, high speed nonvolatile storage), Ethernet, Fibre Channel, wireless communication network, etc. are connected to the host and solid state storage device 102.
  • SATA Serial Advanced Technology Attachment
  • SCSI Serial Attached SCSI
  • IDE Integrated Drive Electronics
  • USB Universal Serial Bus
  • PCIE Peripheral Component Interconnect Express
  • PCIe High Speed Peripheral Component Interconnect
  • NVMe
  • the host may be an information processing device capable of communicating with the storage device in the manner described above, such as a personal computer, tablet, server, portable computer, network switch, router, cellular telephone, personal digital assistant, and the like.
  • the storage device 102 includes an interface 103, a control unit 104, one or more NVM chips 105, and a DRAM (Dynamic Random Access Memory) 110.
  • NAND flash memory phase change memory, FeRAM (Ferroelectric RAM), MRAM (Magnetic Random Access Memory), RRAM (Resistive Random Access Memory), XPoint memory, etc. are common NVMs.
  • the interface 103 can be adapted to exchange data with the host via, for example, SATA, IDE, USB, PCIE, NVMe, SAS, Ethernet, Fibre Channel, and the like.
  • Control component 104 is used to control data transfers between interface 103, NVM chip 105, and DRAM 110, as well as for storage management, host logical address to flash physical address mapping, erase equalization, bad block management, and the like.
  • the control unit 104 can be implemented in various manners of software, hardware, firmware, or a combination thereof.
  • the control unit 104 can be an FPGA (Field-programmable gate array) or an ASIC (Application Specific Integrated Circuit). Integrated circuit) or a combination thereof.
  • Control component 104 may also include a processor or controller that executes software in the processor or controller to manipulate the hardware of control component 104 to process IO (Input/Output) commands.
  • Control component 104 can also be coupled to DRAM 110 and can access data from DRAM 110.
  • the DRAM can store data for FTL tables and/or cached IO commands.
  • the control component 104 includes a flash interface controller (or media interface controller, flash channel controller) coupled to the NVM chip 105 and issuing commands to the NVM chip 105 in a manner that follows the interface protocol of the NVM chip 105.
  • a flash interface controller or media interface controller, flash channel controller
  • Known NVM chip interface protocols include "Toggle”, "ONFI”, and the like.
  • a memory target is one or more logical units (LUNs, Logic UNit) of a shared CE (Chip Enable) signal within a NAND flash package.
  • LUNs logical units
  • Logic UNit logical units
  • the logic unit corresponds to a single die.
  • the logic unit can include a plurality of planes. Multiple planes within a logical unit can be accessed in parallel, while multiple logical units within a NAND flash chip can execute command and report states independently of each other.
  • a block (also called a physical block) contains multiple pages.
  • a block contains multiple pages.
  • a page on a storage medium (referred to as a physical page) has a fixed size, such as 17,664 bytes. Physical pages can also have other sizes.
  • FTL Flash Translation Layer
  • the logical address constitutes the storage space of the solid-state storage device perceived by the upper layer software such as the operating system.
  • the physical address is the address of the physical storage unit used to access the solid state storage device.
  • the address mapping can also be implemented in the related art using the intermediate address form. For example, a logical address is mapped to an intermediate address, and the intermediate address is further mapped to a physical address.
  • FTL tables are important metadata in solid state storage devices. Usually, the data items of the FTL table record the address mapping relationship in units of data pages in the solid state storage device.
  • Each storage unit of the NVM storage medium can store 1 bit or more bits of information.
  • a storage unit that can store 1-bit information is called an SLC (Single Level Cell)
  • a storage unit that can store 2-bit information is called an MLC (Multiple Level Cell), and can store 3-bit information.
  • the unit is called TLC (Triple Level Cell)
  • the storage unit that can store 4-bit information is called QLC (quadruple level Cell).
  • NVRAM is a memory that can be accessed randomly, and the data stored in NVRAM is not lost even if the power is turned off. The data stored in the NVRAM can be accessed again after the next power-up.
  • the present application is intended to provide NVRAM through a solid state storage device, and the provided NVRAM can be accessed by a host coupled to the solid state storage device and/or accessed by a controller of the solid state storage device.
  • a first nonvolatile random access memory comprising: a control unit, a random access memory RAM and an NVM chip, wherein the control unit comprises an NVRAM management module, The portion of the random access memory RAM and the portion of the NVM chip provide NVRAM service, and the NVRAM management module accesses the random access memory RAM and the NVM chip that provide the NVRAM service according to the NVRAM address space.
  • a second nonvolatile random access memory according to the first aspect of the present application, wherein a storage space of the NVM chip providing the NVRAM service is organized For a plurality of large blocks, the storage space of the random access memory RAM providing the NVRAM service is organized into a plurality of memory slices, the NVRAM address space being organized into a plurality of small blocks, the NVRAM management module indicating according to the small blocks The chunk or slice of memory accesses the chunk or slice of memory.
  • the random access memory RAM is a dynamic random access memory DRAM.
  • a fourth nonvolatile random access memory according to the first aspect of the present application, wherein part or all of the dynamic random access memory DRAM is Static random access memory SRAM replacement.
  • NVRAM address space is a continuous address space.
  • a sixth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module maintains an NVRAM address space.
  • a seventh nonvolatile random access memory according to the first aspect of the present application, wherein each of the small blocks occupies an area of the NVRAM address space The same size.
  • an eighth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module is based on an NVRAM address space Address, calculate the small block corresponding to the address.
  • nonvolatile random access memory of the first aspect of the present application there is provided a ninth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module divides the address of the NVRAM address space by The size of the NVRAM address space corresponding to the small block gets the index of the small block.
  • a second nonvolatile random access memory of the first aspect of the present application there is provided a tenth nonvolatile random access memory according to the first aspect of the present application, wherein the size of the memory chip is the same as the size of the small block.
  • an eleventh nonvolatile random access memory according to the first aspect of the present application, wherein the large block comprises: a base chunk and a large log A block, the base chunk is used to store data, and the log chunk is used to record modifications to the NVRAM address space.
  • an eleventh nonvolatile random access memory of the first aspect of the present application there is provided a twelfth nonvolatile random access memory according to the first aspect of the present application, wherein the storage space of the large block is organized into a frame .
  • a thirteenth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module organizes a log chunk frame For the linked list.
  • a fourteenth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module has a large log Each log chunk frame within the block is organized into a linked list.
  • a fifteenth nonvolatile random access memory according to the first aspect of the present application, wherein the size of the frame is the same as the size of the small block .
  • a sixteenth nonvolatile random access memory according to the first aspect of the present application, wherein, in response to writing to an address NADDR of an NVRAM address space Data D, the NVRAM management module generates a log entry that records ⁇ NADDR, D>, and the NVRAM management module writes the log entry to the log chunk frame.
  • the eleventh or twelfth nonvolatile random access memory of the first aspect of the present application there is provided a seventeenth nonvolatile random access memory according to the first aspect of the present application, wherein the address in response to the address space to the NVRAM NADDR writes data D, and the NVRAM management module records the data D in a memory slice corresponding to the address NADDR.
  • an eighteenth nonvolatile random access memory according to the first aspect of the present application, wherein the random access memory RAM stores a small block conversion A table, the small block conversion table includes a plurality of entries, each entry corresponding to one of the small blocks, the value of the entry recording the address of the underlying chunky frame or the address of the memory slice that provides data for the tile.
  • an eighteenth nonvolatile random access memory of the first aspect of the present application there is provided a nineteenth nonvolatile random access memory according to the first aspect of the present application, wherein an NVRAM address space address larger than a threshold is mapped as a basis The address of a large block of frames, mapping the NVRAM address space address that is not greater than the threshold to the address of the memory slice.
  • a twentieth nonvolatile random access memory wherein a flag is recorded in an entry, and a flag bit is used for The value of the indication entry indicates the address of the underlying chunky frame or the address of the memory slice.
  • nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-first nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module maintains NVRAM metadata.
  • a twenty-second nonvolatile random access memory wherein the NVRAM metadata recording log chunk header And a memory slice descriptor header;
  • the log chunk header is an address of the log chunk frame, and indicates a head node of the log chunk frame list;
  • the memory slice descriptor header is a memory slice descriptor address, and indicates The head node of the memory slice descriptor list.
  • a twenty-second nonvolatile random access memory of the first aspect of the present application there is provided a twenty-third nonvolatile random access memory according to the first aspect of the present application, wherein the memory slice descriptor is used for description Memory chip.
  • nonvolatile random access memory According to a twenty-second or twenty-third nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-fourth nonvolatile random access memory according to the first aspect of the present application, wherein the memory slice descriptor record The basic chunk frame address corresponding to the memory slice.
  • nonvolatile random access memory According to a twenty-second or twenty-third nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-fifth nonvolatile random access memory according to the first aspect of the present application, wherein the memory slice descriptor record The state of the memory chip.
  • nonvolatile random access memory According to a twenty-second or twenty-third nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-sixth nonvolatile random access memory according to the first aspect of the present application, wherein the memory chip and The memory slice descriptors are in one-to-one correspondence.
  • a twenty-second to twenty-sixth nonvolatile random access memory of the first aspect of the present application there is provided a twenty-seventh nonvolatile random access memory according to the first aspect of the present application, wherein the memory chip description The symbols are organized into linked lists.
  • a first method of providing a nonvolatile random access memory comprising the steps of: identifying an accessed NVRAM address space; identifying an address of the accessed NVRAM address space being mapped
  • the address to the basic chunk frame is also the memory slice address; the data to be accessed is obtained from the basic chunk frame or the memory slice according to the recognition result.
  • a second method of providing a nonvolatile random access memory according to the second aspect of the present application wherein the base chunk frame is located at the NVM A memory cell of a memory block of a chip, which is a memory cell located in a volatile memory.
  • a third method of providing a nonvolatile random access memory according to the second aspect of the present application wherein
  • the address of the NVRAM address space generates a small block index (ID); accesses the small block conversion table according to the small block index (ID); acquires the small block conversion table entry according to the address of the NVRAM address space to be accessed, and identifies according to the small block conversion table entry
  • the address of the NVRAM address space to be accessed is mapped to the address of the underlying chunky frame or the memory slice address.
  • a fourth method of providing a nonvolatile random access memory according to the second aspect of the present application wherein the NVRAM address space is provided by a small block Multiple small blocks together provide a complete NVRAM address space.
  • a method of providing a nonvolatile random access memory according to a fifth aspect of the second aspect of the present application further comprising: from to be accessed The address of the NVRAM address space generates an offset value, and for data read from the base chunk frame, the data to be accessed is obtained by offset value addressing.
  • a sixth method of providing a nonvolatile random access memory according to the second aspect of the present application further comprising: from to be accessed The address of the NVRAM address space generates an offset value, and the data to be accessed is obtained from the memory slice.
  • a method of providing a nonvolatile random access memory according to the seventh aspect of the second aspect of the present application wherein if the small block conversion The table entry records the memory slice address, and obtains the data to be accessed from the memory slice; if the small block conversion table entry records the address of the basic large block frame, the memory slice is allocated for the basic large frame frame to be acquired, and will be waiting for The basic chunk frame of the acquired data reads out the data to be accessed and writes the allocated memory slice, and acquires the data to be accessed from the allocated memory slice.
  • a method of providing a nonvolatile random access memory according to a seventh aspect of the second aspect of the present application provides a method of providing a nonvolatile random access memory according to the eighth aspect of the second aspect of the present application, further comprising: using the allocated memory The slice address updates the small block conversion table entry.
  • a first method of providing a nonvolatile random access memory comprising the steps of: identifying an NVRAM address space to be written data; identifying data to be written The address of the NVRAM address space is mapped to the address of the base chunk frame or the memory slice address; if the address of the NVRAM address space to be written to the data is the memory slice address, data is written to the memory slice; to be written The address of the NVRAM address space of the data is the address of the base chunk frame, and a log entry is generated in which the NVRAM address space address NADDR to be written data and the data D to be written are recorded, and the log entry is written into the log chunk frame.
  • a second method of providing a nonvolatile random access memory wherein the base chunk frame is located at the NVM
  • the storage unit of the storage block of the chip, the log chunk frame is located in the storage unit of the storage block of the NVM chip, and the memory slice is a storage unit located in the volatile memory.
  • a third method of providing a nonvolatile random access memory according to the third aspect of the present application wherein Enter the address of the NVRAM address space of the data, generate a small block index (ID); access the small block conversion table according to the small block index (ID); obtain the small block conversion table entry according to the address of the NVRAM address space to be written data, according to The small block conversion table entry identifies whether the address of the NVRAM address space to which the data is to be written is mapped to the address of the underlying chunky frame or the memory slice address.
  • a fourth method of providing a nonvolatile random access memory according to the third aspect of the present application wherein the NVRAM address space is provided by a small block Multiple small blocks together provide a complete NVRAM address space.
  • a method of providing a nonvolatile random access memory according to a fifth aspect of the third aspect of the present application, further comprising: if the small block The conversion table entry records the memory slice address. After the data is written to the memory slice, a log entry is generated; the log entry is written to the log chunk frame.
  • a sixth method of providing a nonvolatile random access memory according to the third aspect of the present application wherein the log entry records to be written
  • the NVRAM address space address of the incoming data is NVRAM and the data D being written.
  • a method of providing a nonvolatile random access memory according to a seventh aspect of the third aspect of the present application wherein After the address space address NADDR writes the data D to generate a log entry, it indicates that the write data processing to the NVRAM address space is completed.
  • a method of providing a nonvolatile random access memory according to the first to seventh aspects of the third aspect of the present application there is provided a method of providing a nonvolatile random access memory according to the eighth aspect of the third aspect of the present invention, wherein a log entry is generated, The log entry is written to the log chunk frame, indicating that the write data processing of the NADDR address space is complete.
  • a first method of providing a nonvolatile random access memory comprising the steps of: identifying an NVRAM address space to be written data; according to data to be written The address of the NVRAM address space generates a log entry that records the NVRAM address space address NVRAM to be written with data and the data D to be written; writes the log entry to the log chunk frame.
  • a second method of providing a nonvolatile random access memory according to the fourth aspect of the present application wherein the log chunk frame is located in the NVM chip The storage unit of the storage block.
  • a third method for providing a nonvolatile random access memory according to the fourth aspect of the present application further comprising: identifying that a write is to be performed The address of the NVRAM address space of the incoming data is mapped to the address or the memory slice address of the underlying chunky frame; if the address of the NVRAM address space to which the data is to be written is the memory slice address, data is written to the memory slice.
  • a fourth method for providing a nonvolatile random access memory according to the fourth aspect of the present application wherein the memory chip is located in a volatile The storage unit of the memory.
  • a method of providing a nonvolatile random access memory according to a fifth aspect of the fourth aspect of the present application wherein Enter the address of the NVRAM address space of the data, generate a small block index (ID); access the small block conversion table according to the small block index (ID); obtain the small block conversion table entry according to the address of the NVRAM address space to be written data, according to The small block conversion table entry identifies whether the address of the NVRAM address space to which the data is to be written is mapped to the address of the underlying chunky frame or the memory slice address.
  • a sixth method of providing a nonvolatile random access memory according to the fourth aspect of the present application wherein the NVRAM address space is provided by a small block Multiple small blocks together provide a complete NVRAM address space.
  • a fifth or sixth method of providing a nonvolatile random access memory according to the fourth aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to a seventh aspect of the fourth aspect of the present application, wherein the generating is performed concurrently Log entries and generate small block indexes (IDs).
  • IDs small block indexes
  • a third to seventh method of providing a nonvolatile random access memory according to the fourth aspect of the present application there is provided a method of providing a nonvolatile random access memory according to the eighth aspect of the fourth aspect of the present application, wherein writing to a memory chip The entry data and the generated log entry are completed, indicating that the write data processing of the NVRAM address space is completed.
  • a first method for providing a nonvolatile random access memory comprising the steps of: scanning a memory slice descriptor linked list in response to powering up; acquiring each memory slice The address of the base chunk frame corresponding to the memory slice recorded in the descriptor; the data is read from the base chunk frame and the read data is written into the memory slice.
  • a second method of providing a nonvolatile random access memory according to the fifth aspect of the present application wherein the base chunk frame is located at the NVM A memory cell of a memory block of a chip, which is a memory cell located in a volatile memory.
  • a third method for providing a nonvolatile random access memory according to the fifth aspect of the present application further comprising: scanning a log chunk frame linked list ; read log entries from log chunks in the log chunk frame list; update the memory slices with log entries.
  • a fourth method of providing a nonvolatile random access memory according to the fifth aspect of the present application wherein the log chunk frame is located at the NVM The memory unit of the memory block of the chip.
  • a fourth method of providing a nonvolatile random access memory according to the fifth aspect of the present application there is provided a method of providing a nonvolatile random access memory according to the fifth aspect of the fifth aspect of the present application, further comprising: when the power is off, the memory is The slice descriptor is written to the NVM chip.
  • the non-volatile random access memory and the method for providing the same provided by the present application provide efficient random access for the corresponding NVRAM address space through the memory chip, and the log large block of the log chunk records the log entry ⁇ NADDR, D>, Provides non-volatile capabilities for updating the corresponding NVRAM address space.
  • FIG. 1 is a block diagram of a related art solid state storage device
  • FIG. 2 is a block diagram of an NVRAM provided by an embodiment of the present application.
  • FIG. 3 is a schematic diagram of an NVRAM address space provided by an embodiment of the present application.
  • FIG. 4 shows a small block conversion table provided by an embodiment of the present application
  • FIG. 5 is a block diagram showing a data organization for providing an NVRAM service according to an embodiment of the present application
  • 6A is a flowchart of processing an NVRAM read request provided by an embodiment of the present application.
  • 6B is a flowchart of processing an NVRAM read request provided by another embodiment of the present application.
  • 6C is a flowchart of processing an NVRAM write request provided by another embodiment of the present application.
  • 6D is a flow chart showing processing of an NVRAM write request provided by still another embodiment of the present application.
  • FIG. 7 is a flowchart of power-on recovery NVRAM provided by an embodiment of the present application.
  • FIG. 2 is a block diagram of an NVRAM provided by an embodiment of the present application.
  • the NVRAM is provided by the solid state storage device 102.
  • the control component 204 of the solid state storage device 102 also includes an NVRAM management module that provides the NVRAM service 200 by using portions of the DRAM 110 and portions of the NVM chip 105.
  • SRAM is used to partially or completely replace the DRAM.
  • the SRAM can be integrated inside the control component 204.
  • the NVRAM service is provided by using a portion of the DRAM 110 in accordance with the embodiment of FIG. 2, and the SRAM may be used to partially or completely replace the DRAM.
  • the NVRAM management module is implemented by, for example, software running in the CPU of the control unit 204, firmware, and/or hardware as part of the ASIC.
  • the host is coupled to the solid state storage device 102 via interface 103.
  • the host accesses the NVRAM service 200 provided by the solid state storage device 102 through the interface 103.
  • solid state storage device 102 is coupled to the host via a PCIe interface, mapping the NVRAM to a memory space of the PCIe device.
  • the host accesses the NVRAM service provided by the solid state storage device 102 in a manner that accesses the memory space of the PCIe device, so that the host can use the NVRAM service without modification.
  • NVRAM is provided to the host as a standalone PCIe device.
  • the NVRAM management module also serves other components of control component 204.
  • other programs running in the CPU of control component 204 may use NVRAM services. These programs use the NVRAM service in a way that accesses local memory (SRAM or DRAM).
  • the NVRAM service is organized as a file or object, and other programs running in the CPU of the control unit 204 use the NVRAM service in a manner that accesses files or objects.
  • FIG. 3 is a schematic diagram of an NVRAM address space provided by an embodiment of the present application.
  • the NVRAM address space is a contiguous address space.
  • the NVRAM management module maintains the NVRAM address space.
  • the direction from top to bottom in Figure 3 is the direction in which the NVRAM address space is incremented.
  • the NVRAM address space includes a plurality of regions of the same size, each of which is referred to as a small block.
  • a plurality of small blocks are shown in Fig. 3, including small block 0, small block 1 ... small block 5.
  • the size of the NVRAM address space corresponding to each tile may be, for example, 512 bytes, 1 KB, or 4 KB.
  • the small block corresponding to the address can be calculated.
  • the address of the NVRAM address space is divided by the size of the NVRAM address space corresponding to the small block, and the resulting quotient is the index or small block number (ID) of the small block.
  • ID small block number
  • the host operating with the NVRAM service or other program running in the CPU of control component 204 uses NVRAM in the NVRAM address space.
  • the NVRAM address space is directly mapped to the memory space of the PCIe device, and the NVRAM address space address is obtained directly or through a specified offset through the memory space address of the PCIe device.
  • the address space used by the application to use the NVRAM service (eg, the storage space of the PCIe device, or the offset value of the file) requires an address of the NVRAM address space through address translation.
  • the NVRAM management module also provides an address translation table for mapping the address space used by the application to the NVRAM address space.
  • FIG. 4 shows a small block conversion table provided by an embodiment of the present application.
  • the NVRAM management module maintains a small block conversion table.
  • the tile conversion table includes a plurality of entries, each entry corresponding to one of the tiles, and indexed by the tile ID, the value of the entry recording the address of the underlying chunk frame or the address of the memory slice providing the data for the tile.
  • the basic chunk frame and the memory slice will be described in detail later.
  • the value is identified to indicate the address of the underlying chunky frame or the address of the memory slice. For example, an entry value greater than a threshold is mapped to an address of a base chunk frame, and an entry value not greater than a threshold is mapped to an address of a memory slice.
  • a flag bit is also recorded in the entry to indicate whether the value of the entry indicates the address of the underlying chunky frame or the address of the memory slice.
  • the tile conversion table is stored, for example, in DRAM 110 (see also Figure 2) or SRAM.
  • the NVRAM management module calculates a corresponding small block ID according to the accessed NVRAM address space address, and queries the small block conversion table with the small block ID to obtain the address of the basic large frame or the address of the memory slice for providing data for the small block.
  • FIG. 5 is a block diagram showing the data organization for providing an NVRAM service provided by an embodiment of the present application.
  • the NVRAM management module uses portions of the NVM chip 105 (denoted as NVM chip 510) and portions of DRAM 110 (denoted as DRAM 520).
  • the storage space of the NVM chip 510 is organized into chunks.
  • a large block is a single physical block such as an NVM chip, a plurality of physical blocks of the same physical block number of each plane in the LUN of the NVM chip, or physical blocks from a plurality of LUNs.
  • the chunks also include parity data for providing protection for bulk stored data.
  • multiple copies of the data are stored in chunks for providing protection for bulk stored data.
  • the SLC storage unit of the NVM chip 105 is used as the NVM chip 510.
  • the chunks of storage are organized into frames (see chunk 512).
  • Bulk 512 includes multiple frames.
  • the size of the frame is the same as the size of the small block, so that the data stored in the NVRAM address space corresponding to one small block can be recorded in one frame.
  • Large chunks include at least two types, basic chunks and large chunks of logs.
  • the basic chunk of the frame is called the base chunk frame.
  • the value of the entry of the entry of the small block conversion table is the address of the underlying chunky frame indicating the underlying chunky frame.
  • the underlying chunky frame is accessible based on the address of the underlying chunky frame.
  • the memory space of DRAM 520 is organized into memory slices.
  • the memory chip is a piece of storage space such as DRAM 520.
  • the size of the memory chip is the same as the size of the small block, so that the data stored in the NVRAM address space corresponding to a small block can be recorded in a memory chip.
  • the value of the entry of the small block conversion table records the address of the memory slice, indicating the memory slice. The memory slice can be accessed according to the address of the memory chip.
  • the value of the entry (small block 0) of the tile conversion table indicates the address of the base chunk frame located at base chunk 514.
  • the value of the entry (small block 1) of the small block conversion table indicates the address of the memory slice 526.
  • the memory slice 526 is a copy of the base chunk 516 of the base chunk 516 in the DRAM 520 (in FIG. 5, indicated by the dashed line).
  • the NVRAM management module accesses the memory slice 526 by the value of the entry (small block 1) of the small block conversion table as an alternative to the base large block of the access base block 516 to efficiently access the corresponding block 1 in bytes. NVRAM address space.
  • the log chunk is used to record changes to the NVRAM address space. For example, writing data D to the address NADDR of the NVRAM address space generates a log entry, recording ⁇ NADDR, D>.
  • the NVRAM management module writes log entries for ⁇ NADDR,D> to the log chunk frame.
  • the NVRAM management module organizes log chunks into, for example, a linked list to facilitate access to multiple log chunks. For example, referring to FIG. 5, one log chunk frame (L1) of log chunk 532 records the address of one log chunk frame (L2) of log chunk 534, and one log chunk frame of log chunk 534 (L3).
  • the address of one log chunk frame (L4) of the log chunk 536 is recorded, and a log chunk frame (L5) of the log chunk 536 records the address of a log chunk frame (L6) of the log chunk 538.
  • the address of the log chunk frame (L1) of the log chunk 532 is recorded in the log chunk frame (L2) of the log chunk 534, and the log chunk frame of the log chunk 534 (L3)
  • the address is recorded in the log chunk frame of the log chunk 536 (L4), and the address of the log chunk frame (L5) of the log chunk 536 is recorded in the log chunk frame (L6) of the log chunk 538.
  • Individual log chunks within the log chunk are also organized into, for example, a linked list. For example, the address of another log frame of log chunk 532 is recorded in one of the log frames of log chunk 532.
  • the application modifies the NVRAM address space corresponding to the entry of the small block conversion table (small block 1), writes the data D to the address NADDR of the NVRAM address space, and generates the log entry of the recorded ⁇ NADDR, D>.
  • a log chunk of the log chunk 538 is written. Since the log chunk 538 is the storage space of the NVM chip, the log written to the log chunk 538 has a non-volatile characteristic. Even if the storage device is powered off, the next time the storage device is powered on, the log chunk 538 can still be read. Log entries for ⁇ NADDR,D> are recorded.
  • the NVRAM management module In response to the application writing data D to the address NADDR of the NVRAM address space, the NVRAM management module also records the data D in the memory slice 526 corresponding to the address NADDR. Since the memory chip is the storage space provided by the DRAM 520, it can be byte-addressed or randomly accessed, thereby efficiently performing the operation of recording the data D in the memory chip 526.
  • the memory slice 526 provides the ability to efficiently random access corresponding to the NVRAM address space of the tile 1, while the log chunk frame of the log chunk 538 records the log entry ⁇ NADDR, D>, corresponding to The update of the NVRAM address space for Tile 1 provides non-volatile capabilities.
  • the NVRAM address space which has both random access and non-volatile capabilities, provides NVRAN services to applications.
  • the NVRAM management module also maintains NVRAM metadata.
  • the NVRAM metadata records, for example, a log chunk header and a memory slice descriptor header.
  • the log chunk header is the address of the log chunk frame and indicates the head node of the log chunk frame list. Through the head node of the log chunk frame list, all nodes of the log chunk frame list can be traversed.
  • the memory slice descriptor header is the memory slice descriptor address and indicates the head node of the memory slice descriptor linked list.
  • the memory slice descriptor is used to describe the memory slice.
  • the used memory chip has a one-to-one correspondence with the memory slice description.
  • Memory descriptors are organized into, for example, linked lists.
  • the memory slice descriptor records the basic chunk frame address corresponding to the memory slice, and the memory slice descriptor also records the state of the memory slice, for example, the memory slice is being written to the data from the base large frame, the memory The slice data is being written to the base chunk frame, and the data of the memory slice is the same or different from its corresponding base chunk frame.
  • FIG. 6A is a flowchart of processing an NVRAM read request provided by an embodiment of the present application.
  • the application reads data from NVRAM.
  • the application reads data from the NVRAM in a manner that accesses memory; in yet another example, the application reads data from the NVRAM in a manner that accesses the file or object.
  • the NVRAM management module identifies the application to read data from the NVRAM. For example, the NVRAM management module recognizes that the application accesses the NVRAM address space, or the application accesses a file or object that provides the NVRAM service.
  • the NVRAM management module generates a small block index (small block ID) (A610) according to the address of the NVRAM address space to be read by the application.
  • the small block conversion table is queried according to the small block index (see also Figs. 3 - 5) (A620). Based on the value of the small block conversion table entry, it is identified whether the value records the address of the base chunk frame or the address of the memory slice (A630).
  • the small block conversion table entry records the address of the basic large block frame
  • the data to be accessed is read from the basic large block frame (A640); if the small block conversion table entry records the memory slice address, the read from the memory slice Data to be accessed (A650).
  • the NVRAM management module also generates an offset value from the address of the NVRAM address space to be read (eg, the specified bit of the address as an offset value).
  • the offset value is used to address the data to be read.
  • the data in the DRAM 520 is read as a result of the memory slice address plus the offset value (see also Figure 5).
  • FIG. 6B shows a flow chart of processing an NVRAM read request in accordance with yet another embodiment of the present application.
  • the application reads data from NVRAM.
  • the NVRAM management module identifies the NVRAM address space to be read by the application.
  • the NVRAM management module generates a small block index (small block ID) (B610) according to the address of the NVRAM address space to be read by the application.
  • the small block conversion table is queried according to the small block index (see also Figs. 3 - 5) (B620). According to the value of the small block conversion table entry, it is identified whether the value records the address of the base large frame or the address of the memory slice (B630).
  • the small block conversion table entry records the memory slice address
  • the data to be accessed is read from the memory slice (B650). If the small block conversion table entry records the address of the basic large block frame, and allocates a memory slice for the basic large block frame to be read, the data to be accessed is read from the basic large block frame and written into the allocated memory slice (B640). Read the data to be accessed from the allocated memory slice. And updating the entry of the small block conversion table (B660) with the address of the allocated memory slice to record the allocated memory slice address in the small block conversion table entry corresponding to the address of the NVRAM address space to be read.
  • the allocated memory slice in DRAM 520 is accessed with the assigned memory slice address plus the offset value generated from the address of the NVRAM address space to be read.
  • 6C is a flow chart showing processing of an NVRAM write request provided by another embodiment of the present application.
  • the application writes data to NVRAM.
  • the NVRAM management module identifies the NVRAM address space in which the application is to write data.
  • the NVRAM management module generates a small block index (small block ID) (C610) according to the address of the NVRAM address space to be written by the application.
  • the small block conversion table is queried according to the small block index (see also FIG. 3 to FIG. 5) (C620). Based on the value of the small block conversion table entry, it is identified whether the value records the address of the base chunk frame or the address of the memory slice (C630). If the small block conversion table entry records the memory slice address, the data is written to the memory slice (C650).
  • a log entry in which the NVRAM address space address NADDR to be accessed and the written data D are recorded is generated, and the log entry is written to the log.
  • Block frame (C660).
  • a log is also generated after the data is written to the memory slice.
  • the log records the log entry of the NVRAM address space address NADDR to be accessed and the data D being written, and writes the log entry to the log chunk frame.
  • the write request processing indicating to the application that the NVRAM address space is completed is completed.
  • the solid state storage device provides backup power to ensure that even if the solid state storage device is powered down, the generated logs are written to the log chunks or recorded on the NVM chip 520.
  • 6D is a flow chart showing processing of an NVRAM write request provided by still another embodiment of the present application.
  • the application writes data to NVRAM.
  • the NVRAM management module identifies the NVRAM address space (D610) to which the application is to write data.
  • the NVRAM management module generates a log entry (D620) that records the NVRAM address space address NADDR to be accessed and the data D to be written, and writes the log entry to the log chunk frame, according to the address of the NVRAM address space to be written by the application. (D630).
  • the write request processing indicating to the application that the NVRAM address space is completed is completed.
  • the NVRAM management module generates a small block index (small block ID) (D640) according to the address of the NVRAM address space to which the application is to be written.
  • the small block conversion table is also queried according to the small block index (see also FIG. 3 to FIG. 5) (D650). Based on the value of the small block conversion table entry, it is identified whether the value records the address of the base chunk frame or the address of the memory slice (D660). If the small block conversion table entry records the memory slice address, data is also written to the memory slice (D670).
  • the NVRAM management module concurrently performs an operation of generating a log and generating a small block index (small block ID), and completing any one of writing data to the memory chip and generating a log, that is, applying a write request indicating the NVRAM address space. Processing is complete. Thereby reducing the processing delay of the write request of the NVRAM address space.
  • FIG. 7 is a flowchart of power-on recovery NVRAM provided by an embodiment of the present application.
  • the NVRAM management module when the solid state storage device providing the NVRAM service is powered on, the NVRAM management module prepares to provide the NVRAM service through the flow shown in FIG. In response to the power-on, the NVRAM management module scans the memory slice descriptor list (710), and for each memory slice descriptor, obtains the address of the basic large frame corresponding to the memory slice recorded in the memory slice descriptor, and is larger from the base. The block frame reads the data and writes the read data to the memory slice (720).
  • the NVRAM management module also scans the log chunk frame list.
  • the log entry record is read from the log chunk frame in the log chunk frame list, and the memory slice is updated with the log entry record (730).
  • the log entry record indicates the NVRAM address space address NADDR and the data D to be written, accesses the small block conversion table according to the NVRAM address space address NADDR to obtain the corresponding memory slice, and writes the data D to the memory slice.
  • the NVRAM management module obtains the head node of the memory slice descriptor list from the NVRAM metadata, and the head node of the log block frame list.
  • the NVRAM metadata records the tail node of the memory slice descriptor list and the tail node of the log chunk frame list. And when the NVRAM is restored on the solid state storage device, the NVRAM management module obtains the tail node of the memory slice descriptor list from the NVRAM metadata, and the tail node of the log block frame list.
  • the NVRAM management module When the solid state storage device is powered down, the NVRAM management module writes the NVRAM metadata, the small block conversion table, and/or the memory slice descriptor to the NVM chip 520 for use in restoring NVRAM the next time power is applied.
  • a solid state storage device which includes a controller and a nonvolatile memory chip, wherein the controller performs any one of the processing methods provided by the embodiments of the present application.
  • a program stored on a readable medium when executed by a controller of a solid state storage device, causes the solid state storage device to perform any of the processing methods provided in accordance with embodiments of the present application, in accordance with an embodiment of the present application.

Abstract

A non-volatile random access memory (NVRAM) and a method for providing same. The provided non-volatile random access memory comprises: a control component, a random access memory (RAM) and an NVM chip, wherein the control component comprises an NVRAM management module; a part of the random access memory (RAM) and a part of the NVM chip provide an NVRAM service; the NVRAM management module accesses, according to an NVRAM address space, the random access memory (RAM) and NVM chip providing the NVRAM service; the random access memory (RAM) provides an efficient random access capability for the corresponding NVRAM address space; and the NVM chip provides a non-volatility capability for the update of the corresponding NVRAM address space.

Description

非易失随机访问存储器及其提供方法Nonvolatile random access memory and method of providing same
相关申请的交叉引用Cross-reference to related applications
本申请要求2018年1月31日提交的中国专利申请2018100940602(发明名称为非易失随机访问存储器及其提供方法)的优先权,其全部内容通过引用合并于此。The present application claims priority to Chinese Patent Application No. 2018100940602, the entire disclosure of which is hereby incorporated by reference.
技术领域Technical field
本申请涉及非易失随机访问存储器(NVRAM,Non-VolatileRandom Access Memory)及其提供方法。The present application relates to a non-Volatile Random Access Memory (NVRAM) and a method of providing the same.
背景技术Background technique
图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。Figure 1 shows a block diagram of a solid state storage device. The solid state storage device 102 is coupled to the host for providing storage capabilities to the host. The host and the solid-state storage device 102 can be coupled in various manners, including but not limited to, for example, SATA (Serial Advanced Technology Attachment), SCSI (Small Computer System Interface). , SAS (Serial Attached SCSI), IDE (Integrated Drive Electronics), USB (Universal Serial Bus), PCIE (Peripheral Component Interconnect Express, PCIe, High Speed Peripheral Component Interconnect) NVMe (NVM Express, high speed nonvolatile storage), Ethernet, Fibre Channel, wireless communication network, etc. are connected to the host and solid state storage device 102. The host may be an information processing device capable of communicating with the storage device in the manner described above, such as a personal computer, tablet, server, portable computer, network switch, router, cellular telephone, personal digital assistant, and the like. The storage device 102 includes an interface 103, a control unit 104, one or more NVM chips 105, and a DRAM (Dynamic Random Access Memory) 110.
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(Magnetic Random Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。NAND flash memory, phase change memory, FeRAM (Ferroelectric RAM), MRAM (Magnetic Random Access Memory), RRAM (Resistive Random Access Memory), XPoint memory, etc. are common NVMs.
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光 纤通道等方式与主机交换数据。The interface 103 can be adapted to exchange data with the host via, for example, SATA, IDE, USB, PCIE, NVMe, SAS, Ethernet, Fibre Channel, and the like.
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。 Control component 104 is used to control data transfers between interface 103, NVM chip 105, and DRAM 110, as well as for storage management, host logical address to flash physical address mapping, erase equalization, bad block management, and the like. The control unit 104 can be implemented in various manners of software, hardware, firmware, or a combination thereof. For example, the control unit 104 can be an FPGA (Field-programmable gate array) or an ASIC (Application Specific Integrated Circuit). Integrated circuit) or a combination thereof. Control component 104 may also include a processor or controller that executes software in the processor or controller to manipulate the hardware of control component 104 to process IO (Input/Output) commands. Control component 104 can also be coupled to DRAM 110 and can access data from DRAM 110. The DRAM can store data for FTL tables and/or cached IO commands.
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。The control component 104 includes a flash interface controller (or media interface controller, flash channel controller) coupled to the NVM chip 105 and issuing commands to the NVM chip 105 in a manner that follows the interface protocol of the NVM chip 105. To operate the NVM chip 105 and receive the command execution result output from the NVM chip 105. Known NVM chip interface protocols include "Toggle", "ONFI", and the like.
存储器目标(Target)是NAND闪存封装内的共享CE(,Chip Enable,芯片使能)信号的一个或多个逻辑单元(LUN,Logic UNit)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。A memory target (Target) is one or more logical units (LUNs, Logic UNit) of a shared CE (Chip Enable) signal within a NAND flash package. One or more dies (Die) may be included in the NAND flash package. Typically, the logic unit corresponds to a single die. The logic unit can include a plurality of planes. Multiple planes within a logical unit can be accessed in parallel, while multiple logical units within a NAND flash chip can execute command and report states independently of each other.
存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。Data is typically stored and read on a storage medium by page. And erase the data by block. A block (also called a physical block) contains multiple pages. A block contains multiple pages. A page on a storage medium (referred to as a physical page) has a fixed size, such as 17,664 bytes. Physical pages can also have other sizes.
在固态存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。In a solid-state storage device, FTL (Flash Translation Layer) is used to maintain mapping information from a logical address to a physical address. The logical address constitutes the storage space of the solid-state storage device perceived by the upper layer software such as the operating system. The physical address is the address of the physical storage unit used to access the solid state storage device. The address mapping can also be implemented in the related art using the intermediate address form. For example, a logical address is mapped to an intermediate address, and the intermediate address is further mapped to a physical address.
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。A table structure that stores mapping information from a logical address to a physical address is called an FTL table. FTL tables are important metadata in solid state storage devices. Usually, the data items of the FTL table record the address mapping relationship in units of data pages in the solid state storage device.
NVM存储介质的每个存储单元可存储1比特或多比特信息。例如,可存储了1比特信 息的存储单元称为SLC(单级单元,Single Level Cell),可存储2比特信息的存储单元称为MLC(多级单元,MultipleLevelCell),可存储3比特信息的存储单元称为TLC(三级单元,TripleLevelCell),可存储4比特信息的存储单元称为QLC(四级单元,quadruple Level Cell)。Each storage unit of the NVM storage medium can store 1 bit or more bits of information. For example, a storage unit that can store 1-bit information is called an SLC (Single Level Cell), and a storage unit that can store 2-bit information is called an MLC (Multiple Level Cell), and can store 3-bit information. The unit is called TLC (Triple Level Cell), and the storage unit that can store 4-bit information is called QLC (quadruple level Cell).
NVRAM是可被随机访问的存储器,并且即使电源断电,NVRAM中存储的数据也不会丢失。在下次上电后,NVRAM中存储的数据可被再次访问。NVRAM is a memory that can be accessed randomly, and the data stored in NVRAM is not lost even if the power is turned off. The data stored in the NVRAM can be accessed again after the next power-up.
发明内容Summary of the invention
本申请意在通过固态存储设备提供NVRAM,并且所提供的NVRAM可由同固态存储设备耦合的主机访问,和/或由固态存储设备的控制器访问。The present application is intended to provide NVRAM through a solid state storage device, and the provided NVRAM can be accessed by a host coupled to the solid state storage device and/or accessed by a controller of the solid state storage device.
根据本申请的第一方面,提供了根据本申请第一方面的第一非易失随机访问存储器,包括:控制部件、随机访问存储器RAM和NVM芯片,其中,所述控制部件包括NVRAM管理模块,所述随机访问存储器RAM的部分和NVM芯片的部分提供NVRAM服务,所述NVRAM管理模块根据NVRAM地址空间访问提供NVRAM服务的随机访问存储器RAM和NVM芯片。According to a first aspect of the present application, there is provided a first nonvolatile random access memory according to the first aspect of the present application, comprising: a control unit, a random access memory RAM and an NVM chip, wherein the control unit comprises an NVRAM management module, The portion of the random access memory RAM and the portion of the NVM chip provide NVRAM service, and the NVRAM management module accesses the random access memory RAM and the NVM chip that provide the NVRAM service according to the NVRAM address space.
根据本申请的第一方面的第一非易失随机访问存储器,提供了根据本申请第一方面的第二非易失随机访问存储器,其中,所述提供NVRAM服务的NVM芯片的存储空间被组织为多个大块,提供NVRAM服务的随机访问存储器RAM的存储空间被组织为多个内存片,所述NVRAM地址空间被组织为多个小块,所述NVRAM管理模块根据所述小块指示的大块或内存片的地址访问所述大块或内存片。According to a first nonvolatile random access memory of the first aspect of the present application, there is provided a second nonvolatile random access memory according to the first aspect of the present application, wherein a storage space of the NVM chip providing the NVRAM service is organized For a plurality of large blocks, the storage space of the random access memory RAM providing the NVRAM service is organized into a plurality of memory slices, the NVRAM address space being organized into a plurality of small blocks, the NVRAM management module indicating according to the small blocks The chunk or slice of memory accesses the chunk or slice of memory.
根据本申请的第一方面的第一或第二非易失随机访问存储器,提供了根据本申请第一方面的第三非易失随机访问存储器,其中,随机访问存储器RAM为动态随机存取存储器DRAM。According to the first or second nonvolatile random access memory of the first aspect of the present application, there is provided a third nonvolatile random access memory according to the first aspect of the present application, wherein the random access memory RAM is a dynamic random access memory DRAM.
根据本申请的第一方面的第三非易失随机访问存储器,提供了根据本申请第一方面的第四非易失随机访问存储器,其中,所述动态随机存取存储器DRAM的部分或全部由静态随机存取存储器SRAM替代。According to a third nonvolatile random access memory of the first aspect of the present application, there is provided a fourth nonvolatile random access memory according to the first aspect of the present application, wherein part or all of the dynamic random access memory DRAM is Static random access memory SRAM replacement.
根据本申请的第一方面的第一或第二非易失随机访问存储器,提供了根据本申请第一方面的第五非易失随机访问存储器,其中,NVRAM地址空间是连续的地址空间。According to the first or second nonvolatile random access memory of the first aspect of the present application, there is provided a fifth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM address space is a continuous address space.
根据本申请的第一方面的第一或第二非易失随机访问存储器,提供了根据本申请第一方面的第六非易失随机访问存储器,其中,NVRAM管理模块维护NVRAM地址空间。According to the first or second nonvolatile random access memory of the first aspect of the present application, there is provided a sixth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module maintains an NVRAM address space.
根据本申请的第一方面的第六非易失随机访问存储器,提供了根据本申请第一方面的第七非易失随机访问存储器,其中,所述每个小块占用NVRAM地址空间的区域的大小相同。According to a sixth nonvolatile random access memory of the first aspect of the present application, there is provided a seventh nonvolatile random access memory according to the first aspect of the present application, wherein each of the small blocks occupies an area of the NVRAM address space The same size.
根据本申请的第一方面的第六或第七非易失随机访问存储器,提供了根据本申请第一方面的第八非易失随机访问存储器,其中,所述NVRAM管理模块根据NVRAM地址空间的地址,计算该地址对应的小块。According to a sixth or seventh nonvolatile random access memory of the first aspect of the present application, there is provided an eighth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module is based on an NVRAM address space Address, calculate the small block corresponding to the address.
根据本申请的第一方面的第八非易失随机访问存储器,提供了根据本申请第一方面的第九非易失随机访问存储器,其中,所述NVRAM管理模块根据NVRAM地址空间的地址除以小块对应的NVRAM地址空间的大小,得到小块的索引。According to an eighth nonvolatile random access memory of the first aspect of the present application, there is provided a ninth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module divides the address of the NVRAM address space by The size of the NVRAM address space corresponding to the small block gets the index of the small block.
根据本申请的第一方面的第二非易失随机访问存储器,提供了根据本申请第一方面的第十非易失随机访问存储器,其中,所述内存片的大小同小块的大小相同。According to a second nonvolatile random access memory of the first aspect of the present application, there is provided a tenth nonvolatile random access memory according to the first aspect of the present application, wherein the size of the memory chip is the same as the size of the small block.
根据本申请的第一方面的第二非易失随机访问存储器,提供了根据本申请第一方面的第十一非易失随机访问存储器,其中,所述大块包括:基础大块和日志大块,所述基础大块用于存储数据,所述日志大块用于记录对NVRAM地址空间的修改。According to a second nonvolatile random access memory of the first aspect of the present application, there is provided an eleventh nonvolatile random access memory according to the first aspect of the present application, wherein the large block comprises: a base chunk and a large log A block, the base chunk is used to store data, and the log chunk is used to record modifications to the NVRAM address space.
根据本申请的第一方面的第十一非易失随机访问存储器,提供了根据本申请第一方面的第十二非易失随机访问存储器,其中,所述大块的存储空间被组织为帧。According to an eleventh nonvolatile random access memory of the first aspect of the present application, there is provided a twelfth nonvolatile random access memory according to the first aspect of the present application, wherein the storage space of the large block is organized into a frame .
根据本申请的第一方面的第十二非易失随机访问存储器,提供了根据本申请第一方面的第十三非易失随机访问存储器,其中,所述NVRAM管理模块将日志大块帧组织为链表。According to a twelfth nonvolatile random access memory of the first aspect of the present application, there is provided a thirteenth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module organizes a log chunk frame For the linked list.
根据本申请的第一方面的第十二或十三非易失随机访问存储器,提供了根据本申请第一方面的第十四非易失随机访问存储器,其中,所述NVRAM管理模块将日志大块内的各个日志大块帧组织为链表。According to a twelfth or thirteenth nonvolatile random access memory of the first aspect of the present application, there is provided a fourteenth nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module has a large log Each log chunk frame within the block is organized into a linked list.
根据本申请的第一方面的第十二非易失随机访问存储器,提供了根据本申请第一方面的第十五非易失随机访问存储器,其中,所述帧的大小同小块的大小相同。According to a twelfth nonvolatile random access memory of the first aspect of the present application, there is provided a fifteenth nonvolatile random access memory according to the first aspect of the present application, wherein the size of the frame is the same as the size of the small block .
根据本申请的第一方面的第十二非易失随机访问存储器,提供了根据本申请第一方面的第十六非易失随机访问存储器,其中,响应于向NVRAM地址空间的地址NADDR写入数据D,所述NVRAM管理模块生成记录了<NADDR,D>的日志条目,所述NVRAM管理模块将日志条目写入日志大块帧。According to a twelfth nonvolatile random access memory of the first aspect of the present application, there is provided a sixteenth nonvolatile random access memory according to the first aspect of the present application, wherein, in response to writing to an address NADDR of an NVRAM address space Data D, the NVRAM management module generates a log entry that records <NADDR, D>, and the NVRAM management module writes the log entry to the log chunk frame.
根据本申请的第一方面的第十一或十二非易失随机访问存储器,提供了根据本申请第一方面的第十七非易失随机访问存储器,其中,响应于向NVRAM地址空间的地址NADDR 写入数据D,所述NVRAM管理模块将数据D记录在与地址NADDR对应的内存片中。According to the eleventh or twelfth nonvolatile random access memory of the first aspect of the present application, there is provided a seventeenth nonvolatile random access memory according to the first aspect of the present application, wherein the address in response to the address space to the NVRAM NADDR writes data D, and the NVRAM management module records the data D in a memory slice corresponding to the address NADDR.
根据本申请的第一方面的第十二非易失随机访问存储器,提供了根据本申请第一方面的第十八非易失随机访问存储器,其中,所述随机访问存储器RAM存储有小块转换表,所述小块转换表包括多个条目,每个条目对应于小块之一,条目的值记录了为小块提供数据的基础大块帧的地址或内存片的地址。According to a twelfth nonvolatile random access memory of the first aspect of the present application, there is provided an eighteenth nonvolatile random access memory according to the first aspect of the present application, wherein the random access memory RAM stores a small block conversion A table, the small block conversion table includes a plurality of entries, each entry corresponding to one of the small blocks, the value of the entry recording the address of the underlying chunky frame or the address of the memory slice that provides data for the tile.
根据本申请的第一方面的第十八非易失随机访问存储器,提供了根据本申请第一方面的第十九非易失随机访问存储器,其中,将大于阈值的NVRAM地址空间地址映射为基础大块帧的地址,将不大于阈值的NVRAM地址空间地址,映射为内存片的地址。According to an eighteenth nonvolatile random access memory of the first aspect of the present application, there is provided a nineteenth nonvolatile random access memory according to the first aspect of the present application, wherein an NVRAM address space address larger than a threshold is mapped as a basis The address of a large block of frames, mapping the NVRAM address space address that is not greater than the threshold to the address of the memory slice.
根据本申请的第一方面的第十八非易失随机访问存储器,提供了根据本申请第一方面的第二十非易失随机访问存储器,其中,条目中记录有标志位,标志位用于指示条目的值指示基础大块帧的地址或内存片的地址。According to an eighteenth nonvolatile random access memory of the first aspect of the present application, there is provided a twentieth nonvolatile random access memory according to the first aspect of the present application, wherein a flag is recorded in an entry, and a flag bit is used for The value of the indication entry indicates the address of the underlying chunky frame or the address of the memory slice.
根据本申请的第一方面的第十二非易失随机访问存储器,提供了根据本申请第一方面的第二十一非易失随机访问存储器,其中,所述NVRAM管理模块维护NVRAM元数据。According to a twelfth nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-first nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM management module maintains NVRAM metadata.
根据本申请的第一方面的第二十一非易失随机访问存储器,提供了根据本申请第一方面的第二十二非易失随机访问存储器,其中,NVRAM元数据记录日志大块帧头和内存片描述符头;所述日志大块帧头是日志大块帧的地址,并且指示了日志大块帧链表的头节点;所述内存片描述符头是内存片描述符地址,并且指示了内存片描述符链表的头节点。According to a twenty-first nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-second nonvolatile random access memory according to the first aspect of the present application, wherein the NVRAM metadata recording log chunk header And a memory slice descriptor header; the log chunk header is an address of the log chunk frame, and indicates a head node of the log chunk frame list; the memory slice descriptor header is a memory slice descriptor address, and indicates The head node of the memory slice descriptor list.
根据本申请的第一方面的第二十二非易失随机访问存储器,提供了根据本申请第一方面的第二十三非易失随机访问存储器,其中,所述内存片描述符用于描述内存片。According to a twenty-second nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-third nonvolatile random access memory according to the first aspect of the present application, wherein the memory slice descriptor is used for description Memory chip.
根据本申请的第一方面的第二十二或二十三非易失随机访问存储器,提供了根据本申请第一方面的第二十四非易失随机访问存储器,其中,内存片描述符记录了内存片所对应的基础大块帧地址。According to a twenty-second or twenty-third nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-fourth nonvolatile random access memory according to the first aspect of the present application, wherein the memory slice descriptor record The basic chunk frame address corresponding to the memory slice.
根据本申请的第一方面的第二十二或二十三非易失随机访问存储器,提供了根据本申请第一方面的第二十五非易失随机访问存储器,其中,内存片描述符记录了内存片的状态。According to a twenty-second or twenty-third nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-fifth nonvolatile random access memory according to the first aspect of the present application, wherein the memory slice descriptor record The state of the memory chip.
根据本申请的第一方面的第二十二或二十三非易失随机访问存储器,提供了根据本申请第一方面的第二十六非易失随机访问存储器,其中,所述内存片与所述内存片描述符一一对应。According to a twenty-second or twenty-third nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-sixth nonvolatile random access memory according to the first aspect of the present application, wherein the memory chip and The memory slice descriptors are in one-to-one correspondence.
根据本申请的第一方面的第二十二至二十六非易失随机访问存储器,提供了根据本申请第一方面的第二十七非易失随机访问存储器,其中,所述内存片描述符被组织为链表。According to a twenty-second to twenty-sixth nonvolatile random access memory of the first aspect of the present application, there is provided a twenty-seventh nonvolatile random access memory according to the first aspect of the present application, wherein the memory chip description The symbols are organized into linked lists.
根据本申请的第二方面,提供了根据本申请第二方面的第一提供非易失随机访问存 储器的方法,包括如下步骤:识别访问的NVRAM地址空间;识别访问的NVRAM地址空间的地址被映射到基础大块帧的地址还是内存片地址;根据识别结果从基础大块帧或内存片中获取待访问的数据。According to a second aspect of the present application, there is provided a first method of providing a nonvolatile random access memory according to the second aspect of the present application, comprising the steps of: identifying an accessed NVRAM address space; identifying an address of the accessed NVRAM address space being mapped The address to the basic chunk frame is also the memory slice address; the data to be accessed is obtained from the basic chunk frame or the memory slice according to the recognition result.
根据本申请的第二方面的第一提供非易失随机访问存储器的方法,提供了根据本申请第二方面的第二提供非易失随机访问存储器的方法,其中,基础大块帧是位于NVM芯片的存储块的存储单元,内存片是位于易失性存储器的存储单元。According to a first method of providing a nonvolatile random access memory according to a second aspect of the present application, there is provided a second method of providing a nonvolatile random access memory according to the second aspect of the present application, wherein the base chunk frame is located at the NVM A memory cell of a memory block of a chip, which is a memory cell located in a volatile memory.
根据本申请的第二方面的第一或第二提供非易失随机访问存储器的方法,提供了根据本申请第二方面的第三提供非易失随机访问存储器的方法,其中,根据要访问的NVRAM地址空间的地址,生成小块索引(ID);根据小块索引(ID)访问小块转换表;根据要访问的NVRAM地址空间的地址获取小块转换表条目,根据小块转换表条目识别要访问的NVRAM地址空间的地址被映射到基础大块帧的地址还是内存片地址。According to a first or second method of providing a nonvolatile random access memory according to a second aspect of the present application, there is provided a third method of providing a nonvolatile random access memory according to the second aspect of the present application, wherein The address of the NVRAM address space, generates a small block index (ID); accesses the small block conversion table according to the small block index (ID); acquires the small block conversion table entry according to the address of the NVRAM address space to be accessed, and identifies according to the small block conversion table entry The address of the NVRAM address space to be accessed is mapped to the address of the underlying chunky frame or the memory slice address.
根据本申请的第二方面的第三提供非易失随机访问存储器的方法,提供了根据本申请第二方面的第四提供非易失随机访问存储器的方法,其中,由小块提供NVRAM地址空间,多个小块共同提供了完整的NVRAM地址空间。According to a third method of providing a nonvolatile random access memory according to the second aspect of the present application, there is provided a fourth method of providing a nonvolatile random access memory according to the second aspect of the present application, wherein the NVRAM address space is provided by a small block Multiple small blocks together provide a complete NVRAM address space.
根据本申请的第二方面的第一至第四提供非易失随机访问存储器的方法,提供了根据本申请第二方面的第五提供非易失随机访问存储器的方法,还包括:从待访问的NVRAM地址空间的地址生成偏移值,对于从基础大块帧读出的数据,用偏移值寻址得到待访问的数据。According to a first to fourth method of providing a nonvolatile random access memory according to a second aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to a fifth aspect of the second aspect of the present application, further comprising: from to be accessed The address of the NVRAM address space generates an offset value, and for data read from the base chunk frame, the data to be accessed is obtained by offset value addressing.
根据本申请的第二方面的第一至第四提供非易失随机访问存储器的方法,提供了根据本申请第二方面的第六提供非易失随机访问存储器的方法,还包括:从待访问的NVRAM地址空间的地址生成偏移值,从内存片获取待访问的数据。According to a first to fourth method of providing a nonvolatile random access memory according to a second aspect of the present application, there is provided a sixth method of providing a nonvolatile random access memory according to the second aspect of the present application, further comprising: from to be accessed The address of the NVRAM address space generates an offset value, and the data to be accessed is obtained from the memory slice.
根据本申请的第二方面的第三或第四提供非易失随机访问存储器的方法,提供了根据本申请第二方面的第七提供非易失随机访问存储器的方法,其中,若小块转换表条目记录的是内存片地址,从内存片获取待访问的数据;若小块转换表条目记录的是基础大块帧的地址,为待获取数据的基础大块帧分配内存片,将从待获取数据的基础大块帧读出待访问的数据写入分配的内存片,从分配的内存片中获取待访问的数据。According to a third or fourth method of providing a nonvolatile random access memory according to the second aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to the seventh aspect of the second aspect of the present application, wherein if the small block conversion The table entry records the memory slice address, and obtains the data to be accessed from the memory slice; if the small block conversion table entry records the address of the basic large block frame, the memory slice is allocated for the basic large frame frame to be acquired, and will be waiting for The basic chunk frame of the acquired data reads out the data to be accessed and writes the allocated memory slice, and acquires the data to be accessed from the allocated memory slice.
根据本申请的第二方面的第七提供非易失随机访问存储器的方法,提供了根据本申请第二方面的第八提供非易失随机访问存储器的方法,其中,还包括:用分配的内存片地址更新小块转换表条目。A method of providing a nonvolatile random access memory according to a seventh aspect of the second aspect of the present application, provides a method of providing a nonvolatile random access memory according to the eighth aspect of the second aspect of the present application, further comprising: using the allocated memory The slice address updates the small block conversion table entry.
根据本申请的第三方面,提供了根据本申请第三方面的第一提供非易失随机访问存 储器的方法,包括如下步骤:识别要被写入数据的NVRAM地址空间;识别要被写入数据的NVRAM地址空间的地址被映射到基础大块帧的地址或内存片地址;若要被写入数据的NVRAM地址空间的地址是内存片地址,则向内存片写入数据;若要被写入数据的NVRAM地址空间的地址是基础大块帧的地址,则生成记录了要被写入数据的NVRAM地址空间地址NADDR与被写入的数据D的日志条目,将日志条目写入日志大块帧。According to a third aspect of the present application, there is provided a first method of providing a nonvolatile random access memory according to the third aspect of the present application, comprising the steps of: identifying an NVRAM address space to be written data; identifying data to be written The address of the NVRAM address space is mapped to the address of the base chunk frame or the memory slice address; if the address of the NVRAM address space to be written to the data is the memory slice address, data is written to the memory slice; to be written The address of the NVRAM address space of the data is the address of the base chunk frame, and a log entry is generated in which the NVRAM address space address NADDR to be written data and the data D to be written are recorded, and the log entry is written into the log chunk frame. .
根据本申请的第三方面的第一提供非易失随机访问存储器的方法,提供了根据本申请第三方面的第二提供非易失随机访问存储器的方法,其中,基础大块帧是位于NVM芯片的存储块的存储单元,日志大块帧位于NVM芯片的存储块的存储单元,内存片是位于易失性存储器的存储单元。According to a first method of providing a nonvolatile random access memory of a third aspect of the present application, there is provided a second method of providing a nonvolatile random access memory according to the third aspect of the present application, wherein the base chunk frame is located at the NVM The storage unit of the storage block of the chip, the log chunk frame is located in the storage unit of the storage block of the NVM chip, and the memory slice is a storage unit located in the volatile memory.
根据本申请的第三方面的第一或第二提供非易失随机访问存储器的方法,提供了根据本申请第三方面的第三提供非易失随机访问存储器的方法,其中,根据要被写入数据的NVRAM地址空间的地址,生成小块索引(ID);根据小块索引(ID)访问小块转换表;根据要被写入数据的NVRAM地址空间的地址获取小块转换表条目,根据小块转换表条目识别要被写入数据的NVRAM地址空间的地址被映射到基础大块帧的地址还是内存片地址。According to a first or second method of providing a nonvolatile random access memory according to a third aspect of the present application, there is provided a third method of providing a nonvolatile random access memory according to the third aspect of the present application, wherein Enter the address of the NVRAM address space of the data, generate a small block index (ID); access the small block conversion table according to the small block index (ID); obtain the small block conversion table entry according to the address of the NVRAM address space to be written data, according to The small block conversion table entry identifies whether the address of the NVRAM address space to which the data is to be written is mapped to the address of the underlying chunky frame or the memory slice address.
根据本申请的第三方面的第三提供非易失随机访问存储器的方法,提供了根据本申请第三方面的第四提供非易失随机访问存储器的方法,其中,由小块提供NVRAM地址空间,多个小块共同提供了完整的NVRAM地址空间。According to a third method of providing a nonvolatile random access memory of the third aspect of the present application, there is provided a fourth method of providing a nonvolatile random access memory according to the third aspect of the present application, wherein the NVRAM address space is provided by a small block Multiple small blocks together provide a complete NVRAM address space.
根据本申请的第三方面的第一至第四提供非易失随机访问存储器的方法,提供了根据本申请第三方面的第五提供非易失随机访问存储器的方法,还包括:若小块转换表条目记录的是内存片地址,向内存片写入数据后,生成日志条目;将日志条目写入日志大块帧。According to a first to fourth method of providing a nonvolatile random access memory of a third aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to a fifth aspect of the third aspect of the present application, further comprising: if the small block The conversion table entry records the memory slice address. After the data is written to the memory slice, a log entry is generated; the log entry is written to the log chunk frame.
根据本申请的第三方面的第五提供非易失随机访问存储器的方法,提供了根据本申请第三方面的第六提供非易失随机访问存储器的方法,其中,日志条目记录了要被写入数据的NVRAM地址空间地址NVRAM与被写入的数据D。According to a fifth method of providing a nonvolatile random access memory of the third aspect of the present application, there is provided a sixth method of providing a nonvolatile random access memory according to the third aspect of the present application, wherein the log entry records to be written The NVRAM address space address of the incoming data is NVRAM and the data D being written.
根据本申请的第三方面的第一至第六提供非易失随机访问存储器的方法,提供了根据本申请第三方面的第七提供非易失随机访问存储器的方法,其中,为要向NVRAM地址空间地址NADDR写入数据D生成日志条目后,指示向NVRAM地址空间的写入数据处理完成。According to a first to sixth method of providing a nonvolatile random access memory of a third aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to a seventh aspect of the third aspect of the present application, wherein After the address space address NADDR writes the data D to generate a log entry, it indicates that the write data processing to the NVRAM address space is completed.
根据本申请的第三方面的第一至第七提供非易失随机访问存储器的方法,提供了根据本申请第三方面的第八提供非易失随机访问存储器的方法,其中,生成日志条目,并将日 志条目写入日志大块帧,指示NADDR地址空间的写入数据处理完成。A method of providing a nonvolatile random access memory according to the first to seventh aspects of the third aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to the eighth aspect of the third aspect of the present invention, wherein a log entry is generated, The log entry is written to the log chunk frame, indicating that the write data processing of the NADDR address space is complete.
根据本申请的第四方面,提供了根据本申请第四方面的第一提供非易失随机访问存储器的方法,包括如下步骤:识别要被写入数据的NVRAM地址空间;根据要被写入数据的NVRAM地址空间的地址,生成记录了要被写入数据的NVRAM地址空间地址NVRAM与要被写入的数据D的日志条目;将日志条目写入日志大块帧。According to a fourth aspect of the present application, there is provided a first method of providing a nonvolatile random access memory according to the fourth aspect of the present application, comprising the steps of: identifying an NVRAM address space to be written data; according to data to be written The address of the NVRAM address space generates a log entry that records the NVRAM address space address NVRAM to be written with data and the data D to be written; writes the log entry to the log chunk frame.
根据本申请的第四方面的第一提供非易失随机访问存储器的方法,提供了根据本申请第四方面的第二提供非易失随机访问存储器的方法,其中,日志大块帧位于NVM芯片的存储块的存储单元。According to a first method of providing a nonvolatile random access memory according to a fourth aspect of the present application, there is provided a second method of providing a nonvolatile random access memory according to the fourth aspect of the present application, wherein the log chunk frame is located in the NVM chip The storage unit of the storage block.
根据本申请的第四方面的第一或第二提供非易失随机访问存储器的方法,提供了根据本申请第四方面的第三提供非易失随机访问存储器的方法,还包括:识别要写入数据的NVRAM地址空间的地址被映射到基础大块帧的地址或内存片地址;若要被写入数据的NVRAM地址空间的地址是内存片地址,向内存片写入数据。According to a first or second method of providing a nonvolatile random access memory according to a fourth aspect of the present application, there is provided a third method for providing a nonvolatile random access memory according to the fourth aspect of the present application, further comprising: identifying that a write is to be performed The address of the NVRAM address space of the incoming data is mapped to the address or the memory slice address of the underlying chunky frame; if the address of the NVRAM address space to which the data is to be written is the memory slice address, data is written to the memory slice.
根据本申请的第四方面的第三提供非易失随机访问存储器的方法,提供了根据本申请第四方面的第四提供非易失随机访问存储器的方法,其中,内存片是位于易失性存储器的存储单元。According to a third method of providing a nonvolatile random access memory according to the fourth aspect of the present application, there is provided a fourth method for providing a nonvolatile random access memory according to the fourth aspect of the present application, wherein the memory chip is located in a volatile The storage unit of the memory.
根据本申请的第四方面的第三或第四提供非易失随机访问存储器的方法,提供了根据本申请第四方面的第五提供非易失随机访问存储器的方法,其中,根据要被写入数据的NVRAM地址空间的地址,生成小块索引(ID);根据小块索引(ID)访问小块转换表;根据要被写入数据的NVRAM地址空间的地址获取小块转换表条目,根据小块转换表条目识别要被写入数据的NVRAM地址空间的地址被映射到基础大块帧的地址还是内存片地址。According to a third or fourth method of providing a nonvolatile random access memory according to the fourth aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to a fifth aspect of the fourth aspect of the present application, wherein Enter the address of the NVRAM address space of the data, generate a small block index (ID); access the small block conversion table according to the small block index (ID); obtain the small block conversion table entry according to the address of the NVRAM address space to be written data, according to The small block conversion table entry identifies whether the address of the NVRAM address space to which the data is to be written is mapped to the address of the underlying chunky frame or the memory slice address.
根据本申请的第四方面的第五提供非易失随机访问存储器的方法,提供了根据本申请第四方面的第六提供非易失随机访问存储器的方法,其中,由小块提供NVRAM地址空间,多个小块共同提供了完整的NVRAM地址空间。According to a fifth method of providing a nonvolatile random access memory of the fourth aspect of the present application, there is provided a sixth method of providing a nonvolatile random access memory according to the fourth aspect of the present application, wherein the NVRAM address space is provided by a small block Multiple small blocks together provide a complete NVRAM address space.
根据本申请的第四方面的第五或第六提供非易失随机访问存储器的方法,提供了根据本申请第四方面的第七提供非易失随机访问存储器的方法,其中,并发地执行生成日志条目与生成小块索引(ID)。According to a fifth or sixth method of providing a nonvolatile random access memory according to the fourth aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to a seventh aspect of the fourth aspect of the present application, wherein the generating is performed concurrently Log entries and generate small block indexes (IDs).
根据本申请的第四方面的第三至第七提供非易失随机访问存储器的方法,提供了根据本申请第四方面的第八提供非易失随机访问存储器的方法,其中,向内存片写入数据和生成日志条目任一项完成,指示NVRAM地址空间的写入数据处理完成。According to a third to seventh method of providing a nonvolatile random access memory according to the fourth aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to the eighth aspect of the fourth aspect of the present application, wherein writing to a memory chip The entry data and the generated log entry are completed, indicating that the write data processing of the NVRAM address space is completed.
根据本申请的第五方面,提供了根据本申请第五方面的第一提供非易失随机访问存储器 的方法,包括如下步骤:响应于上电,扫描内存片描述符链表;获取每个内存片描述符中记录的同内存片对应的基础大块帧的地址;从基础大块帧读出数据并将读出数据写入内存片。According to a fifth aspect of the present application, there is provided a first method for providing a nonvolatile random access memory according to the fifth aspect of the present application, comprising the steps of: scanning a memory slice descriptor linked list in response to powering up; acquiring each memory slice The address of the base chunk frame corresponding to the memory slice recorded in the descriptor; the data is read from the base chunk frame and the read data is written into the memory slice.
根据本申请的第五方面的第一提供非易失随机访问存储器的方法,提供了根据本申请第五方面的第二提供非易失随机访问存储器的方法,其中,基础大块帧是位于NVM芯片的存储块的存储单元,内存片是位于易失性存储器的存储单元。According to a first method of providing a nonvolatile random access memory according to a fifth aspect of the present application, there is provided a second method of providing a nonvolatile random access memory according to the fifth aspect of the present application, wherein the base chunk frame is located at the NVM A memory cell of a memory block of a chip, which is a memory cell located in a volatile memory.
根据本申请的第五方面的第二提供非易失随机访问存储器的方法,提供了根据本申请第五方面的第三提供非易失随机访问存储器的方法,还包括:扫描日志大块帧链表;从日志大块帧链表中的日志大块帧读出日志条目;用日志条目更新内存片。According to a second method of providing a nonvolatile random access memory according to a fifth aspect of the present application, there is provided a third method for providing a nonvolatile random access memory according to the fifth aspect of the present application, further comprising: scanning a log chunk frame linked list ; read log entries from log chunks in the log chunk frame list; update the memory slices with log entries.
根据本申请的第五方面的第三提供非易失随机访问存储器的方法,提供了根据本申请第五方面的第四提供非易失随机访问存储器的方法,其中,日志大块帧是位于NVM芯片的存储块的存储单元。According to a third method of providing a nonvolatile random access memory according to a fifth aspect of the present application, there is provided a fourth method of providing a nonvolatile random access memory according to the fifth aspect of the present application, wherein the log chunk frame is located at the NVM The memory unit of the memory block of the chip.
根据本申请的第五方面的第四提供非易失随机访问存储器的方法,提供了根据本申请第五方面的第五提供非易失随机访问存储器的方法,还包括:掉电时,将内存片描述符写入NVM芯片。According to a fourth method of providing a nonvolatile random access memory according to the fifth aspect of the present application, there is provided a method of providing a nonvolatile random access memory according to the fifth aspect of the fifth aspect of the present application, further comprising: when the power is off, the memory is The slice descriptor is written to the NVM chip.
本申请提供的非易失随机访问存储器及其提供方法通过内存片为对应的NVRAM地址空间提供了高效随机访问的能力,而日志大块的日志大块帧记录了日志条目<NADDR,D>,为对应的NVRAM地址空间的更新提供了非易失的能力。The non-volatile random access memory and the method for providing the same provided by the present application provide efficient random access for the corresponding NVRAM address space through the memory chip, and the log large block of the log chunk records the log entry <NADDR, D>, Provides non-volatile capabilities for updating the corresponding NVRAM address space.
附图说明DRAWINGS
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings to be used in the embodiments or the prior art description will be briefly described below. Obviously, the drawings in the following description are only These are some of the embodiments described in this application, and other figures can be obtained from those of ordinary skill in the art in view of these drawings.
图1是相关技术中固态存储设备的框图;1 is a block diagram of a related art solid state storage device;
图2展示了本申请实施例提供的NVRAM的框图;2 is a block diagram of an NVRAM provided by an embodiment of the present application;
图3展示了本申请实施例提供的NVRAM地址空间的示意图;3 is a schematic diagram of an NVRAM address space provided by an embodiment of the present application;
图4展示了本申请实施例提供的小块转换表;FIG. 4 shows a small block conversion table provided by an embodiment of the present application;
图5展示了本申请实施例提供的用于提供NVRAM服务的数据组织的框图;FIG. 5 is a block diagram showing a data organization for providing an NVRAM service according to an embodiment of the present application;
图6A展示了本申请实施例提供的处理NVRAM读请求的流程图;6A is a flowchart of processing an NVRAM read request provided by an embodiment of the present application;
图6B展示了本申请又一实施例提供的处理NVRAM读请求的流程图;6B is a flowchart of processing an NVRAM read request provided by another embodiment of the present application;
图6C展示了本申请另一实施例提供的处理NVRAM写请求的流程图;6C is a flowchart of processing an NVRAM write request provided by another embodiment of the present application;
图6D展示了本申请再一实施例提供的处理NVRAM写请求的流程图;以及6D is a flow chart showing processing of an NVRAM write request provided by still another embodiment of the present application;
图7展示了本申请实施例提供的上电恢复NVRAM的流程图。FIG. 7 is a flowchart of power-on recovery NVRAM provided by an embodiment of the present application.
具体实施方式Detailed ways
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The technical solutions in the embodiments of the present application are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present application. It is obvious that the described embodiments are a part of the embodiments of the present application, and not all of the embodiments. All other embodiments obtained by a person skilled in the art based on the embodiments of the present application without creative efforts are within the scope of the present application.
图2是本申请实施例提供的NVRAM的框图。2 is a block diagram of an NVRAM provided by an embodiment of the present application.
根据本申请的实施例,由固态存储设备102提供NVRAM。作为举例,可采用根据图2的固态存储设备的结构。固态存储设备102的控制部件204,还包括NVRAM管理模块,通过使用DRAM 110的部分与NVM芯片105的部分,来提供NVRAM服务200。可选地,使用SRAM来部分或全部替代DRAM。SRAM可集成在控制部件204内部。根据图2的实施例以使用DRAM 110的部分来提供NVRAM服务为例介绍,也可使用SRAM来部分或全部替代DRAM。NVRAM管理模块由例如运行在控制部件204的CPU中的软件、固件和/或作为ASIC的部分的硬件实现。According to an embodiment of the present application, the NVRAM is provided by the solid state storage device 102. By way of example, the structure of the solid state storage device according to Fig. 2 can be employed. The control component 204 of the solid state storage device 102 also includes an NVRAM management module that provides the NVRAM service 200 by using portions of the DRAM 110 and portions of the NVM chip 105. Alternatively, SRAM is used to partially or completely replace the DRAM. The SRAM can be integrated inside the control component 204. The NVRAM service is provided by using a portion of the DRAM 110 in accordance with the embodiment of FIG. 2, and the SRAM may be used to partially or completely replace the DRAM. The NVRAM management module is implemented by, for example, software running in the CPU of the control unit 204, firmware, and/or hardware as part of the ASIC.
主机通过接口103耦合到固态存储设备102。主机通过接口103访问固态存储设备102提供的NVRAM服务200。例如,固态存储设备102通过PCIe接口耦合到主机,将NVRAM映射到PCIe设备的存储器空间(MemorySpace)。主机按照访问PCIe设备的存储器空间的方式访问固态存储设备102提供的NVRAM服务,从而主机无须改动即可使用NVRAM服务。作为又一个例子,将NVRAM作为独立的PCIe设备提供给主机使用。The host is coupled to the solid state storage device 102 via interface 103. The host accesses the NVRAM service 200 provided by the solid state storage device 102 through the interface 103. For example, solid state storage device 102 is coupled to the host via a PCIe interface, mapping the NVRAM to a memory space of the PCIe device. The host accesses the NVRAM service provided by the solid state storage device 102 in a manner that accesses the memory space of the PCIe device, so that the host can use the NVRAM service without modification. As yet another example, NVRAM is provided to the host as a standalone PCIe device.
NVRAM管理模块也服务于控制部件204的其他部件。例如,控制部件204的CPU中运行的其他程序可使用NVRAM服务。这些程序按照访问本地存储器(SRAM或DRAM)的方式使用NVRAM服务。可选地,NVRAM服务被组织为文件或对象,控制部件204的CPU中运行的其他程序,按照访问文件或对象的方式使用NVRAM服务。The NVRAM management module also serves other components of control component 204. For example, other programs running in the CPU of control component 204 may use NVRAM services. These programs use the NVRAM service in a way that accesses local memory (SRAM or DRAM). Alternatively, the NVRAM service is organized as a file or object, and other programs running in the CPU of the control unit 204 use the NVRAM service in a manner that accesses files or objects.
图3是本申请实施例提供的NVRAM地址空间的示意图。作为举例,NVRAM地址空间是连续的地址空间。NVRAM管理模块维护NVRAM地址空间。图3中从上向下的 方向是NVRAM地址空间递增的方向。NVRAM地址空间包括多个具有相同大小的区域,每个区域被称为小块。图3中示出了多个小块,包括小块0、小块1……小块5。例如,每个小块对应的NVRAM地址空间的大小可以是例如512字节、1KB或4KB。根据NVRAM地址空间的地址,可计算该地址对应的小块。例如,用NVRAM地址空间的地址除以小块对应的NVRAM地址空间的大小,所得的商为小块的索引或小块编号(ID)。FIG. 3 is a schematic diagram of an NVRAM address space provided by an embodiment of the present application. By way of example, the NVRAM address space is a contiguous address space. The NVRAM management module maintains the NVRAM address space. The direction from top to bottom in Figure 3 is the direction in which the NVRAM address space is incremented. The NVRAM address space includes a plurality of regions of the same size, each of which is referred to as a small block. A plurality of small blocks are shown in Fig. 3, including small block 0, small block 1 ... small block 5. For example, the size of the NVRAM address space corresponding to each tile may be, for example, 512 bytes, 1 KB, or 4 KB. According to the address of the NVRAM address space, the small block corresponding to the address can be calculated. For example, the address of the NVRAM address space is divided by the size of the NVRAM address space corresponding to the small block, and the resulting quotient is the index or small block number (ID) of the small block.
在一种实施方式中,使用NVRAM服务的主机或控制部件204的CPU中运行的其他程序(统称为应用)按NVRAM地址空间使用NVRAM。例如,将NVRAM地址空间直接映射到PCIe设备的存储器空间,通过PCIe设备的存储器空间地址,直接或经过指定的偏移得到NVRAM地址空间地址。In one embodiment, the host operating with the NVRAM service or other program running in the CPU of control component 204 (collectively referred to as an application) uses NVRAM in the NVRAM address space. For example, the NVRAM address space is directly mapped to the memory space of the PCIe device, and the NVRAM address space address is obtained directly or through a specified offset through the memory space address of the PCIe device.
在另一种实施方式中,应用使用NVRAM服务时所使用的地址空间(例如,PCIe设备的存储空间,或者文件的偏移值),需要通过地址转换得到NVRAM地址空间的地址。NVRAM管理模块还提供地址转换表,用于将应用所使用的地址空间映射到NVRAM地址空间。In another embodiment, the address space used by the application to use the NVRAM service (eg, the storage space of the PCIe device, or the offset value of the file) requires an address of the NVRAM address space through address translation. The NVRAM management module also provides an address translation table for mapping the address space used by the application to the NVRAM address space.
图4展示了本申请实施例提供的小块转换表。NVRAM管理模块维护小块转换表。小块转换表包括多个条目,每个条目对应于小块之一,并由小块ID索引,条目的值记录了为小块提供数据的基础大块帧的地址或内存片的地址。后面将详细描述基础大块帧与内存片。可选地,根据条目的值,识别该值指示基础大块帧的地址还是内存片的地址。例如,将大于阈值的条目值,映射为基础大块帧的地址,而将不大于阈值的条目值,映射为内存片的地址。作为又一个例子,在条目中还记录标志位,用于指示条目的值指示基础大块帧的地址还是内存片的地址。FIG. 4 shows a small block conversion table provided by an embodiment of the present application. The NVRAM management module maintains a small block conversion table. The tile conversion table includes a plurality of entries, each entry corresponding to one of the tiles, and indexed by the tile ID, the value of the entry recording the address of the underlying chunk frame or the address of the memory slice providing the data for the tile. The basic chunk frame and the memory slice will be described in detail later. Optionally, based on the value of the entry, the value is identified to indicate the address of the underlying chunky frame or the address of the memory slice. For example, an entry value greater than a threshold is mapped to an address of a base chunk frame, and an entry value not greater than a threshold is mapped to an address of a memory slice. As yet another example, a flag bit is also recorded in the entry to indicate whether the value of the entry indicates the address of the underlying chunky frame or the address of the memory slice.
小块转换表被存储在例如DRAM 110(也参看图2)或SRAM中。NVRAM管理模块根据访问的NVRAM地址空间地址,计算出对应的小块ID,并用小块ID查询小块转换表,以得到为小块提供数据的基础大块帧的地址或内存片的地址。The tile conversion table is stored, for example, in DRAM 110 (see also Figure 2) or SRAM. The NVRAM management module calculates a corresponding small block ID according to the accessed NVRAM address space address, and queries the small block conversion table with the small block ID to obtain the address of the basic large frame or the address of the memory slice for providing data for the small block.
图5展示了本申请实施例提供的用于提供NVRAM服务的数据组织的框图。作为举例,NVRAM管理模块使用NVM芯片105的部分(记为NVM芯片510)与DRAM 110的部分(记为DRAM 520)。FIG. 5 is a block diagram showing the data organization for providing an NVRAM service provided by an embodiment of the present application. By way of example, the NVRAM management module uses portions of the NVM chip 105 (denoted as NVM chip 510) and portions of DRAM 110 (denoted as DRAM 520).
NVM芯片510的存储空间被组织为大块。大块是例如NVM芯片的单一物理块,NVM芯片的LUN中的各个平面(Plane)的具有相同物理块号的多个物理块,或者来自多个LUN的物理块。可选地,大块还包括校验数据,用于为大块存储的数据提供保 护。依然可选地,在大块中存储数据的多个副本,用于为大块存储的数据提供保护。可选地,将NVM芯片105的SLC存储单元用作NVM芯片510。The storage space of the NVM chip 510 is organized into chunks. A large block is a single physical block such as an NVM chip, a plurality of physical blocks of the same physical block number of each plane in the LUN of the NVM chip, or physical blocks from a plurality of LUNs. Optionally, the chunks also include parity data for providing protection for bulk stored data. Still optionally, multiple copies of the data are stored in chunks for providing protection for bulk stored data. Alternatively, the SLC storage unit of the NVM chip 105 is used as the NVM chip 510.
大块的存储空间被组织为帧(参看大块512)。大块512包括多个帧。帧的大小同小块的大小相同,从而一个小块对应的NVRAM地址空间所存储的数据可被记录在一个帧中。The chunks of storage are organized into frames (see chunk 512). Bulk 512 includes multiple frames. The size of the frame is the same as the size of the small block, so that the data stored in the NVRAM address space corresponding to one small block can be recorded in one frame.
大块包括至少两类,基础大块与日志大块。基础大块的帧,被称为基础大块帧。返回参看图4,小块转换表的条目的值记录的基础大块帧的地址,指示了基础大块帧。根据基础大块帧的地址可访问基础大块帧。Large chunks include at least two types, basic chunks and large chunks of logs. The basic chunk of the frame is called the base chunk frame. Referring back to Figure 4, the value of the entry of the entry of the small block conversion table is the address of the underlying chunky frame indicating the underlying chunky frame. The underlying chunky frame is accessible based on the address of the underlying chunky frame.
继续参看图5,DRAM 520的存储空间被组织为内存片。内存片是例如DRAM 520的一段存储空间。内存片的大小同小块的大小相同,从而一个小块对应的NVRAM地址空间所存储的数据可被记录在一个内存片中。返回参看图4,小块转换表的条目的值记录的内存片的地址,指示了内存片。根据内存片的地址可访问内存片。With continued reference to Figure 5, the memory space of DRAM 520 is organized into memory slices. The memory chip is a piece of storage space such as DRAM 520. The size of the memory chip is the same as the size of the small block, so that the data stored in the NVRAM address space corresponding to a small block can be recorded in a memory chip. Referring back to Figure 4, the value of the entry of the small block conversion table records the address of the memory slice, indicating the memory slice. The memory slice can be accessed according to the address of the memory chip.
继续参看图5,小块转换表的条目(小块0)的值,指示了位于基础大块514的基础大块帧的地址。小块转换表的条目(小块1)的值,指示了内存片526的地址。而内存片526是基础大块516的某个基础大块帧的在DRAM 520中的副本(图5中,由虚线指示)。NVRAM管理模块通过小块转换表的条目(小块1)的值,访问内存片526,作为对访问基础大块516的基础大块帧的替代,以高效地按字节访问小块1对应的NVRAM地址空间。With continued reference to FIG. 5, the value of the entry (small block 0) of the tile conversion table indicates the address of the base chunk frame located at base chunk 514. The value of the entry (small block 1) of the small block conversion table indicates the address of the memory slice 526. The memory slice 526 is a copy of the base chunk 516 of the base chunk 516 in the DRAM 520 (in FIG. 5, indicated by the dashed line). The NVRAM management module accesses the memory slice 526 by the value of the entry (small block 1) of the small block conversion table as an alternative to the base large block of the access base block 516 to efficiently access the corresponding block 1 in bytes. NVRAM address space.
日志大块用于记录对NVRAM地址空间的修改。例如,向NVRAM地址空间的地址NADDR写入数据D,则生成日志条目,记录<NADDR,D>。NVRAM管理模块将记录了<NADDR,D>的日志条目写入日志大块帧。NVRAM管理模块将日志大块帧组织为例如链表,以利于访问多个日志大块帧。例如,参看图5,日志大块532的一个日志大块帧(L1)记录了日志大块534的一个日志大块帧(L2)的地址,日志大块534的一个日志大块帧(L3)记录了日志大块536的一个日志大块帧(L4)的地址,日志大块536的一个日志大块帧(L5)记录了日志大块538的一个日志大块帧(L6)的地址。可选地或进一步地,日志大块532的日志大块帧(L1)的地址被记录在日志大块534的日志大块帧(L2)中,日志大块534的日志大块帧(L3)的地址被记录在日志大块536的日志大块帧内(L4),日志大块536的日志大块帧(L5)的地址被记录在日志大块538的日志大块帧(L6)内。The log chunk is used to record changes to the NVRAM address space. For example, writing data D to the address NADDR of the NVRAM address space generates a log entry, recording <NADDR, D>. The NVRAM management module writes log entries for <NADDR,D> to the log chunk frame. The NVRAM management module organizes log chunks into, for example, a linked list to facilitate access to multiple log chunks. For example, referring to FIG. 5, one log chunk frame (L1) of log chunk 532 records the address of one log chunk frame (L2) of log chunk 534, and one log chunk frame of log chunk 534 (L3). The address of one log chunk frame (L4) of the log chunk 536 is recorded, and a log chunk frame (L5) of the log chunk 536 records the address of a log chunk frame (L6) of the log chunk 538. Alternatively or further, the address of the log chunk frame (L1) of the log chunk 532 is recorded in the log chunk frame (L2) of the log chunk 534, and the log chunk frame of the log chunk 534 (L3) The address is recorded in the log chunk frame of the log chunk 536 (L4), and the address of the log chunk frame (L5) of the log chunk 536 is recorded in the log chunk frame (L6) of the log chunk 538.
在日志大块内的各个日志大块帧也被组织为例如链表。例如,日志大块532的一个 日志帧中记录了日志大块532的另一个日志帧的地址。Individual log chunks within the log chunk are also organized into, for example, a linked list. For example, the address of another log frame of log chunk 532 is recorded in one of the log frames of log chunk 532.
依然作为举例,应用修改同小块转换表的条目(小块1)对应的NVRAM地址空间,向该NVRAM地址空间的地址NADDR写入数据D,将生成的记录了<NADDR,D>的日志条目写入日志大块538的日志大块帧。由于日志大块538是NVM芯片的存储空间,向日志大块538写入的日志具有非易失特性,即使存储设备掉电,下次存储设备上电时,依然能读出日志大块538中的记录了<NADDR,D>的日志条目。Still as an example, the application modifies the NVRAM address space corresponding to the entry of the small block conversion table (small block 1), writes the data D to the address NADDR of the NVRAM address space, and generates the log entry of the recorded <NADDR, D>. A log chunk of the log chunk 538 is written. Since the log chunk 538 is the storage space of the NVM chip, the log written to the log chunk 538 has a non-volatile characteristic. Even if the storage device is powered off, the next time the storage device is powered on, the log chunk 538 can still be read. Log entries for <NADDR,D> are recorded.
响应于应用向该NVRAM地址空间的地址NADDR写入数据D,NVRAM管理模块还在同地址NADDR对应的内存片526中记录数据D。由于内存片是DRAM 520提供的存储空间,其可被按字节寻址或随机访问,从而高效地完成在内存片526中记录数据D的操作。In response to the application writing data D to the address NADDR of the NVRAM address space, the NVRAM management module also records the data D in the memory slice 526 corresponding to the address NADDR. Since the memory chip is the storage space provided by the DRAM 520, it can be byte-addressed or randomly accessed, thereby efficiently performing the operation of recording the data D in the memory chip 526.
根据本申请的实施例,内存片526为对应于小块1的NVRAM地址空间提供了高效随机访问的能力,而日志大块538的日志大块帧记录了日志条目<NADDR,D>,为对应于小块1的NVRAM地址空间的更新提供了非易失的能力。同时具备随机访问与非易失能力的NVRAM地址空间,向应用提供了NVRAN服务。According to an embodiment of the present application, the memory slice 526 provides the ability to efficiently random access corresponding to the NVRAM address space of the tile 1, while the log chunk frame of the log chunk 538 records the log entry <NADDR, D>, corresponding to The update of the NVRAM address space for Tile 1 provides non-volatile capabilities. The NVRAM address space, which has both random access and non-volatile capabilities, provides NVRAN services to applications.
可选地,根据本申请的实施例,NVRAM管理模块还维护NVRAM元数据。NVRAM元数据记录了例如日志大块帧头与内存片描述符头。日志大块帧头是日志大块帧的地址,并且指示了日志大块帧链表的头节点。通过日志大块帧链表的头节点,可遍历日志大块帧链表的所有节点。内存片描述符头是内存片描述符地址,并且指示了内存片描述符链表的头节点。Optionally, according to an embodiment of the present application, the NVRAM management module also maintains NVRAM metadata. The NVRAM metadata records, for example, a log chunk header and a memory slice descriptor header. The log chunk header is the address of the log chunk frame and indicates the head node of the log chunk frame list. Through the head node of the log chunk frame list, all nodes of the log chunk frame list can be traversed. The memory slice descriptor header is the memory slice descriptor address and indicates the head node of the memory slice descriptor linked list.
依然可选地,内存片描述符用于描述内存片。被使用的内存片同内存片描述一一对应。内存描述符被组织为例如链表。依然作为举例,内存片描述符记录了内存片所对应的基础大块帧地址,内存片描述符还记录了内存片的状态,例如,内存片正在被写入来自基础大块帧的数据,内存片的数据正在被写入基础大块帧,内存片的数据同其对应的基础大块帧相同或不同。Still optionally, the memory slice descriptor is used to describe the memory slice. The used memory chip has a one-to-one correspondence with the memory slice description. Memory descriptors are organized into, for example, linked lists. Still as an example, the memory slice descriptor records the basic chunk frame address corresponding to the memory slice, and the memory slice descriptor also records the state of the memory slice, for example, the memory slice is being written to the data from the base large frame, the memory The slice data is being written to the base chunk frame, and the data of the memory slice is the same or different from its corresponding base chunk frame.
图6A展示了本申请实施例提供的处理NVRAM读请求的流程图。FIG. 6A is a flowchart of processing an NVRAM read request provided by an embodiment of the present application.
应用从NVRAM读数据。在一个例子中,应用按照访问内存的方式从NVRAM读数据;在又一个例子中,应用按照访问文件或对象的方式从NVRAM读数据。The application reads data from NVRAM. In one example, the application reads data from the NVRAM in a manner that accesses memory; in yet another example, the application reads data from the NVRAM in a manner that accesses the file or object.
NVRAM管理模块识别应用要从NVRAM读数据。例如,NVRAM管理模块,识别出应用访问NVRAM地址空间,或者应用访问用于提供NVRAM服务的文件或对象。NVRAM管理模块根据应用要读取的NVRAM地址空间的地址,生成小块索引(小块 ID)(A610)。根据小块索引查询小块转换表(也参看图3-图5)(A620)。根据小块转换表条目的值,识别该值所记录的是基础大块帧的地址还是内存片的地址(A630)。若小块转换表条目记录的是基础大块帧的地址,从基础大块帧读出待访问的数据(A640);若小块转换表条目记录的是内存片地址,则从内存片读出待访问的数据(A650)。The NVRAM management module identifies the application to read data from the NVRAM. For example, the NVRAM management module recognizes that the application accesses the NVRAM address space, or the application accesses a file or object that provides the NVRAM service. The NVRAM management module generates a small block index (small block ID) (A610) according to the address of the NVRAM address space to be read by the application. The small block conversion table is queried according to the small block index (see also Figs. 3 - 5) (A620). Based on the value of the small block conversion table entry, it is identified whether the value records the address of the base chunk frame or the address of the memory slice (A630). If the small block conversion table entry records the address of the basic large block frame, the data to be accessed is read from the basic large block frame (A640); if the small block conversion table entry records the memory slice address, the read from the memory slice Data to be accessed (A650).
可选地,NVRAM管理模块还从要读取的NVRAM地址空间的地址生成偏移值(例如,将该地址的指定比特作为偏移值)。对于从基础大块帧读出的数据,用偏移值寻址得到要读取的数据。对于内存片,用内存片地址加上偏移值的结果读取DRAM 520中的数据(也参看图5)。Optionally, the NVRAM management module also generates an offset value from the address of the NVRAM address space to be read (eg, the specified bit of the address as an offset value). For data read from the base chunk frame, the offset value is used to address the data to be read. For the memory slice, the data in the DRAM 520 is read as a result of the memory slice address plus the offset value (see also Figure 5).
图6B展示了本申请又一实施例的处理NVRAM读请求的流程图。应用从NVRAM读数据。NVRAM管理模块识别应用要读取的NVRAM地址空间。NVRAM管理模块根据应用要读取的NVRAM地址空间的地址,生成小块索引(小块ID)(B610)。根据小块索引查询小块转换表(也参看图3-图5)(B620)。根据小块转换表条目的值,识别该值所记录的是基础大块帧的地址还是内存片的地址(B630)。若小块转换表条目记录的是内存片地址,则从内存片读出待访问的数据(B650)。若小块转换表条目记录的是基础大块帧的地址,为待读取的基础大块帧分配内存片,将从基础大块帧读出待访问的数据写入分配的内存片(B640),在从分配的内存片中读出待访问的数据。以及还用分配的内存片的地址更新小块转换表的条目(B660),以在同要读取的NVRAM地址空间的地址对应的小块转换表条目中记录分配的内存片地址。6B shows a flow chart of processing an NVRAM read request in accordance with yet another embodiment of the present application. The application reads data from NVRAM. The NVRAM management module identifies the NVRAM address space to be read by the application. The NVRAM management module generates a small block index (small block ID) (B610) according to the address of the NVRAM address space to be read by the application. The small block conversion table is queried according to the small block index (see also Figs. 3 - 5) (B620). According to the value of the small block conversion table entry, it is identified whether the value records the address of the base large frame or the address of the memory slice (B630). If the small block conversion table entry records the memory slice address, the data to be accessed is read from the memory slice (B650). If the small block conversion table entry records the address of the basic large block frame, and allocates a memory slice for the basic large block frame to be read, the data to be accessed is read from the basic large block frame and written into the allocated memory slice (B640). Read the data to be accessed from the allocated memory slice. And updating the entry of the small block conversion table (B660) with the address of the allocated memory slice to record the allocated memory slice address in the small block conversion table entry corresponding to the address of the NVRAM address space to be read.
可选地,用分配的内存片地址,加上从要读取的NVRAM地址空间的地址生成的偏移值,访问DRAM 520中的分配的内存片。Optionally, the allocated memory slice in DRAM 520 is accessed with the assigned memory slice address plus the offset value generated from the address of the NVRAM address space to be read.
图6C展示了本申请另一实施例提供的处理NVRAM写请求的流程图。6C is a flow chart showing processing of an NVRAM write request provided by another embodiment of the present application.
应用向NVRAM写数据。NVRAM管理模块识别应用要写数据的NVRAM地址空间。NVRAM管理模块根据应用要写入的NVRAM地址空间的地址,生成小块索引(小块ID)(C610)。根据小块索引查询小块转换表(也参看图3-图5)(C620)。根据小块转换表条目的值,识别该值所记录的是基础大块帧的地址还是内存片的地址(C630)。若小块转换表条目记录的是内存片地址,则向内存片写入数据(C650)。若小块转换表条目记录的是基础大块帧的地址,则生成记录了待访问的NVRAM地址空间地址NADDR与被写入的数据D的日志条目(C640),以及将日志条目写入日志大块帧(C660)。The application writes data to NVRAM. The NVRAM management module identifies the NVRAM address space in which the application is to write data. The NVRAM management module generates a small block index (small block ID) (C610) according to the address of the NVRAM address space to be written by the application. The small block conversion table is queried according to the small block index (see also FIG. 3 to FIG. 5) (C620). Based on the value of the small block conversion table entry, it is identified whether the value records the address of the base chunk frame or the address of the memory slice (C630). If the small block conversion table entry records the memory slice address, the data is written to the memory slice (C650). If the small block conversion table entry records the address of the base large block frame, a log entry (C640) in which the NVRAM address space address NADDR to be accessed and the written data D are recorded is generated, and the log entry is written to the log. Block frame (C660).
对于小块转换表条目记录的是内存片地址的情形,在向内存片写入数据后,也生成日志。日志记录了待访问的NVRAM地址空间地址NADDR与被写入的数据D的日志 条目,以及将日志条目写入日志大块帧。For the case where the small block conversion table entry records the memory slice address, a log is also generated after the data is written to the memory slice. The log records the log entry of the NVRAM address space address NADDR to be accessed and the data D being written, and writes the log entry to the log chunk frame.
可选地,在为写请求生成日志条目后,向应用指示NVRAM地址空间的写请求处理完成。固态存储设备提供备用电源,以保证即使固态存储设备发生掉电,所生成的日志也会被写入日志大块帧,或记录在NVM芯片520。Optionally, after the log entry is generated for the write request, the write request processing indicating to the application that the NVRAM address space is completed is completed. The solid state storage device provides backup power to ensure that even if the solid state storage device is powered down, the generated logs are written to the log chunks or recorded on the NVM chip 520.
图6D展示了本申请再一实施例提供的处理NVRAM写请求的流程图。应用向NVRAM写数据。NVRAM管理模块识别应用要写数据的NVRAM地址空间(D610)。NVRAM管理模块根据应用要写入的NVRAM地址空间的地址,生成记录了待访问的NVRAM地址空间地址NADDR与被写入的数据D的日志条目(D620),以及将日志条目写入日志大块帧(D630)。可选地,在为写请求生成日志条目后,向应用指示NVRAM地址空间的写请求处理完成。6D is a flow chart showing processing of an NVRAM write request provided by still another embodiment of the present application. The application writes data to NVRAM. The NVRAM management module identifies the NVRAM address space (D610) to which the application is to write data. The NVRAM management module generates a log entry (D620) that records the NVRAM address space address NADDR to be accessed and the data D to be written, and writes the log entry to the log chunk frame, according to the address of the NVRAM address space to be written by the application. (D630). Optionally, after the log entry is generated for the write request, the write request processing indicating to the application that the NVRAM address space is completed is completed.
NVRAM管理模块根据应用要写入的NVRAM地址空间的地址生成小块索引(小块ID)(D640)。根据小块索引查询小块转换表(也参看图3-图5)(D650)。根据小块转换表条目的值,识别该值所记录的是基础大块帧的地址还是内存片的地址(D660)。若小块转换表条目记录的是内存片地址,则还向内存片写入数据(D670)。The NVRAM management module generates a small block index (small block ID) (D640) according to the address of the NVRAM address space to which the application is to be written. The small block conversion table is also queried according to the small block index (see also FIG. 3 to FIG. 5) (D650). Based on the value of the small block conversion table entry, it is identified whether the value records the address of the base chunk frame or the address of the memory slice (D660). If the small block conversion table entry records the memory slice address, data is also written to the memory slice (D670).
可选地,NVRAM管理模块并发地执行生成日志与生成小块索引(小块ID)的操作,以及在向内存片写入数据与生成日志任何一者完成,即应用指示NVRAM地址空间的写请求处理完成。从而降低NVRAM地址空间的写请求的处理延迟。Optionally, the NVRAM management module concurrently performs an operation of generating a log and generating a small block index (small block ID), and completing any one of writing data to the memory chip and generating a log, that is, applying a write request indicating the NVRAM address space. Processing is complete. Thereby reducing the processing delay of the write request of the NVRAM address space.
图7展示了本申请实施例提供的上电恢复NVRAM的流程图。FIG. 7 is a flowchart of power-on recovery NVRAM provided by an embodiment of the present application.
根据本申请的实施例,提供NVRAM服务的固态存储设备上电时,NVRAM管理模块通过图7所示的流程准备提供NVRAM服务。响应于上电,NVRAM管理模块扫描内存片描述符链表(710),对于每个内存片描述符,获取内存片描述符中记录的同内存片对应的基础大块帧的地址,并从基础大块帧读出数据并将读出数据写入内存片(720)。According to an embodiment of the present application, when the solid state storage device providing the NVRAM service is powered on, the NVRAM management module prepares to provide the NVRAM service through the flow shown in FIG. In response to the power-on, the NVRAM management module scans the memory slice descriptor list (710), and for each memory slice descriptor, obtains the address of the basic large frame corresponding to the memory slice recorded in the memory slice descriptor, and is larger from the base. The block frame reads the data and writes the read data to the memory slice (720).
NVRAM管理模块还扫描日志大块帧链表。从日志大块帧链表中的日志大块帧读出日志条目记录,用日志条目记录更新内存片(730)。例如,日志条目记录指示了NVRAM地址空间地址NADDR与被写入的数据D,根据NVRAM地址空间地址NADDR访问小块转换表得到对应的内存片,并将数据D写入该内存片。The NVRAM management module also scans the log chunk frame list. The log entry record is read from the log chunk frame in the log chunk frame list, and the memory slice is updated with the log entry record (730). For example, the log entry record indicates the NVRAM address space address NADDR and the data D to be written, accesses the small block conversion table according to the NVRAM address space address NADDR to obtain the corresponding memory slice, and writes the data D to the memory slice.
作为举例,NVRAM管理模块从NVRAM元数据中获取内存片描述符链表的头节点,以及日志大块帧链表的头节点。As an example, the NVRAM management module obtains the head node of the memory slice descriptor list from the NVRAM metadata, and the head node of the log block frame list.
可选地,NVRAM元数据记录内存片描述符链表的尾节点,以及日志大块帧链表的尾节点。以及在固态存储设备上电恢复NVRAM时,NVRAM管理模块从NVRAM元数 据中获取内存片描述符链表的尾节点,以及日志大块帧链表的尾节点。Optionally, the NVRAM metadata records the tail node of the memory slice descriptor list and the tail node of the log chunk frame list. And when the NVRAM is restored on the solid state storage device, the NVRAM management module obtains the tail node of the memory slice descriptor list from the NVRAM metadata, and the tail node of the log block frame list.
在固态存储设备掉电时,NVRAM管理模块将NVRAM元数据、小块转换表和/或内存片描述符写入NVM芯片520,以供下次上电时恢复NVRAM使用。When the solid state storage device is powered down, the NVRAM management module writes the NVRAM metadata, the small block conversion table, and/or the memory slice descriptor to the NVM chip 520 for use in restoring NVRAM the next time power is applied.
根据本申请的实施例还提供了一种固态存储设备,该固态存储设备包括控制器与非易失存储器芯片,其中,控制器执行本申请实施例提供的任意一种处理方法。According to an embodiment of the present application, a solid state storage device is provided, which includes a controller and a nonvolatile memory chip, wherein the controller performs any one of the processing methods provided by the embodiments of the present application.
根据本申请的实施例还提供了一种存储在可读介质上的程序,当被固态存储设备的控制器运行时,使得固态存储设备执行根据本申请实施例提供的任意一种处理方法。A program stored on a readable medium, when executed by a controller of a solid state storage device, causes the solid state storage device to perform any of the processing methods provided in accordance with embodiments of the present application, in accordance with an embodiment of the present application.
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。While the preferred embodiment of the present application has been described, it will be apparent that those skilled in the art can make further changes and modifications to the embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and the modifications and It will be apparent to those skilled in the art that various modifications and changes can be made in the present application without departing from the spirit and scope of the application. Thus, it is intended that the present invention cover the modifications and variations of the present invention.

Claims (16)

  1. 一种非易失随机访问存储器,包括:控制部件、随机访问存储器RAM和NVM芯片,其中,所述控制部件包括NVRAM管理模块,所述随机访问存储器RAM的部分和NVM芯片的部分提供NVRAM服务,所述NVRAM管理模块根据NVRAM地址空间访问提供NVRAM服务的随机访问存储器RAM和NVM芯片。A nonvolatile random access memory comprising: a control component, a random access memory RAM, and an NVM chip, wherein the control component comprises an NVRAM management module, the portion of the random access memory RAM and a portion of the NVM chip providing an NVRAM service, The NVRAM management module accesses a random access memory RAM and an NVM chip that provide NVRAM services according to an NVRAM address space.
  2. 根据权利要求1所述的非易失随机访问存储器,其中,所述提供NVRAM服务的NVM芯片的存储空间被组织为多个大块,提供NVRAM服务的随机访问存储器RAM的存储空间被组织为多个内存片,所述NVRAM地址空间被组织为多个小块,所述NVRAM管理模块根据所述小块指示的大块或内存片的地址访问所述大块或内存片。The nonvolatile random access memory according to claim 1, wherein a storage space of said NVM chip providing NVRAM service is organized into a plurality of large blocks, and a storage space of a random access memory RAM providing NVRAM service is organized into a plurality of A memory chip, the NVRAM address space is organized into a plurality of small blocks, and the NVRAM management module accesses the large block or the memory chip according to the address of the large block or the memory slice indicated by the small block.
  3. 根据权利要求2述的非易失随机访问存储器,其中,所述大块包括:基础大块和日志大块,所述基础大块用于存储数据,所述日志大块用于记录对NVRAM地址空间的修改。A nonvolatile random access memory according to claim 2, wherein said large block comprises: a base chunk for storing data, and said log chunk is for recording a pair of NVRAM addresses Modification of space.
  4. 根据权利要求1-3之一所述的非易失随机访问存储器,其中,所述NVRAM管理模块根据NVRAM地址空间的地址,计算该地址对应的小块。The nonvolatile random access memory according to any one of claims 1 to 3, wherein the NVRAM management module calculates a small block corresponding to the address according to an address of the NVRAM address space.
  5. 根据权利要求4所述的非易失随机访问存储器,其中,所述NVRAM管理模块根据NVRAM地址空间的地址除以小块对应的NVRAM地址空间的大小,得到小块的索引。The nonvolatile random access memory of claim 4, wherein the NVRAM management module obtains an index of the small block according to the address of the NVRAM address space divided by the size of the NVRAM address space corresponding to the small block.
  6. 根据权利要求3述的非易失随机访问存储器,其中,所述大块的存储空间被组织为帧。A nonvolatile random access memory according to claim 3, wherein said large block of storage space is organized into frames.
  7. 根据权利要求6述的非易失随机访问存储器,其中,响应于向NVRAM地址空间的地址NADDR写入数据D,所述NVRAM管理模块生成记录了<NADDR,D>的日志条目,所述NVRAM管理模块将日志条目写入日志大块帧。The nonvolatile random access memory of claim 6, wherein the NVRAM management module generates a log entry in which <NADDR, D> is recorded, in response to writing data D to an address NADDR of the NVRAM address space, the NVRAM management The module writes log entries to the log chunk frame.
  8. 根据权利要求7所述的非易失随机访问存储器,其中,将大于阈值的NVRAM地址空间地址映射为基础大块帧的地址,将不大于阈值的NVRAM地址空间地址,映射为内存片的地址。The nonvolatile random access memory of claim 7, wherein the NVRAM address space address greater than the threshold is mapped to the address of the base chunk frame, and the NVRAM address space address not greater than the threshold is mapped to the address of the memory slice.
  9. 根据权利要求6述的非易失随机访问存储器,其中,所述随机访问存储 器RAM存储有小块转换表,所述小块转换表包括多个条目,每个条目对应于小块之一,条目的值记录了为小块提供数据的基础大块帧的地址或内存片的地址。A nonvolatile random access memory according to claim 6, wherein said random access memory RAM stores a small block conversion table including a plurality of entries, each entry corresponding to one of the small blocks, the entry The value of the address records the address of the underlying chunky frame or the address of the memory slice that provides the data for the tile.
  10. 一种提供非易失随机访问存储器的方法,包括如下步骤:A method of providing a non-volatile random access memory includes the following steps:
    识别访问的NVRAM地址空间;Identify the NVRAM address space accessed;
    识别访问的NVRAM地址空间的地址被映射到基础大块帧的地址还是内存片地址;Identifying whether the address of the accessed NVRAM address space is mapped to the address of the underlying chunky frame or the memory slice address;
    根据识别结果从基础大块帧或内存片中获取待访问的数据。The data to be accessed is obtained from the basic chunk frame or the memory chip according to the recognition result.
  11. 根据权利要求10所述的提供非易失随机访问存储器的方法,其中,A method of providing a nonvolatile random access memory according to claim 10, wherein
    根据要访问的NVRAM地址空间的地址,生成小块索引(ID);Generating a small block index (ID) according to the address of the NVRAM address space to be accessed;
    根据小块索引(ID)访问小块转换表;Accessing the small block conversion table according to the small block index (ID);
    根据要访问的NVRAM地址空间的地址获取小块转换表条目,根据小块转换表条目识别要访问的NVRAM地址空间的地址被映射到基础大块帧的地址还是内存片地址。The small block conversion table entry is obtained according to the address of the NVRAM address space to be accessed, and the address of the NVRAM address space to be accessed is identified according to the small block conversion table entry to be mapped to the address of the base chunk frame or the memory slice address.
  12. 根据权利要求11所述的提供非易失随机访问存储器的方法,其中,由小块提供NVRAM地址空间,多个小块共同提供了完整的NVRAM地址空间。The method of providing a non-volatile random access memory according to claim 11, wherein the NVRAM address space is provided by the small blocks, the plurality of small blocks collectively providing a complete NVRAM address space.
  13. 根据权利要求11或12所述的提供非易失随机访问存储器的方法,其中,若小块转换表条目记录的是内存片地址,从内存片获取待访问的数据;若小块转换表条目记录的是基础大块帧的地址,为待获取数据的基础大块帧分配内存片,将从待获取数据的基础大块帧读出待访问的数据写入分配的内存片,从分配的内存片中获取待访问的数据。The method for providing a nonvolatile random access memory according to claim 11 or 12, wherein if the small block conversion table entry records the memory slice address, the data to be accessed is obtained from the memory slice; if the small block conversion table entry record The address of the basic chunk frame, the memory chunk is allocated for the basic chunk frame of the data to be acquired, and the data to be accessed is read from the basic chunk frame of the data to be acquired into the allocated memory slice, from the allocated memory chip. Get the data to be accessed.
  14. 一种提供非易失随机访问存储器的方法,包括如下步骤:A method of providing a non-volatile random access memory includes the following steps:
    识别要被写入数据的NVRAM地址空间;Identify the NVRAM address space to be written to the data;
    识别要被写入数据的NVRAM地址空间的地址被映射到基础大块帧的地址或内存片地址;An address identifying the NVRAM address space to be written to the data is mapped to an address or a memory slice address of the underlying chunky frame;
    若要被写入数据的NVRAM地址空间的地址是内存片地址,则向内存片写入数据;If the address of the NVRAM address space to be written to the data is the memory slice address, the data is written to the memory slice;
    若要被写入数据的NVRAM地址空间的地址是基础大块帧的地址,则生成记录了要被写入数据的NVRAM地址空间地址NADDR与被写入的数据D 的日志条目,将日志条目写入日志大块帧。If the address of the NVRAM address space to which data is written is the address of the base chunk frame, a log entry is generated in which the NVRAM address space address NADDR to be written data and the data D to be written are written, and the log entry is written. Log in large chunks of frames.
  15. 根据权利要求14所述的提供非易失随机访问存储器的方法,其中,A method of providing a nonvolatile random access memory according to claim 14, wherein
    根据要被写入数据的NVRAM地址空间的地址,生成小块索引(ID);Generating a small block index (ID) according to the address of the NVRAM address space to which data is to be written;
    根据小块索引(ID)访问小块转换表;Accessing the small block conversion table according to the small block index (ID);
    根据要被写入数据的NVRAM地址空间的地址获取小块转换表条目,根据小块转换表条目识别要被写入数据的NVRAM地址空间的地址被映射到基础大块帧的地址还是内存片地址。Obtaining a small block conversion table entry according to an address of an NVRAM address space to which data is to be written, and identifying, based on the small block conversion table entry, an address of an NVRAM address space to which data is to be written is mapped to an address of a base large frame or a memory chip address .
  16. 一种提供非易失随机访问存储器的方法,包括如下步骤:A method of providing a non-volatile random access memory includes the following steps:
    识别要被写入数据的NVRAM地址空间;Identify the NVRAM address space to be written to the data;
    根据要被写入数据的NVRAM地址空间的地址,生成记录了要被写入数据的NVRAM地址空间地址NADDR与要被写入的数据D的日志条目;将日志条目写入日志大块帧。A log entry in which the NVRAM address space address NADDR to be written data and the data D to be written is recorded is generated according to the address of the NVRAM address space to which the data is to be written; the log entry is written to the log chunk frame.
PCT/CN2018/093075 2018-01-31 2018-06-27 Non-volatile random access memory and method for providing same WO2019148757A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810094060.2 2018-01-31
CN201810094060.2A CN110096452A (en) 2018-01-31 2018-01-31 Non-volatile random access memory and its providing method

Publications (1)

Publication Number Publication Date
WO2019148757A1 true WO2019148757A1 (en) 2019-08-08

Family

ID=67442402

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/093075 WO2019148757A1 (en) 2018-01-31 2018-06-27 Non-volatile random access memory and method for providing same

Country Status (2)

Country Link
CN (1) CN110096452A (en)
WO (1) WO2019148757A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10909012B2 (en) * 2018-11-12 2021-02-02 H3 Platform, Inc. System having persistent memory
CN115878499A (en) * 2021-09-26 2023-03-31 超聚变数字技术有限公司 Computer device, method for processing data and computer system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297147A1 (en) * 2011-05-20 2012-11-22 Nokia Corporation Caching Operations for a Non-Volatile Memory Array
CN104572495A (en) * 2013-09-10 2015-04-29 大卫·R·切里顿 Hybrid main memory using a fine-grain level of remapping
CN105786400A (en) * 2014-12-25 2016-07-20 研祥智能科技股份有限公司 Heterogeneous hybrid memory module, system and storage method
WO2017123357A1 (en) * 2016-01-11 2017-07-20 Qualcomm Incorporated Non-volatile random access system memory with dram program caching
CN107544912A (en) * 2016-06-29 2018-01-05 北京忆恒创源科技有限公司 A kind of log recording method, loading method and its device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US9311226B2 (en) * 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US9268682B2 (en) * 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
CN103810113B (en) * 2014-01-28 2016-07-06 华中科技大学 A kind of fusion memory system of nonvolatile storage and dynamic random access memory
CN103810112B (en) * 2014-01-28 2016-08-17 华中科技大学 A kind of Nonvolatile memory system and management method thereof
US11977484B2 (en) * 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297147A1 (en) * 2011-05-20 2012-11-22 Nokia Corporation Caching Operations for a Non-Volatile Memory Array
CN104572495A (en) * 2013-09-10 2015-04-29 大卫·R·切里顿 Hybrid main memory using a fine-grain level of remapping
CN105786400A (en) * 2014-12-25 2016-07-20 研祥智能科技股份有限公司 Heterogeneous hybrid memory module, system and storage method
WO2017123357A1 (en) * 2016-01-11 2017-07-20 Qualcomm Incorporated Non-volatile random access system memory with dram program caching
CN107544912A (en) * 2016-06-29 2018-01-05 北京忆恒创源科技有限公司 A kind of log recording method, loading method and its device

Also Published As

Publication number Publication date
CN110096452A (en) 2019-08-06

Similar Documents

Publication Publication Date Title
US10649657B2 (en) Log-based storage for different data types in non-volatile memory
KR101769883B1 (en) Apparatus, system, and method for allocating storage
US8850114B2 (en) Storage array controller for flash-based storage devices
US8898376B2 (en) Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
US10127166B2 (en) Data storage controller with multiple pipelines
US11263149B2 (en) Cache management of logical-physical translation metadata
JP2017021805A (en) Interface providing method capable of utilizing data attribute reference data arrangement in nonvolatile memory device and computer device
US10296250B2 (en) Method and apparatus for improving performance of sequential logging in a storage device
JP2013242908A (en) Solid state memory, computer system including the same, and operation method of the same
TWI733324B (en) Memory system
US20190391756A1 (en) Data storage device and cache-diversion method thereof
US10459803B2 (en) Method for management tables recovery
KR20170038853A (en) Host-managed non-volatile memory
WO2019128200A1 (en) Address translation method and apparatus for mass storage device
WO2018024214A1 (en) Io flow adjustment method and device
JP2021533467A (en) Logical vs. physical table fragment
US11875036B2 (en) Computing system including host and storage system and having increased write performance
WO2019148757A1 (en) Non-volatile random access memory and method for providing same
US20240020014A1 (en) Method for Writing Data to Solid-State Drive
CN110554833A (en) Parallel processing of IO commands in a storage device
CN110865945B (en) Extended address space for memory devices
WO2018041258A1 (en) Method for processing de-allocation command, and storage device
CN109815157B (en) Programming command processing method and device
CN110968527A (en) FTL provided caching
TW202314471A (en) Storage device and method of operating the same

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18903094

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18903094

Country of ref document: EP

Kind code of ref document: A1