WO2023025046A1 - 超级块管理方法和装置 - Google Patents
超级块管理方法和装置 Download PDFInfo
- Publication number
- WO2023025046A1 WO2023025046A1 PCT/CN2022/113493 CN2022113493W WO2023025046A1 WO 2023025046 A1 WO2023025046 A1 WO 2023025046A1 CN 2022113493 W CN2022113493 W CN 2022113493W WO 2023025046 A1 WO2023025046 A1 WO 2023025046A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- capacity
- section
- super
- blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Definitions
- the present application relates to the field of information technology, and in particular to a super block management method and device.
- the general architecture of computer equipment such as terminal equipment, includes file systems (for example, Flash-Friendly File System (Flash-Friendly File System, F2FS), etc.) and general-purpose storage (for example, Universal Flash Storage (UFS) and Embedded Multi-Media Card (Embedded Multi-Media Card, EMMC) etc.).
- file systems for example, Flash-Friendly File System (Flash-Friendly File System, F2FS), etc.
- general-purpose storage for example, Universal Flash Storage (UFS) and Embedded Multi-Media Card (Embedded Multi-Media Card, EMMC) etc.
- UFS Universal Flash Storage
- EMMC Embedded Multi-Media Card
- the embodiment of the present application provides a super block management method and device, which can reduce the blocking probability of key requests by dynamically configuring the size of the super block, and reduce the impact of an overly large super block on storage performance, so as to improve the performance of the whole machine.
- the present application provides a super block management method, the method includes: obtaining memory parameters and the type of target data; wherein, the target data is data to be written into the memory; based on the target The type of data and/or the capacity of the section in the parameter configuration file system; wherein, the section is the management unit of the logical address space in the file system, and the configured capacity of the section is the same as that of the super block in the memory The capacity of the storage device is matched; and the logical address space corresponding to the memory is managed based on the configured section.
- the type of target data can be divided into hot data, warm data and cold data.
- a section is a unit of logical address space managed by the file system.
- the foregoing embodiments may be implemented by running a file system on a processor.
- the embodiment of the present application can dynamically adjust the section capacity based on different scenarios (corresponding to different target data types and/or memory parameters). Adjustment, since the capacity of the section matches the capacity of the super block in the storage, when dynamically configuring the capacity of the section, the capacity of the super block in the storage is also adjusted synchronously to meet the needs of different scenarios, thereby improving the performance of the whole machine. For example, with the improvement of the future manufacturing process, the capacity of the super block will continue to increase when the existing technology is used to manage the super block. Under the condition of a certain memory capacity, the number of free super blocks will continue to decrease.
- the capacity of the super block in the memory can be reduced synchronously by reducing the capacity of the section, thereby increasing the number of redundant blocks (that is, super blocks in the redundant space (Over Provisioning, OP)) in the memory, and then Improve overall machine performance.
- the memory includes at least one die, and each Die in the at least one Die includes at least one physical block; the super block is a management unit in the memory, and the The super block includes at least one physical block, and each of the physical blocks in the at least one physical block is respectively located on a different Die.
- the capacity of a section is equal to the capacity of a super block in the storage, and the super block includes at least one physical block, so the capacity of a section corresponds to at least one physical block in the storage, that is, the capacity of a section is equal to the number and sum of the corresponding physical blocks in the storage.
- the Die and the physical block on the Die are the hardware structure on the memory, and the super block is the logical structure on the memory.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is less than or equal to a preset number, the configured The capacity of the section corresponds to a number of physical blocks in the memory that is smaller than the number of Dies.
- the embodiment of the present application can dynamically configure the capacity of the section, for example, by reducing the capacity of the section , so that the number of physical blocks corresponding to the capacity of envoys in the memory is less than the number of Dies, that is, the capacity of the super block in the memory is reduced synchronously, so as to increase the number of redundant blocks in the memory and improve the performance of the whole machine.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is greater than a preset number, the configured The capacity of a section corresponds to a number of physical blocks in the memory that is less than or equal to the number of Dies.
- the section capacity corresponds to the number of physical blocks in the memory equal to the number of Dies; when the target data type is warm data or cold data, the section capacity corresponds to the physical block in the memory The amount of is less than the amount of Die.
- the size of the corresponding super block in the storage is the same for critical requests (ie read and write requests of hot data) and non-key requests (ie read and write requests of warm data or cold data), namely
- the number of physical blocks included is equal to the number of Dies, so when a critical request is processed before it is inserted into a non-critical request, two requests will most likely fall on the same Die, causing critical requests to be blocked.
- the capacity of smaller sections can be configured, that is, the number of physical blocks contained in the super block in the memory is less than the number of Dies; for critical requests, the capacity of larger sections can be configured, that is, The number of physical blocks contained in the super block in the memory is equal to the number of Dies. Therefore, when a critical request is processed before it is inserted into a non-critical request, since the number of physical blocks contained in the corresponding super block in the memory of the two requests is different, the probability of the two requests falling on the same Die is relatively small, that is, the The embodiment of the application can reduce the probability of critical requests being blocked.
- the managing the logical address space corresponding to the memory based on the configured section includes: determining E pieces of the configured logical address space from the logical address space corresponding to the memory section; wherein, the E configured sections correspond to the E superblocks in the memory respectively; instructing the processor to recycle the data in the E superblocks to F free ones In the super block; wherein, the E is greater than the F, and E and F are positive integers.
- the memory executes the GC process according to the capacity of the section:
- the capacity of a section corresponds to the number of physical blocks equal to the number of Dies.
- the managing the logical address space corresponding to the memory based on the configured section includes: determining K pieces of the configured logical address space from the logical address space corresponding to the memory section; wherein, the K configured sections respectively correspond to the K superblocks in the memory; instruct the memory to write the target data into the K superblocks; wherein, the Said K is a positive integer.
- the capacity of the section is configured in the file system, and the memory executes the target data writing process according to the capacity of the section: when the target data is written as a key request to be inserted, it can be known from the above embodiments that the implementation of the present application The example can reduce the probability of being blocked when the target data is written.
- the present application provides a super block management device, which includes: an acquisition unit, configured to acquire memory parameters and types of target data; wherein, the target data is data to be written into the memory a configuration unit, configured to configure the capacity of a section in the file system based on the type of the target data and/or the parameter; wherein, the section is a management unit of a logical address space in the file system, and the configured The capacity of the section matches the capacity of the super block in the memory; the management unit is configured to manage the logical address space corresponding to the memory based on the configured section.
- the memory includes at least one die, and each Die in the at least one Die includes at least one physical block; the super block is a management unit in the memory, and the The super block includes at least one physical block, and each of the physical blocks in the at least one physical block is respectively located on a different Die.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is less than or equal to a preset number, the configured The capacity of the section corresponds to a number of physical blocks in the memory that is smaller than the number of Dies.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is greater than a preset number, the configured The capacity of a section corresponds to a number of physical blocks in the memory that is less than or equal to the number of Dies.
- the management unit is specifically configured to: determine E configured sections from the logical address space corresponding to the memory; wherein, the E configured sections Sections respectively correspond to the E super blocks in the memory; instruct the processor to recycle the data in the E super blocks to F free super blocks; wherein, the E is greater than the F, E and F are positive integers.
- the management unit is specifically configured to: determine K pieces of the configured sections from the logical address space corresponding to the memory; wherein, the K pieces of the configured sections The sections respectively correspond to the K super blocks in the memory; instruct the memory to write the target data into the K super blocks; wherein, the K is a positive integer.
- the present application provides a computer device, the computer device includes a processor and a memory; the processor is configured to: acquire the parameters of the memory and the type of target data; wherein, the target data is The data to be written in the memory; configure the capacity of the section in the file system based on the type of the target data and/or the parameter; wherein, the section is a management unit of the logical address space in the file system, and the The capacity of the section matches the configured capacity of the super block in the memory; and the logical address space corresponding to the memory is managed based on the configured section.
- the memory includes at least one die, and each Die in the at least one Die includes at least one physical block; the super block is a management unit in the memory, and the The super block includes at least one physical block, and each of the physical blocks in the at least one physical block is respectively located on a different Die.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is less than or equal to a preset number, the section capacity The number of corresponding physical blocks in the memory is smaller than the number of Dies.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is greater than a preset number, the configured The capacity of a section corresponds to a number of physical blocks in the memory that is less than or equal to the number of Dies.
- the processor is specifically configured to: determine from the logical address space corresponding to the memory E configured sections; wherein, the E configured sections correspond to the E super blocks in the memory; the memory is configured to: store the E super blocks The data in the block is recycled to F free super blocks; wherein, the E is greater than the F, and E and F are positive integers.
- the processor is specifically configured to: determine from the logical address space corresponding to the memory K configured sections; wherein, the K configured sections correspond to the K super blocks in the memory; the memory is configured to: write the target data into the K super blocks; wherein, the K is a positive integer.
- the present application provides a chip system, the chip system includes at least one processor, a memory and an interface circuit, the memory, the interface circuit and the at least one processor are interconnected by wires, and the at least Instructions are stored in a memory; when the instructions are executed by the processor, the method in any one of the above first aspects is realized.
- the present application provides a computer-readable storage medium, where program instructions are stored in the computer-readable storage medium, and when the program instructions are run on one or more processors, the above-mentioned first The method of any one of the aspects.
- the present application provides a computer program product.
- the computer program product is run on a computer device, the method described in any one of the above-mentioned first aspects can be realized.
- FIG. 1 is a schematic structural diagram of a memory in the prior art
- FIG. 2 is a schematic block diagram of a system architecture in an embodiment of the present application.
- FIG. 3 is a schematic flow diagram of a super block management method in an embodiment of the present application.
- FIG. 4 is a schematic diagram of a correspondence between a logical address space and a memory in an embodiment of the present application
- FIG. 5 is a schematic diagram of a request blocking process in an embodiment of the present application.
- FIG. 6 is a schematic diagram of a process of garbage collection GC in the embodiment of the present application.
- FIG. 7 is a schematic block diagram of another system architecture in the embodiment of the present application.
- FIG. 8 is a schematic structural diagram of a super block management device in an embodiment of the present application.
- FIG. 9 is a schematic diagram of a hardware structure of a computer device in an embodiment of the present application.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- an application running on a computing device and the computing device can be components.
- One or more components can reside within a process and/or thread of execution and a component can be localized on one computer and/or distributed between two or more computers.
- these components can execute from various computer readable media having various data structures stored thereon.
- a component may, for example, be based on a signal having one or more packets of data (e.g., data from two components interacting with another component between a local system, a distributed system, and/or a network, such as the Internet via a signal interacting with other systems). Communicate through local and/or remote processes.
- packets of data e.g., data from two components interacting with another component between a local system, a distributed system, and/or a network, such as the Internet via a signal interacting with other systems.
- Flash memory also known as non-volatile memory. It can be written and erased many times, and the data can be kept for a long time without current and voltage supply.
- File system The software organization responsible for managing and storing file information in the operating system.
- the functions of the file system include: managing and scheduling the storage space of the file, providing the logical structure, physical structure and storage method of the file; realizing the mapping of the file from the identifier to the actual address, realizing the control operation and access operation of the file, and realizing the storage of the file information. Share and provide reliable file confidentiality and protection measures, and provide file security measures.
- GC algorithm the garbage collection (Garbage Collection, GC) algorithm, which is used to move the valid pages in one block to another free block, so that the free blocks after valid data are transferred to carry subsequent writes enter.
- GC Garbage Collection
- OP Over Provisioning, which can be called redundant space or reserved space.
- OP refers to the capacity on the storage that cannot be operated by the user, and its size is the actual capacity of the storage minus the capacity available to the user.
- the OP area is generally used for optimization operations, such as GC.
- the OP block (or redundant block) is the super block contained in the redundant space. The more OP blocks, the smaller the burden of GC.
- Section file system side block management unit, in the flash file system (Flash File System), the section on the file system side corresponds to the capacity of the super block (Super block) in the memory.
- a section is a section in the three logical address space management units (zone, section, and segment) it contains.
- Super Block Super Block The smallest management unit in the memory, which is a logical structure division in the memory.
- the storage performs operations such as data reading and writing and garbage collection in units of super blocks.
- FIG. 1 is a schematic structural diagram of a memory 100 in the prior art.
- the memory 100 can be any one of random access memory (Random Access Memory, RAM), read-only memory (Read-Only Memory, ROM) or flash memory (Flash Memory); wherein, RAM includes Static Random Access Memory (Static Random Access Memory) RAM, SRAM) and dynamic random access memory (Dynamic RAM, DRAM), etc.
- ROM includes Erasable Programmable ROM (Erasable Programmable ROM, EPROM) and Electrically Erasable Programmable ROM (EEPROM), etc.
- the memory 100 may include M flash memory grains Flash Die, each Die is an independent concurrent unit, and each Die may include N physical blocks.
- a physical block is usually taken from each Die to form a super block (super block 1 and super block N in Figure 1), all physical blocks forming a super block can be concurrent, and the super block is used as a memory The smallest operation unit on the side, and the size of the super block remains unchanged during the subsequent operation.
- M and N are positive integers.
- the memory 100 will maintain a queue when processing requests, and the requests issued by the host are arranged in the queue in order, among which the high-priority key requests can be inserted into the head of the low-priority non-critical requests, and then the first-in-first-out The principle of serial processing.
- the memory 100 may be a universal flash storage UFS or an embedded multimedia memory card EMMC on a computer device such as a mobile phone, which is not limited in this solution.
- the core algorithms such as the GC algorithm and the block management algorithm under the Flash Translation Layer (Flash Translation Layer, FTL) can be moved up and handed over to the kernel for management, but the overall FTL strategy remains unchanged.
- the composition of the super block remains the same as before. In this way, the GC on the storage side and the GC on the file system side are pulled together into one layer of GC.
- memories such as flash memory will evolve towards greater density in the future, which is reflected in the increase in the number of stacked layers and the storage capacity of a single storage unit, so that the capacity of a single physical block will also increase significantly.
- the super block on the memory side is composed of a physical block on each Die. Therefore, when the capacity of a single physical block increases in the future, the capacity of a single super block will also increase significantly. An excessively large super block will increase the effective data in the GC process.
- the number of repeated writes increases the burden of GC, which affects the overall throughput of the memory; especially at the end of the capacity (the number of free super blocks is less than or equal to the preset number), each super block stores more effective Data, the additional overhead introduced by data movement in the GC algorithm will be further amplified.
- the host when the memory is processing a low-priority non-critical request, the host sends a high-priority critical request, and the high-priority critical request will be queued to the head of the low-priority non-critical request queue.
- Level non-critical requests are being processed, and these two requests will most likely be on the same Die, but a single Die can only process one request at a certain time, although high-priority critical requests are ranked in low-priority non-critical In front of the request, but it must wait for the low-priority non-critical request to be processed before it can be processed, thus causing the high-priority critical request to be blocked.
- FIG. 2 is a schematic block diagram of a system architecture in an embodiment of the present application, which is used to describe the system architecture of a computer device 200 .
- the system architecture of the computer device 200 may include an application layer 210 , an operating system 220 and a device layer 230 .
- the computer device 200 may be a mobile phone, a computer, a tablet, or a wearable device, etc., which is not limited in this application.
- the application layer 210 may include an application program layer 211 and an application program framework layer 212 .
- the application program layer 211 may include a series of application program packages.
- the application package may include application programs (also called applications) such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.
- the application framework layer 212 provides an application programming interface (Application Programming Interface, API) and a programming framework for applications in the application layer.
- the application framework layer includes some predefined functions.
- the operating system 220 may include a file system 221 , a block layer 222 and a device driver 223 .
- the file system 221 is used to manage and schedule the storage space of files, and provide the logical structure, physical structure and storage method of files.
- Block layer 222 The block layer is an interface for the file system 221 to access the device layer 230 , and is used to connect the file system 221 and the device driver 223 .
- the block layer 222 can be divided into two layers: one is a bio layer, and the other is a request layer.
- the block layer 222 is used to encapsulate/decapsulate related requests.
- the device driver 223 may include a display driver, a camera driver, an audio driver, a sensor driver, and the like.
- the device layer 230 may include the memory 100 .
- the running of the program can be divided into user mode and kernel mode.
- the processor can only access part of the data in the memory, and is not allowed to access peripheral devices, such as hard disks, network cards, etc.
- the program is running in kernel mode, the processor can access all data in memory, including peripheral devices, such as hard disk, network card, etc.
- the processor can also switch itself from one program to another.
- the application program in the application layer 210 runs in the user state
- the operating system 220 runs in the kernel state.
- the application layer 210 initiates a read-write request; the file system 221 determines the logical address of the data corresponding to the read-write request in the memory 100; the block layer 222 is used to distribute the read-write request to the device driver 223; the device The driver 223 is used to encapsulate the read-write request, and send the encapsulated read-write request and the logical address corresponding to the read-write request to the memory 100; the memory 100 unpacks the encapsulated read-write request, and sends the read-write request The corresponding logical address is converted into the corresponding physical address in the memory 100; then data is written into the physical address or read from the physical address based on the read/write request.
- FIG. 3 is a schematic flowchart of a super block management method in an embodiment of the present application. As shown in FIG. 3 , the method 300 may include steps S310 , S320 and S330 .
- Step S310 Obtain the parameters of the memory and the type of target data; wherein, the target data is data to be written into the memory.
- Step S320 Configure the capacity of the section in the file system based on the type of the target data and/or the parameters; wherein, the section is a management unit of the logical address space in the file system, and the configured section The capacity matches the capacity of the super block in the memory.
- Step S330 Manage the logical address space corresponding to the memory based on the configured capacity of the section.
- the type of target data may be any one of cold data (Cold data), warm data (Warm data) or hot data (Hot data), or any data type in other data type classification methods.
- the foregoing memory may be the memory 100 in the embodiment of FIG. 1 .
- the parameters of the memory may include the number of free super blocks in the memory and the number of Dies on the memory (as shown in the memory in FIG. 1 , the number of Dies is M).
- the operations in the above steps S310, S320 and S330 may be implemented by the processor running the file system.
- the above-mentioned file system can be any one of a flash file system (Flash File System) or other feasible file systems.
- the flash file system can include the second edition of the flash log file system (Journaling Flash File System Version2, JFFS2), the YAFFS file system (Yet Another Flash File System, YAFFS), the flash memory friendly file system (Flash-Friendly File System, F2FS )wait.
- the logical address space may include three levels of management units: Zone, Section and Segment.
- each Zone may include at least one Section
- each Section may include at least one Segment.
- FIG. 4 is a schematic diagram of a correspondence between a logical address space and a memory in an embodiment of the present application.
- Zone in the logical address space layout of the file system, there are three hierarchical management units: Zone, Section, and Segment.
- Each Zone includes N sections, and each section includes M segments (that is, section 1 includes segment 1-1...segment 1-M, section N includes: segment N-1...segment N-M).
- the basic management unit in memory is the superblock.
- the capacity of the section in the logical address space corresponds to the capacity of the super block in the memory, that is, section 1 matches super block 1, and section N matches super block N.
- M and N are positive integers.
- FIG. 4 uses a zone in the F2FS file system as an example to describe the corresponding relationship between the logical address space managed by the file system and the memory.
- Different file systems can use different levels of management units to manage the corresponding logical address space, wherein a section is a management unit included in each file system, and the capacity of the management unit corresponds to the capacity of the super block on the storage side.
- the logical address space managed by the file system may include a logical address space corresponding to the memory.
- step S320 configuring the capacity of sections in the file system based on the type of the target data and/or the parameters may include two situations:
- the capacity of the section in the file system is configured based on the parameters of the memory.
- managing the logical address space corresponding to the memory based on the configured capacity of the section may include:
- the capacity of the section in the file system is configured, and the logical address space corresponding to the memory is divided in units of the configured section capacity. Because the capacity of the configured section matches the capacity of the super block in the memory, and the memory uses the super block as a basic unit to perform operations such as reading and writing data. Therefore, the embodiment of the present application adjusts the capacity of the super block in the storage synchronously by dynamically configuring the capacity of the section in the file system, and instructs the storage to perform operations such as data reading and writing and garbage collection GC in units of the adjusted super block.
- the embodiment of the present application can dynamically adjust the section capacity based on different scenarios (corresponding to different target data types and/or memory parameters). Adjustment, since the capacity of the section matches the capacity of the super block in the storage, when dynamically configuring the capacity of the section, the capacity of the super block in the storage is also adjusted synchronously to meet the needs of different scenarios, thereby improving the performance of the whole machine. For example, with the improvement of the manufacturing process in the future, the capacity of the super block will continue to increase when the existing technology is used to manage the super block. Under the condition of a certain memory capacity, the number of free super blocks will continue to decrease.
- the capacity of the super block in the memory can be reduced synchronously by reducing the capacity of the section, thereby increasing the number of redundant blocks (that is, super blocks in the redundant space (Over Provisioning, OP)) in the memory, and then Improve machine performance.
- the memory includes at least one die, and each Die in the at least one Die includes at least one physical block; the management unit in the memory is a super block, and the super block The block includes at least one physical block, and each of the physical blocks in the at least one physical block is located on a different Die.
- the capacity of a section is equal to the capacity of a super block in the storage, and the super block includes at least one physical block, so the capacity of a section corresponds to at least one physical block in the storage, that is, the capacity of a section is equal to the number and sum of the corresponding physical blocks in the storage.
- the memory includes at least M dies, and each Die includes N physical blocks Block.
- the super block is the basic management unit in the memory, that is, the memory uses the super block as a unit to perform operations such as reading and writing data.
- the size of the logical address space corresponding to each super block matches the size of the logical address space corresponding to each Section, that is, they are consistent.
- each super block includes at least one physical block, and the at least one physical block is respectively located on different Dies.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is less than or equal to a preset number, the section capacity The number of corresponding physical blocks in the memory is smaller than the number of Dies.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is greater than a preset number, the configured The capacity of a section corresponds to a number of physical blocks in the memory that is less than or equal to the number of Dies.
- an idle super block is a super block that does not contain any data.
- Free superblocks can be located in user-visible storage space or redundant space OP.
- the preset number may be a value set according to a specific scene, which is not limited in this application.
- the above configuration of the section capacity in the file system based on the type and/or parameters of the target data can be divided into two cases:
- the capacity of the section in the file system is configured based on the parameters of the memory (here, the number of Dies), so that after configuration
- the capacity of the section corresponds to the number of physical blocks in the memory less than the number of Dies. Since the size of the logical address space corresponding to each section is consistent with the size of the logical address space corresponding to the super block in the memory, the capacity of the super block in the memory changes synchronously with the capacity of the section; that is, at this time, each super block in the memory includes The number of physical blocks is less than the number of Dies in memory. In this way, the number of redundant blocks in the memory is increased, and the number of valid data transfers during the GC recovery process is reduced, thereby improving the performance of computer equipment.
- the embodiment of the present application can dynamically configure the capacity of the section, for example, by reducing the capacity of the section , so that the number of physical blocks corresponding to the capacity of envoys in the memory is less than the number of Dies, that is, the capacity of the super block in the memory is reduced synchronously, so as to increase the number of redundant blocks in the memory and improve the performance of the whole machine.
- the configuration method in this case can be: when the type of target data is hot data (key request), configure the capacity of the section so that the configured section capacity in the memory corresponds to the number of physical blocks equal to Die
- the number of that is, the number of physical blocks contained in the super block in the memory is equal to the number of Dies in the memory.
- the application can meet the performance requirements of hot data by synchronously increasing the capacity of the section and the super block; when the type of target data is warm data or cold data (non-critical request), configure the capacity of the section so that The configured section capacity in the memory corresponds to a number of physical blocks less than the number of Dies, that is, the number of physical blocks included in the super block in the memory is smaller than the number of Dies in the memory.
- FIG. 5 is a schematic diagram of a request blocking process in an embodiment of the present application.
- the scenario where the request is blocked may be: the request currently being processed by the memory 100 is a non-critical request (corresponding to cold data or warm data), and the current processing process of the non-critical request is located on the physical server on the Mth Die. in block N.
- the memory will suspend the processing of the non-critical request and start processing the critical request.
- the processing of key requests will be blocked at this time.
- the size of the super block corresponding to the critical request and the non-critical request is the same, and the number of physical blocks contained is equal to the number of Dies. Therefore, when the critical request is processed before being inserted into the non-critical request, the two requests have a higher probability Will fall on the same Die.
- the file system can dynamically configure the capacity of a section, that is, critical requests and non-critical requests correspond to superblocks of different capacities.
- the super block corresponding to the critical request includes physical block 1 on each Die, a total of M physical blocks;
- the super block corresponding to the non-critical request includes the physical block on the M-1th Die N and the physical block N on the Mth Die, a total of two physical blocks. Since the number of physical blocks contained in the super block corresponding to the critical request and the non-critical request is different, when the critical request is processed before the non-critical request is inserted, the probability of two requests falling on the same Die is greatly reduced, that is The embodiment of the present application can effectively reduce the probability of critical request blocking.
- Table 1 shows the probability of key requests being blocked under different node capacity ratios.
- the number of Dies in the memory is 4.
- the super block corresponding to the section capacity configured by the file system includes at most four physical blocks, and at least includes one physical block.
- the horizontal direction in Table 1 is the number of physical blocks included in the super block corresponding to the configured section capacity under critical requests; the vertical direction in Table 1 is the number of physical blocks included in the super block corresponding to the configured section capacity under non-critical requests.
- the blocking probability of the critical request is 100%.
- the probability of blocking of the key request is smaller.
- the management of the logical address space corresponding to the memory based on the configured sections includes: determining E number of the configured sections from the logical address space corresponding to the memory ; Wherein, the E configured sections respectively correspond to the E super blocks in the memory; instruct the processor to recycle the data in the E super blocks to the F free ones In the super block; wherein, the E is greater than the F, and E and F are positive integers.
- the file system can manage the logical address space corresponding to the memory based on the configured capacity of the section.
- the management process can include: The capacity of the configured section is used as a unit to divide the logical address space corresponding to the memory, and instructs the memory to perform garbage collection in units of super blocks to release free super blocks in the memory; wherein, the capacity of the super block in the memory is the same as the configured Sections have the same capacity.
- E configured sections may be determined from the logical address space corresponding to the storage, and the E configured sections corresponding to E A logical address is sent to memory. Then instruct the memory to map the E logical addresses into E physical addresses respectively, and the E physical addresses correspond to E super blocks in the memory. Finally, the valid data in the E superblocks is transferred to F free superblocks, thereby releasing the E superblocks.
- E is greater than F, and both E and F are positive integers.
- the embodiment of the present application can reduce the number of valid data transfers by reducing the capacity of the super blocks in the memory; or, when transferring the same When there is a large amount of valid data, the embodiment of the present application can release more super blocks due to the small capacity of the super block, which improves the release efficiency of redundant blocks in the GC process, thereby improving the performance of the whole machine.
- FIG. 6 is a schematic diagram of a garbage collection GC process in an embodiment of the present application. As shown in Fig. 6, Fig. 6 compares the differences in the number of valid data transfers and the release efficiency of free super blocks under different super block sizes (that is, different configured section capacities).
- the superblock corresponding to the configured section capacity includes 9 storage units.
- the memory contains 8 super blocks, and the data stored in storage units 1-7 are valid data.
- the memory needs to reclaim the valid data in the storage unit 1, the storage unit 2, the storage unit 3, the storage unit 4 and the storage unit 5 into one free super block.
- 4 free super blocks can be released.
- the capacity of the section allocated by the file system corresponds to the size of the super block is 18 storage units.
- the memory contains 4 super blocks, and the data stored in storage units 1-7 are valid data. When it is required to release two free super blocks, the memory needs to reclaim the valid data in storage units 1-7 into one free super block. When it is required to reclaim the valid data stored in the storage units 1-7, 2 free super blocks are released at this time.
- each storage unit may be limited by a specific scenario, which is not limited in this application.
- the file system can configure a smaller capacity for each section, that is, each super block corresponds to a smaller capacity, so as to effectively Improve the overall performance of computer equipment.
- the management of the logical address space corresponding to the memory based on the configured sections includes: determining K pieces of the configured sections from the logical address space corresponding to the memory ; wherein, the K configured sections respectively correspond to the K super blocks in the memory; instruct the memory to write the target data into the K super blocks; wherein, the K is a positive integer.
- the logical address space corresponding to the memory is managed based on the capacity of the configured section.
- the management process includes: using the configured section Divide the logical address space corresponding to the memory in units of capacity, and instruct the memory to read and write data in units of super blocks; wherein, the capacity of the super block in the memory is the same as the capacity of the configured section.
- K configured sections may be determined from the logical address space corresponding to the memory, and the target data and the K configured sections are respectively
- the corresponding K logical addresses are sent to the memory.
- the memory is instructed to map the K logical addresses into K physical addresses respectively, and the K physical addresses correspond to K super blocks in the memory.
- the target data is written into the K super blocks; wherein, K is a positive integer.
- the capacity of the section is configured in the file system, and the memory executes the target data writing process according to the capacity of the section: when the target data is written as a key request to be inserted, it can be known from the above embodiments that the implementation of the present application The example can reduce the probability of being blocked when the target data is written.
- FIG. 7 is a schematic block diagram of another system architecture in an embodiment of the present application. As a supplement and refinement to the system architecture shown in Figure 2.
- FIG. 7 takes FIG. 7 as an example to describe in detail the implementation of data reading and writing processes in the user state/application layer 210 , kernel state/operating system 220 and memory 100 on the computer device 200 .
- the application layer 211 initiates a first read/write request, and the data corresponding to the first read/write request is hot data.
- the file system 221 receives the first read and write request, and acquires the memory parameters. The file system judges whether the memory is at the end of capacity based on the memory parameters. If the memory is not at the end of capacity at this time, the file system 221 configures the capacity of the section based on the data type corresponding to the first read and write request.
- the file system can configure a larger section capacity (section1 as shown in Figure 7) to meet the performance requirements of hot data; at this time, the logical address space corresponding to section1 corresponds to the super Block 1, Super Block 1 includes M physical blocks.
- the block layer 222 distributes the first read/write request, and the device driver 223 encapsulates the first read/write request, and sends the first read/write request and the logical address corresponding to section1 to the memory 100 .
- the memory 100 receives the first read/write request and the logical address corresponding to section1, decapsulates the first read/write request, and maps the logical address corresponding to section1 to the corresponding first physical address, which corresponds to the super block 1. Based on the first physical address and the first read and write request, the memory performs corresponding data read and write operations on the super block 1 .
- the application layer 211 may also initiate a second read and write request, and the data corresponding to the second read and write request is cold data.
- the file system 221 receives the second read and write request, and acquires the memory parameters.
- the file system judges whether the memory is at the end of capacity based on the memory parameters. If the memory is at the end of capacity at this time, the file system 221 can configure a smaller section capacity (sectionN as shown in FIG. 7 ) to release as many free super blocks as possible To improve the performance of the whole machine; at this time, the logical address space corresponding to sectionN corresponds to superblock N in the memory, and superblock N includes 2 physical blocks.
- the block layer 222 distributes the second read/write request, and the device driver 223 encapsulates the second read/write request, and sends the second read/write request and the logical address corresponding to sectionN to the memory 100 .
- the memory 100 receives the second read/write request and the logical address corresponding to sectionN, decapsulates the second read/write request, and maps the logical address corresponding to sectionN to a corresponding second physical address, the second physical address corresponds to the super Block N.
- the memory performs corresponding data read and write operations on the super block N based on the second physical address and the second read and write request.
- FIG. 8 is a schematic structural diagram of a super block management device in an embodiment of the present application.
- the device 800 includes:
- the acquiring unit 801 is configured to acquire parameters of the memory and a type of target data; wherein, the target data is data to be written into the memory.
- the configuration unit 802 is configured to configure the capacity of the section in the file system based on the type of the target data and/or the parameter; wherein, the section is a management unit of the logical address space in the file system, and the configured The size of the section matches the size of the superblock in the memory.
- the management unit 803 is configured to manage the logical address space corresponding to the memory based on the configured section.
- the memory includes at least one die, and each Die in the at least one Die includes at least one physical block; the super block is a management unit in the memory, and the The super block includes at least one physical block, and each of the physical blocks in the at least one physical block is respectively located on a different Die.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is less than or equal to a preset number, the configured The capacity of the section corresponds to a number of physical blocks in the memory that is smaller than the number of Dies.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is greater than a preset number, the configured The capacity of a section corresponds to a number of physical blocks in the memory that is less than or equal to the number of Dies.
- the management unit is specifically configured to: determine E configured sections from the logical address space corresponding to the memory; wherein, the E configured sections Sections respectively correspond to the E super blocks in the memory; instruct the processor to recycle the data in the E super blocks to F free super blocks; wherein, the E is greater than the F, E and F are positive integers.
- the management unit is specifically configured to: determine K pieces of the configured sections from the logical address space corresponding to the memory; wherein, the K pieces of the configured sections The sections respectively correspond to the K super blocks in the memory; instruct the memory to write the target data into the K super blocks; wherein, the K is a positive integer.
- FIG. 9 is a schematic diagram of a hardware structure of a computer device in an embodiment of the present application.
- the device 900 includes a processor 901 , a memory 902 , an interface circuit 903 and a bus 904 .
- the processor 901 is configured to obtain the parameters of the memory 902 and the type of target data through the interface circuit 903; wherein the target data is data to be written into the memory; based on the type of the target data and /or the parameter configures the capacity of the section in the file system; wherein, the section is a management unit of the logical address space in the file system, and the capacity of the section matches the configured capacity of the super block in the memory ; Managing the logical address space corresponding to the memory based on the configured section.
- the processor 901 , the memory 902 and the interface circuit 903 perform data transmission through the bus 904 .
- the memory includes at least one die, and each Die in the at least one Die includes at least one physical block; the super block is a management unit in the memory, and the The super block includes at least one physical block, and each of the physical blocks in the at least one physical block is respectively located on a different Die.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is less than or equal to a preset number, the section capacity The number of corresponding physical blocks in the memory is smaller than the number of Dies.
- the parameters include the number of free super blocks in the memory and the number of Dies; when the number of free super blocks is greater than a preset number, the configured The capacity of a section corresponds to a number of physical blocks in the memory that is less than or equal to the number of Dies.
- the processor is specifically configured to: determine from the logical address space corresponding to the memory E configured sections; wherein, the E configured sections correspond to the E super blocks in the memory; the memory is configured to: store the E super blocks The data in the block is recycled to F free super blocks; wherein, the E is greater than the F, and E and F are positive integers.
- the processor is specifically configured to: determine from the logical address space corresponding to the memory K configured sections; wherein, the K configured sections correspond to the K super blocks in the memory; the memory is configured to: write the target data into the K super blocks; wherein, the K is a positive integer.
- the present application provides a computer-readable storage medium, where program instructions are stored in the computer-readable storage medium, and when the program instructions are run on one or more processors, to implement the above-mentioned super block management method some or all of the steps.
- the present application provides a computer program product.
- the computer program product is run on a computer device, part or all of the steps in the above super block management method can be realized.
- the disclosed device can be implemented in other ways.
- the device embodiments described above are only illustrative.
- the division of the above units is only a logical function division.
- there may be other division methods for example, multiple units or components can be combined or integrated. to another system, or some features may be ignored, or not implemented.
- the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical or other forms.
- the units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本申请公开了一种超级块管理方法和装置,该方法包括:获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,配置后的所述节的容量与所述存储器中超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。实施本申请实施例,可以通过动态配置超级块的大小来减小关键请求阻塞概率,并降低过大的超级块对存储性能影响,以提升整机性能。
Description
本申请要求于2021年8月23日提交中国专利局、申请号为202110971602.1、申请名称为“超级块管理方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及信息技术领域,尤其涉及一种超级块管理方法和装置。
当前,计算机设备,例如终端设备,的通用架构包含文件系统(例如,闪存友好文件系统(Flash-Friendly File System,F2FS)等)和通用存储器(例如,通用闪存存储(Universal Flash Storage,UFS)和嵌入式多媒体存储卡(Embedded Multi-Media Card,EMMC)等)。文件系统和存储器完全独立运转,不存在任何的耦合。文件系统用于管理逻辑地址空间,存储器用于存储应用层数据。
在当前的以闪存Flash为基础的存储器中,由于Flash页编程块擦除的物理限制,需要通过垃圾回收(Garbage Collection,GC)算法回收超级块中的有效数据,以释放出超级块承载后续数据的写入。目前,业界已经提出了一些将与存储器和文件系统分别对应的两层GC拉通成一层GC的新型架构,如统一存储、分区命名空间(Zoned Name Spaces,ZNS)等,以减小两层GC所导致的写放大。
然而,现有架构中存储器侧的关键请求的阻塞概率高;此外,随着未来存储器工艺的提升,在上述一层GC的架构中,存储器中单个晶粒die上物理块的容量会明显增加,因而超级块(Super Block)的容量也会显著增加,但过大的超级块会增加GC负担,严重影响存储器的性能。
发明内容
本申请实施例提供了一种超级块管理方法和装置,可以通过动态配置超级块的大小来减小关键请求阻塞概率,并降低过大的超级块对存储性能影响,以提升整机性能。
第一方面,本申请提供了一种超级块管理方法,该方法包括:获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。
其中,目标数据的类型可以分为热数据、温数据和冷数据。节为文件系统管理的逻辑地址空间的单元。
可选的,上述实施例可以通过在处理器上运行文件系统来实现。
从技术效果上看,相比于现有技术中固定的节的容量而言,本申请实施例可以基于不同场景(对应不同的目标数据的类型和/或存储器的参数)对节的容量进行动态调整,由于节的容量与存储器中超级块容量相匹配,因而在动态配置节的容量时,也在同步调整存储器中超级块的容量,以适应不同场景的需求,从而提升整机性能。例如,随着未来制造工艺的提升,采用现有技术管理超级块时超级块的容量不断增加,在存储器容量一定的条件下,空闲超级 块的数量会不断减小。而本申请实施例可以通过减小节的容量来同步减小存储器中超级块的容量,从而增加存储器中冗余块(即冗余空间(Over Provisioning,OP)中的超级块)的数量,进而提升整机性能。
在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
应当理解,节的容量等于存储器中超级块的容量,超级块包括至少一个物理块,因而节的容量在存储器中对应至少一个物理块,即节的容量等于其在存储器中对应物理块的数量和单个物理块的容量的乘积。
其中,Die和Die上的物理块为存储器上的硬件结构,超级块为存储器上的逻辑结构。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
从技术效果上看,当存储器中空闲超级块数量小于或等于预设数量时,会严重影响存储器中数据的读写过程,本申请实施例可以动态配置节的容量,例如通过减小节的容量,使节的容量在存储器中对应物理块的数量小于Die的数量,即同步减小存储器中超级块的容量,以增加存储器中冗余块的数量,提升整机性能。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
可选的,当目标数据类型为热数据时,节的容量在存储器中对应物理块的数量等于Die的数量;当目标数据类型为温数据或冷数据时,节的容量在存储器中对应物理块的数量小于Die的数量。
从技术效果上看,现有技术中,关键请求(即热数据的读写请求)和非关键请求(即温数据或冷数据的读写请求)在存储器中对应的超级块的大小相同,即包含的物理块数量都等于Die的数量,因而在关键请求被插入非关键请求之前进行处理时,两个请求较大概率会落入同一个Die上,造成关键请求阻塞。而在本申请实施例中,对于非关键请求,可以配置较小的节的容量,即存储器中超级块包含物理块数量小于Die的数量;对于关键请求,可以配置较大的节的容量,即存储器中超级块包含物理块数量等于Die的数量。因而,在关键请求被插入非关键请求之前进行处理时,由于两个请求在存储器中对应超级块包含的物理块数量不同,此时两个请求落入同一个Die上的概率较小,即本申请实施例可以降低关键请求被阻塞的概率。
在一种可行的实施方式中,所述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
从技术效果上看,在文件系统配置了节的容量,存储器根据节的容量执行GC过程中: 当文件系统配置的节的容量对应物理块数量小于Die的数量时,相比于现有技术中节的容量对应物理块数量等于Die的数量而言,在释放相同数量空闲超级块时,本申请实施例可以通过减小存储器中超级块的容量来减少有效数据的搬运次数;或者,在搬运相同数量的有效数据时,本申请实施例由于超级块容量较小,因而可以释放出更多数量的超级块,即提升GC过程冗余块的释放效率,进而提升整机性能。
在一种可行的实施方式中,所述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
从技术效果上看,在文件系统配置了节的容量,存储器根据节的容量执行目标数据写入过程:当目标数据写入为被插入的关键请求时,由上述实施例可以知,本申请实施例可以降低目标数据写入时被阻塞的概率。
第二方面,本申请提供了一种超级块管理装置,该装置包括:获取单元,用于获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;配置单元,用于基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配;管理单元,用于基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。
在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
在一种可行的实施方式中,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
在一种可行的实施方式中,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述处理器,用于:获取所述存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,所述节的容量与配置后的所述存储器中 超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。
在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
在一种可行的实施方式中,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;所述存储器,用于:将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
在一种可行的实施方式中,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;所述存储器,用于:将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
第四方面,本申请提供了一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述处理器执行时,上述第一方面中任一所述的方法得以实现。
第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,当所述程序指令在一个或多个处理器上运行时,以实现上述第一方面中任一项所述的方法。
第六方面,本申请提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,上述第一方面中任一项所述的方法得以实现。
以下对本申请实施例用到的附图进行介绍。
图1是现有技术中一种存储器的结构示意图;
图2是本申请实施例中一种系统架构的示意性框图;
图3是本申请实施例中一种超级块管理方法的流程示意图;
图4是本申请实施例中一种逻辑地址空间和存储器对应关系示意图;
图5为本申请实施例中一种请求的阻塞过程示意图;
图6是本申请实施例中一种垃圾回收GC的过程示意图;
图7是本申请实施例中另一种系统架构的示意性框图;
图8是本申请实施例中一种超级块管理装置结构示意图;
图9是本申请实施例中一种计算机设备的硬件结构示意图。
下面结合本申请实施例中的附图对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
下面结合本申请实施例中的附图对本申请实施例进行描述。
首先对本申请实施例中的相关术语进行解释:
(1)闪存Flash:也称为非易失性内存。可以多次写入擦除,并且在没有电流电压供应下也能长久保持数据。
(2)文件系统:操作系统中负责管理和存储文件信息的软件机构。文件系统的功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址的映射,实现文件的控制操作和存取操作,实现文件信息的共享并提供可靠的文件保密和保护措施,提供文件的安全措施。
(3)GC算法:即垃圾回收(Garbage Collection,GC)算法,该算法用于将一个块中的有效页搬移到另外一个空闲块中,使得有效数据被转移后的空闲块来承载后续的写入。
(4)OP:即Over Provisioning,可称为冗余空间或预留空间。OP指存储器上用户不可操作的容量,其大小为存储器的实际容量减去用户可用容量。OP区域一般被用于优化操作,如GC等。OP块(或称为冗余块)即为冗余空间所包含的超级块,OP块数量越多,GC的负担越小。
(5)节:文件系统侧块管理单元,在闪存文件系统(Flash File System)中,文件系统侧的节和存储器中的超级块(Super block)容量对应。在F2FS中,节为其包含的三种逻辑地址空间管理单元(zone、section和segment)中的section。
(6)超级块Super Block:存储器中的最小管理单元,为存储器中的一种逻辑结构划分。存储器以超级块为单位进行数据的读写和垃圾回收等操作。
请参见图1,图1为现有技术中一种存储器100的结构示意图。存储器100可以是随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)或闪存(Flash Memory)等存储器中的任意一种;其中,RAM包括静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)等,ROM包括可擦除可编程ROM(Erasable Programmable ROM,EPROM)和电可擦可编程只读存储器(Electrically Erasable Programmable ROM,EEPROM)等。
如图1所示,存储器100中可以包含M个闪存晶粒Flash Die,每个Die为一个独立的并发单元,每个Die上可以包含N个物理块block。为了提升性能,通常从每个Die上取一个物理块组成一个超级块(图1中的超级块1和超级块N),组成一个超级块的所有物理块间可以并发,并以超级块作为存储器侧最小操作单元,后续运行过程中超级块大小维持不变。其中,M和N为正整数。
存储器100在处理请求时会维护一个队列,主机下发的请求按照顺序排到该队列中,其中高优先级的关键请求可以插队到低优先级的非关键请求的头部,随后按照先进先出的原则串行处理。
可选地,存储器100可以是手机等计算机设备上的通用闪存存储UFS或嵌入式多媒体存储卡EMMC等,本方案对此不限定。在统一存储和ZNS等架构中,可以将闪存转换层(Flash Translation Layer,FTL)下的GC算法和块管理算法等核心算法上移,交给内核进行管理,但整体FTL策略保持不变,在超级块组成上和原先保持一致。从而将存储器侧的GC和文件系统侧的GC拉通为一层GC。
然而,随着制造工艺的提升,未来闪存等存储器会朝着更大的密度演进,表现为堆叠层数的增加和单个存储单元存储容量的增加,从而使得单个物理块的容量也增加明显。目前存储器侧的超级块是由各个Die上的一个物理块组成,因此在未来单个物理块的容量增加时,单个超级块的容量也会显著增加,过大的超级块会增加GC过程中有效数据被重复写入的次数,即增加GC的负担,从而影响存储器的整体吞吐量;特别是在容量末期(空闲超级块的数量小于或等于预设数量),每个超级块存储了较多的有效数据,GC算法中数据搬移引入的额外开销会被进一步的放大。
同时,在存储器正在处理低优先级的非关键请求时,主机下发一个高优先级的关键请求,该高优先级的关键请求会排到低优先级的非关键请求队头,此时低优先级的非关键请求正在处理,这两个请求大概率会在同一个Die上,但单个Die在某个时刻只能处理一笔请求,高优先级的关键请求虽然排在低优先级的非关键请求前面,但是也必须等待低优先级的非关键请求处理完成后才能得到处理,因此便造成高优先级的关键请求的阻塞。
请参见图2,图2是本申请实施例中一种系统架构的示意性框图,用于描述计算机设备200的系统架构。如图2所示,计算机设备200的系统架构可以包括应用层210、操作系统220和设备层230。
可选地,该计算机设备200可以是手机、电脑、平板或可穿戴设备等,本申请对此不限定。
可选地,应用层210可以包括应用程序层211和应用程序框架层212。其中,应用程序层211可以包括一系列应用程序包。应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用)。应用程序框架层 212为应用程序层的应用程序提供应用编程接口(Application Programming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
可选地,操作系统220可以包括文件系统221、块层222和设备驱动223。其中,文件系统221用于管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法。块层222块层是文件系统221访问设备层230的接口,用于连接文件系统221和设备驱动223。块层222可以分为两层:一个是bio层,另一个是request层。块层222用于封装/解封装相关请求。设备驱动223可以包含显示驱动、摄像头驱动、音频驱动和传感器驱动等。
可选地,设备层230可以包括存储器100。
在一些可行的实施方式中,程序的运行可以分为用户态和内核态。当程序运行于用户态时,处理器只能访问部分内存中的数据,且不允许访问外围设备,例如硬盘,网卡等。当程序运行于内核态时,处理器可以访问内存中的所有数据,包括外围设备,例如硬盘,网卡等。同时,处理器也可以将自己从一个程序切换到另一个程序。通常,应用层210中的应用程序运行于用户态,操作系统220运行于内核态。
在计算机设备200运行过程中,首先由应用层210发起读写请求;文件系统221确定读写请求对应数据在存储器100中的逻辑地址;块层222用于向设备驱动223分发读写请求;设备驱动223用于封装读写请求,并将封装后的读写请求和与该读写请求对应的逻辑地址发送到存储器100;存储器100将封装后的读写请求进行解封,并将读写请求对应的逻辑地址转化为存储器100中对应的物理地址;然后基于该读写请求向该物理地址中写入数据或读取出该物理地址中的数据。
请参见图3,图3是本申请实施例中一种超级块管理方法的流程示意图。如图3所示,方法300可包括步骤S310、S320和S330。
步骤S310:获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据。
步骤S320:基于所述目标数据的类型和/或所述参数配置所述文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配。
步骤S330:基于所述配置后的所述节的容量管理所述存储器对应的逻辑地址空间。
其中,目标数据的类型可以是冷数据(Cold data)、温数据(Warm data)或热数据(Hot data)中的任意一种,或其它数据类型分类方式中的任意一种数据类型。上述存储器可以是图1实施例中的存储器100。
其中,存储器的参数可以包括存储器中空闲超级块的数量和存储器上晶粒Die的数量(如图1中的存储器所示,Die的数量为M)。
可选的,上述步骤S310、S320和S330中的操作可以是通过处理器运行文件系统实现的。
上述文件系统可以是闪存文件系统(Flash File System)或其它可行的文件系统中的任意一种。其中,闪存文件系统可以包括闪存日志型文件系统第2版(Journaling Flash File System Version2,JFFS2)、YAFFS文件系统(Yet Another Flash File System,YAFFS)、闪存友好文件系统(Flash-Friendly File System,F2FS)等。
其中,不同的文件系统可以采用不同的层级管理单元来管理对应的逻辑地址空间。可选地,例如,在F2FS中,逻辑地址空间可以包含三种层级的管理单元:Zone、Section和Segment。其中,每个Zone可以包括至少一个Section,每个Section可以包括至少一个Segment。
具体地,请参见图4,图4为本申请实施例中一种逻辑地址空间和存储器对应关系示意图。如图4所示,在文件系统的逻辑地址空间布局中,共包括三种层级管理单元:区域Zone、节Section和段Segment。每个Zone包括N个section,每个section包括M个segment(即,section1包括segment 1-1…segment 1-M,section N包括:segment N-1…segment N-M)。存储器中的基本管理单元为超级块。逻辑地址空间中section的容量与存储器中超级块的容量对应相同,即section 1与超级块1相匹配,section N与超级块N相匹配。其中,M和N为正整数。
应当理解,图4是以F2FS文件系统中的一个zone为例,来描述文件系统管理的逻辑地址空间与存储器的对应关系。不同的文件系统可以采用不同层级的管理单元来管理对应的逻辑地址空间,其中,节为每个文件系统所包含的一个管理单元,该管理单元的容量与存储器侧超级块的容量对应相同。此外,文件系统所管理的逻辑地址空间可以包括存储器对应的逻辑地址空间。
具体地,步骤S320中,基于所述目标数据的类型和/或所述参数配置所述文件系统中节的容量,可以包括两种情况:
(1)当存储器处于容量末期(即存储器中空闲超级块的数量小于或等于预设数量)时,基于存储器的参数配置文件系统中节的容量。
(2)当存储器未处于容量末期(即存储器中空闲超级块的数量大于预设数量)时,基于目标数据的类型和存储器的参数配置文件系统中节的容量。
具体地,在步骤S330中,基于配置后的所述节的容量管理所述存储器对应的逻辑地址空间,可以包括:
根据具体的应用场景(基于目标数据的类型和存储器的参数进行确定),配置文件系统中节的容量,以配置后的节的容量为单位对存储器所对应的逻辑地址空间进行划分。由于配置后的节的容量与存储器中超级块的容量相匹配,且存储器是以超级块为基本单元进行数据的读写等操作。因而本申请实施例即是通过动态配置文件系统中节的容量,来同步调整存储器中超级块的容量,并指示存储器以调整后的超级块为单位进行数据读写和垃圾回收GC等操作。
从技术效果上看,相比于现有技术中固定的节的容量而言,本申请实施例可以基于不同场景(对应不同的目标数据的类型和/或存储器的参数)对节的容量进行动态调整,由于节的容量与存储器中超级块容量相匹配,因而在动态配置节的容量时,也在同步调整存储器中超级块的容量,以适应不同场景的需求,从而提升整机性能。例如,随着未来制造工艺的提升,采用现有技术管理超级块时超级块的容量不断增加,在存储器容量一定的条件下,空闲超级块的数量会不断减小。而本申请实施例可以通过减小节的容量来同步减小存储器中超级块的容量,从而增加存储器中冗余块(即冗余空间(Over Provisioning,OP)中的超级块)的数量,进而提升整机性能。
在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述存储器中的管理单元为超级块,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
应当理解,节的容量等于存储器中超级块的容量,超级块包括至少一个物理块,因而节的容量在存储器中对应至少一个物理块,即节的容量等于其在存储器中对应物理块的数量和单个物理块的容量的乘积。
具体地,如图1所示,存储器包括至少M个晶粒Die,每个Die上包括N个物理块Block。超级块为存储器中的基本管理单元,即存储器以超级块为单元进行数据的读写等操作。每个超级块对应的逻辑地址空间的大小与每个节Section对应的逻辑地址空间的大小相匹配,即保持一致。其中,每个超级块包括至少一个物理块,且该至少一个物理块分别位于不同的Die上。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
其中,空闲超级块为不包含任何数据的超级块。空闲超级块可以位于用户可见的存储空间或冗余空间OP中。
其中,预设数量可以是依据具体场景进行设定的数值,本申请不限定。
具体地,上述基于目标数据的类型和/或参数配置所述文件系统中节的容量,可以分为两种情况:
(1)在存储器处于容量末期(即存储器中空闲超级块的数量小于或等于预设数量)时,基于存储器的参数(此处为Die的数量)配置文件系统中节的容量,使得配置后的节的容量在存储器中对应物理块的数量小于Die的数量。由于每个节对应的逻辑地址空间大小与存储器中超级块对应的逻辑地址空间的大小保持一致,因而存储器中超级块的容量与节的容量同步变化;即此时存储器中每个超级块包括的物理块的数量小于存储器中Die的数量。通过此种方式来增加存储器中冗余块的数量,减少GC回收过程中有效数据的搬运次数,从而提升计算机设备性能。
从技术效果上看,当存储器中空闲超级块数量小于或等于预设数量时,会严重影响存储器中数据的读写过程,本申请实施例可以动态配置节的容量,例如通过减小节的容量,使节的容量在存储器中对应物理块的数量小于Die的数量,即同步减小存储器中超级块的容量,以增加存储器中冗余块的数量,提升整机性能。
(2)在存储器未处于容量末期(即存储器中空闲超级块的数量大于预设数量)时,基于目标数据的类型和存储器的参数(此处为Die的数量)来配置节的容量。可选地,此种情况下的配置方式可以为:当目标数据的类型为热数据时(关键请求),配置节的容量,使得配置后的节的容量在存储器中对应物理块的数量等于Die的数量,即存储器中超级块包含的物理块的数量等于存储器中Die的数量。此种场景下,本申请可以通过同步提升节和超级块的容量,来满足热数据的性能要求;当目标数据的类型为温数据或冷数据时(非关键请求),配置节的容量,使得配置后的节的容量在存储器中对应物理块的数量小于Die的数量,即存储器中超级块包含的物理块的数量小于存储器中Die的数量。
从技术效果上看,对于此种性能需求较低的场景,可以配置较小的节的容量和超级块的容量,因而在存储器维护的请求队列中被插入关键请求时(即热数据的读写请求),由于关键请求和非关键请求在存储器上对应的物理块数量不同,此时,可以有效降低关键请求的阻塞几率,进一步提升数据读写性能。
下面将参照图5来描述请求的阻塞过程,图5为本申请实施例中一种请求的阻塞过程示意图。如图5所示,请求发生阻塞的场景可以是:存储器100当前正在处理的请求为非关键请求(对应冷数据或温数据),该非关键请求当前的处理过程位于第M个Die上的物理块N中。此时,若存储器维护的请求队列中插入一个优先级较高的关键请求(对应热数据),存储器会暂停该非关键请求的处理,并开始处理该关键请求,当该关键请求的处理也落入第M个Die上时,由于同一个Die在同一时刻只能处理一个请求,此时关键请求的处理会发生阻塞。
现有技术中,关键请求和非关键请求对应的超级块的大小相同,包含的物理块数量都等于Die的数量,因而在关键请求被插入非关键请求之前进行处理时,两个请求较大概率会落入同一个Die上。
然而,在本申请实施例中,由于文件系统可以动态配置节的容量,即关键请求和非关键请求对应不同容量的超级块。如图5所示,可选的,关键请求对应的超级块包括每个Die上的物理块1,共M个物理块;非关键请求对应的超级块包括第M-1个Die上的物理块N和第M个Die上的物理块N,共两个物理块。由于关键请求和非关键请求分别对应的超级块所包含的物理块数量不同,因而在关键请求被插入非关键请求之前进行处理时,两个请求落入同一个Die上的几率被大大降低,即本申请实施例可以有效降低关键请求阻塞的几率。
请参见表1,表1为不同的节的容量配比下,关键请求发生阻塞的概率表。存储器中Die的数量的4,此时文件系统配置的节的容量所对应的超级块,最多包括四个物理块,最少包括一个物理块。表1中横向为关键请求下,配置的节的容量对应的超级块包括的物理块数量;表1纵向为非关键请求下,配置的节的容量对应的超级块包括的物理块数量。
如表1所示,当关键请求下超级块中包括的物理块数量和非关键请求下超级块中包括的物理块数量相同时,关键请求发生阻塞的概率为100%。当关键请求下超级块中包括的物理块数量越多,非关键请求下超级块中包括的物理块数量越少时,关键请求发生阻塞的概率越小。
表1:不同的节的容量配比下,关键请求发生阻塞的概率表
在一种可行的实施方式中,上述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
在基于目标数据的类型和/或存储器的参数配置对文件系统中节的容量进行配置后,文件系统可以基于配置后的节的容量来管理存储器对应的逻辑地址空间,该管理过程可以包括:以配置后的节的容量为单位划分存储器对应的逻辑地址空间,并指示存储器以超级块为单位进行垃圾回收,以释放出存储器中的空闲超级块;其中,存储器中超级块的容量与配置后的 节的容量相同。
具体地,在基于配置后的节的容量对存储器对应的逻辑地址空间进行划分后,可以从存储器对应的逻辑地址空间中确定E个配置后的节,将E个配置后的节分别对应的E个逻辑地址发送到存储器中。然后指示存储器将该E个逻辑地址分别映射为E个物理地址,该E个物理地址即对应存储器中的E个超级块。最后将E个超级块中的有效数据搬运到F个空闲的超级块中,从而将该E个超级块进行释放。其中,E大于F,且E和F都为正整数。
从技术效果上看,在文件系统配置了节的容量,存储器根据节的容量执行GC过程中:当文件系统配置的节的容量对应物理块数量小于Die的数量时,相比于现有技术中节的容量对应物理块数量等于Die的数量而言,在释放相同数量空闲超级块时,本申请实施例可以通过减小存储器中超级块的容量来减少有效数据的搬运次数;或者,在搬运相同数量的有效数据时,本申请实施例由于超级块容量较小,因而可以释放出更多数量的超级块,即提升GC过程冗余块的释放效率,进而提升整机性能。
请参见图6,图6为本申请实施例中一种垃圾回收GC的过程示意图。如图6所示,图6比较了在超级块大小不同情况下(即配置的节的容量不同),有效数据的搬运次数和空闲超级块释放效率的区别。
在垃圾回收过程GC_A中,配置后的节的容量对应的超级块包括9个存储单元。存储器中包含8个超级块,存储单元1-7中存放的数据为有效数据。当要求释放出两个空闲超级块时,存储器需要将存储单元1、存储单元2、存储单元3、存储单元4和存储单元5中的有效数据回收到一个空闲超级块中。当要求回收存储单元1-7中存放的有效数据时,可以释放出4个空闲的超级块。
在垃圾回收过程GC_B中,文件系统分配的节的容量对应超级块的大小为18个存储单元。存储器中包含4个超级块,存储单元1-7中存放的数据为有效数据。当要求释放出两个空闲超级块时,存储器需要将存储单元1-7中的有效数据回收到一个空闲超级块中。当要求回收存储单元1-7中存放的有效数据时,此时释放出2个空闲的超级块。
其中,每个存储单元的存储空间大小可由具体场景限定,本申请不限定。
综上,相比于超级块容量较大的情况,在超级块容量较小时,GC回收过程中释放出相同数量的空闲超级块需要搬运的有效数据较少,或者在搬运相同数量的有效数据时,释放出的空闲超级块的数量更多。容易理解,在本申请实施例中,对于容量末期或性能需求较低的读写场景下,文件系统可以为每个节配置较小的容量,即每个超级块对应较小的容量,从而有效提升计算机设备的整机性能。
在一种可行的实施方式中,上述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
在基于目标数据的类型和/或存储器的参数配置对文件系统中节的容量进行配置后,基于配置后的节的容量来管理存储器对应的逻辑地址空间,该管理过程包括:以配置后的节的容量为单位划分存储器对应的逻辑地址空间,并指示存储器以超级块为单位进行数据读写;其中,存储器中超级块的容量与配置后的节的容量相同。
具体地,在基于配置后的节的容量对存储器对应的逻辑地址空间进行划分后,可以从存 储器对应的逻辑地址空间中确定K个配置后的节,将目标数据和K个配置后的节分别对应的K个逻辑地址发送到存储器中。指示存储器将该K个逻辑地址分别映射为K个物理地址,该K个物理地址对应存储器中的K个超级块。最后将目标数据写入该K个超级块中;其中,K为正整数。
从技术效果上看,在文件系统配置了节的容量,存储器根据节的容量执行目标数据写入过程:当目标数据写入为被插入的关键请求时,由上述实施例可以知,本申请实施例可以降低目标数据写入时被阻塞的概率。
请参见图7,图7是本申请实施例中另一种系统架构的示意性框图。作为对图2所示系统架构的补充和细化。
下面以图7为例来详细描述数据读写等过程在计算机设备200上的用户态/应用层210、内核态/操作系统220和存储器100中的体现。首先应用程序层211发起第一读写请求,第一读写请求对应的数据为热数据。此时文件系统221接收第一读写请求,并获取存储器参数。文件系统基于存储器参数判断存储器是否处于容量末期,假如此时存储器未处于容量末期,文件系统221基于第一读写请求对应的数据类型配置节的容量。由于此时数据类型为热数据,文件系统可以配置较大的节的容量(如图7所示section1),以满足热数据的性能需求;此时,section1对应的逻辑地址空间在存储器中对应超级块1,超级块1包括M个物理块。块层222分发第一读写请求,设备驱动223对第一读写请求进行封装,并将第一读写请求和section1对应的逻辑地址发送给存储器100。存储器100接收第一读写请求和section1对应的逻辑地址,并对第一读写请求进行解封转,以及将section1对应的逻辑地址映射为相应的第一物理地址,该第一物理地址对应超级块1。存储器基于第一物理地址和第一读写请求,在超级块1上进行相应的数据读写操作。
应用程序层211还可以发起第二读写请求,第二读写请求对应的数据为冷数据。此时文件系统221接收第二读写请求,并获取存储器参数。文件系统基于存储器参数判断存储器是否处于容量末期,假如此时存储器处于容量末期,文件系统221可以配置较小的节的容量(如图7所示sectionN),以尽可能释放较多的空闲超级块来提升整机性能;此时,sectionN对应的逻辑地址空间在存储器中对应超级块N,超级块N包括2个物理块。块层222分发第二读写请求,设备驱动223对第二读写请求进行封装,并将第二读写请求和sectionN对应的逻辑地址发送给存储器100。存储器100接收第二读写请求和sectionN对应的逻辑地址,并对第二读写请求进行解封转,以及将sectionN对应的逻辑地址映射为相应的第二物理地址,该第二物理地址对应超级块N。存储器基于第二物理地址和第二读写请求,在超级块N上进行相应的数据读写操作。
请参见图8,图8为本申请实施例中一种超级块管理装置结构示意图。如图8所示,装置800包括:
获取单元801,用于获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据。
配置单元802,用于基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配。
管理单元803,用于基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。
在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
在一种可行的实施方式中,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
在一种可行的实施方式中,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
应当理解,本申请实施例中超级块管理装置的具体运行过程可以参见前述方法实施例中的对应过程,此处不再赘述。
请参见图9,图9为本申请实施例中一种计算机设备的硬件结构示意图。设备900包括处理器901、存储器902、接口电路903和总线904。
所述处理器901,用于通过接口电路903获取所述存储器902的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,所述节的容量与配置后的所述存储器中超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。
其中,处理器901、存储器902和接口电路903通过总线904进行数据传输。
在一种可行的实施方式中,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
在一种可行的实施方式中,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
在一种可行的实施方式中,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置 后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;所述存储器,用于:将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
在一种可行的实施方式中,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;所述存储器,用于:将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
应当理解,本申请实施例中计算机设备上处理器和存储器的具体运行过程可以参见前述方法实施例中的对应过程,此处不再赘述。
本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,当所述程序指令在一个或多个处理器上运行时,以实现上述超级块管理方法中的部分或全部步骤。
本申请提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,上述超级块管理方法中的部分或全部步骤得以实现。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (21)
- 一种超级块管理方法,其特征在于,所述方法包括:获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。
- 根据权利要求1所述的方法,其特征在于,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
- 根据权利要求2所述的方法,其特征在于,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
- 根据权利要求2所述的方法,其特征在于,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
- 根据权利要求1-4中任一项所述的方法,其特征在于,所述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
- 根据权利要求1-4中任一项所述的方法,其特征在于,所述基于配置后的所述节管理所述存储器对应的逻辑地址空间,包括:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
- 一种超级块管理装置,其特征在于,所述装置包括:获取单元,用于获取存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;配置单元,用于基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配;管理单元,用于基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。
- 根据权利要求7所述的装置,其特征在于,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
- 根据权利要求8所述的装置,其特征在于,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
- 根据权利要求8所述的装置,其特征在于,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
- 根据权利要求7-10中任一项所述的装置,其特征在于,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;指示所述处理器将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
- 根据权利要求7-10中任一项所述的装置,其特征在于,所述管理单元具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;指示所述存储器将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
- 一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;其中,所述处理器,用于:获取所述存储器的参数和目标数据的类型;其中,所述目标数据为待写入所述存储器中的数据;基于所述目标数据的类型和/或所述参数配置文件系统中节的容量;其中,所述节为所述文件系统中逻辑地址空间的管理单元,配置后的所述节的容量与所述存储器中超级块的容量相匹配;基于所述配置后的所述节管理所述存储器对应的逻辑地址空间。
- 根据权利要求13所述的设备,其特征在于,所述存储器包括至少一个晶粒Die,所述至少一个Die中的每个Die包括至少一个物理块;所述超级块为所述存储器中的管理单元,且所述超级块包括至少一个所述物理块,所述至少一个所述物理块中的每个所述物理块分别位于不同的所述Die上。
- 根据权利要求14所述的设备,其特征在于,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量小于或等于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于所述Die的数量。
- 根据权利要求14所述的设备,其特征在于,所述参数包括所述存储器中空闲超级块的数量和所述Die的数量;当所述空闲超级块的数量大于预设数量时,所述配置后的所述节的容量在所述存储器中对应物理块的数量小于或等于所述Die的数量。
- 根据权利要求13-16中任一项所述的设备,其特征在于,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定E个所述配置后的所述节;其中,E个所述配置后的所述节分别对应所述存储器中的E个所述超级块;所述存储器,用于:将E个所述超级块中的数据回收到F个空闲的所述超级块中;其中,所述E大于所述F,E和F为正整数。
- 根据权利要求13-16中任一项所述的设备,其特征在于,在所述基于配置后的所述节管理所述存储器对应的逻辑地址空间的方面,所述处理器具体用于:从所述存储器对应的逻辑地址空间中确定K个所述配置后的所述节;其中,K个所述配置后的所述节分别对应所述存储器中的K个所述超级块;所述存储器,用于:将所述目标数据写入K个所述超级块中;其中,所述K为正整数。
- 一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述处理器执行时,权利要求1-6中任一所述的方法得以实现。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序指令,当所述程序指令在一个或多个处理器上运行时,实现权利要求1-6中任一项所述的方法。
- 一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机设备上运行时,权利要求1-6中任一项所述的方法得以实现。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22860392.4A EP4379523A4 (en) | 2021-08-23 | 2022-08-19 | SUPERBLOCK MANAGEMENT METHOD AND APPARATUS |
| US18/584,329 US12566561B2 (en) | 2021-08-23 | 2024-02-22 | Super block management method and apparatus |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110971602.1A CN115712386A (zh) | 2021-08-23 | 2021-08-23 | 超级块管理方法和装置 |
| CN202110971602.1 | 2021-08-23 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/584,329 Continuation US12566561B2 (en) | 2021-08-23 | 2024-02-22 | Super block management method and apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023025046A1 true WO2023025046A1 (zh) | 2023-03-02 |
Family
ID=85230458
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/113493 Ceased WO2023025046A1 (zh) | 2021-08-23 | 2022-08-19 | 超级块管理方法和装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12566561B2 (zh) |
| EP (1) | EP4379523A4 (zh) |
| CN (1) | CN115712386A (zh) |
| WO (1) | WO2023025046A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118132012A (zh) * | 2024-05-07 | 2024-06-04 | 杭州海康威视数字技术股份有限公司 | 数据写入方法、数据读取方法、系统及电子设备 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120066379A (zh) * | 2023-11-29 | 2025-05-30 | 华为技术有限公司 | 电子设备的控制方法、电子设备及存储介质 |
| CN121922180A (zh) * | 2025-03-10 | 2026-04-24 | Oppo广东移动通信有限公司 | 存储器管理方法和装置、存储器的预擦除方法和装置、存储器及存储系统 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150143038A1 (en) * | 2013-09-27 | 2015-05-21 | Avalanche Technology, Inc. | Storage processor managing solid state disk array |
| CN105867836A (zh) * | 2015-01-23 | 2016-08-17 | 中兴通讯股份有限公司 | 存储管理方法、装置及流媒体系统 |
| CN110021326A (zh) * | 2018-01-10 | 2019-07-16 | 爱思开海力士有限公司 | 基于闪存的固态驱动器中的保持感知块映射 |
| CN111176554A (zh) * | 2018-11-13 | 2020-05-19 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
| CN111708481A (zh) * | 2020-04-24 | 2020-09-25 | 浙江大学 | 一种基于超级块的固态硬盘ssd双区磨损均衡处理方法 |
| CN111984186A (zh) * | 2019-05-23 | 2020-11-24 | 爱思开海力士有限公司 | 装置及其操作方法 |
| CN112055850A (zh) * | 2017-12-13 | 2020-12-08 | 美光科技公司 | 可变宽度超级块寻址 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7631023B1 (en) * | 2004-11-24 | 2009-12-08 | Symantec Operating Corporation | Performance-adjusted data allocation in a multi-device file system |
| US7890504B2 (en) * | 2007-12-19 | 2011-02-15 | Netapp, Inc. | Using the LUN type for storage allocation |
| US8762625B2 (en) * | 2011-04-14 | 2014-06-24 | Apple Inc. | Stochastic block allocation for improved wear leveling |
| US9069657B2 (en) * | 2011-12-12 | 2015-06-30 | Apple Inc. | LBA bitmap usage |
| KR20150082010A (ko) * | 2014-01-07 | 2015-07-15 | 삼성전자주식회사 | 불휘발성 메모리 파일 시스템에서의 마이크로 저널링 방법 |
| KR20190061942A (ko) * | 2017-11-28 | 2019-06-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
| JP7074453B2 (ja) * | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| JP7074454B2 (ja) * | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | 計算機システムおよび制御方法 |
| JP7010667B2 (ja) * | 2017-11-06 | 2022-01-26 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| CN110427340B (zh) * | 2018-04-28 | 2023-08-04 | 伊姆西Ip控股有限责任公司 | 用于文件存储的方法、装置和计算机存储介质 |
| JP7077151B2 (ja) * | 2018-06-06 | 2022-05-30 | キオクシア株式会社 | メモリシステム |
| US10891070B1 (en) * | 2019-07-17 | 2021-01-12 | Micron Technology, Inc. | Managing garbage collection in a memory subsystem based on characteristics of data streams |
| US11640259B2 (en) * | 2020-05-21 | 2023-05-02 | Western Digital Technologies, Inc. | Use of surplus erase block pairs in super block formation |
| US20220261182A1 (en) * | 2021-02-17 | 2022-08-18 | SK Hynix Inc. | Superblock linkage systems and method for asymmetric die packages |
| US11669258B2 (en) * | 2021-04-27 | 2023-06-06 | Micron Technology, Inc. | Dynamic superblocks |
| US11733892B2 (en) * | 2021-06-29 | 2023-08-22 | Micron Technology, Inc. | Partial superblock memory management |
-
2021
- 2021-08-23 CN CN202110971602.1A patent/CN115712386A/zh active Pending
-
2022
- 2022-08-19 EP EP22860392.4A patent/EP4379523A4/en active Pending
- 2022-08-19 WO PCT/CN2022/113493 patent/WO2023025046A1/zh not_active Ceased
-
2024
- 2024-02-22 US US18/584,329 patent/US12566561B2/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150143038A1 (en) * | 2013-09-27 | 2015-05-21 | Avalanche Technology, Inc. | Storage processor managing solid state disk array |
| CN105867836A (zh) * | 2015-01-23 | 2016-08-17 | 中兴通讯股份有限公司 | 存储管理方法、装置及流媒体系统 |
| CN112055850A (zh) * | 2017-12-13 | 2020-12-08 | 美光科技公司 | 可变宽度超级块寻址 |
| CN110021326A (zh) * | 2018-01-10 | 2019-07-16 | 爱思开海力士有限公司 | 基于闪存的固态驱动器中的保持感知块映射 |
| CN111176554A (zh) * | 2018-11-13 | 2020-05-19 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
| CN111984186A (zh) * | 2019-05-23 | 2020-11-24 | 爱思开海力士有限公司 | 装置及其操作方法 |
| CN111708481A (zh) * | 2020-04-24 | 2020-09-25 | 浙江大学 | 一种基于超级块的固态硬盘ssd双区磨损均衡处理方法 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4379523A4 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118132012A (zh) * | 2024-05-07 | 2024-06-04 | 杭州海康威视数字技术股份有限公司 | 数据写入方法、数据读取方法、系统及电子设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4379523A1 (en) | 2024-06-05 |
| US12566561B2 (en) | 2026-03-03 |
| CN115712386A (zh) | 2023-02-24 |
| EP4379523A4 (en) | 2024-12-04 |
| US20240192877A1 (en) | 2024-06-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12045515B2 (en) | Memory system and control method | |
| US12153516B2 (en) | Memory system and method for controlling nonvolatile memory | |
| US11347655B2 (en) | Memory system and method for controlling nonvolatile memory | |
| US10452562B2 (en) | File access method and related device | |
| WO2023025046A1 (zh) | 超级块管理方法和装置 | |
| US10402092B2 (en) | Resizing namespaces for storage devices | |
| CN103677666B (zh) | 处理连续拍摄图像数据的装置和方法 | |
| CN105373342A (zh) | 异构统一存储器 | |
| US20200241794A1 (en) | Low latency swap device, system and method | |
| CN105117351A (zh) | 向缓存写入数据的方法及装置 | |
| US12430080B2 (en) | Method for dynamic management of command queues in synchronous write operations | |
| US11182329B2 (en) | Data processing system and operating method thereof | |
| CN117130955A (zh) | 用于管理相关联的存储器的方法和系统 | |
| WO2018024214A1 (zh) | Io流调节方法与装置 | |
| CN112148226A (zh) | 一种数据存储方法及相关装置 | |
| CN110119245B (zh) | 用于操作nand闪存物理空间以扩展存储器容量的方法和系统 | |
| CN110515861B (zh) | 处理刷写命令的存储设备及其方法 | |
| US12541318B2 (en) | Method and device for accessing data in host memory | |
| US20240168801A1 (en) | Ensuring quality of service in multi-tenant environment using sgls | |
| US10168911B1 (en) | Defragmentation of persistent main memory | |
| JP2022121655A (ja) | メモリシステムおよび制御方法 | |
| CN114546661A (zh) | 基于内存变换的动态内存分配方法及装置 | |
| US20200142623A1 (en) | Storage device and electronic device managing data transmitted to storage device | |
| CN113778688A (zh) | 内存管理系统、内存管理方法、内存管理装置 | |
| US20250173274A1 (en) | Data storage apparatus guaranteeing program sequence and operating method thereof |
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: 22860392 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2022860392 Country of ref document: EP Effective date: 20240301 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
