CN117724990A - NVM space allocation method and device - Google Patents

NVM space allocation method and device Download PDF

Info

Publication number
CN117724990A
CN117724990A CN202311765611.0A CN202311765611A CN117724990A CN 117724990 A CN117724990 A CN 117724990A CN 202311765611 A CN202311765611 A CN 202311765611A CN 117724990 A CN117724990 A CN 117724990A
Authority
CN
China
Prior art keywords
packet
space
logic
nvm
transaction
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.)
Pending
Application number
CN202311765611.0A
Other languages
Chinese (zh)
Inventor
程诗猛
肖灵
周杰
董逢华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Tianyu Information Industry Co Ltd
Original Assignee
Wuhan Tianyu Information Industry Co Ltd
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 Wuhan Tianyu Information Industry Co Ltd filed Critical Wuhan Tianyu Information Industry Co Ltd
Priority to CN202311765611.0A priority Critical patent/CN117724990A/en
Publication of CN117724990A publication Critical patent/CN117724990A/en
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention discloses a method and a device for distributing an NVM space, wherein the method comprises the following steps: determining a data class to be stored in the NVM space, the data class including an object and a package; when the data class is determined to be an object, the object is allocated space from the bottom to the top of the NVM user region, and when the data class is determined to be a packet, the packet is allocated space from the top to the bottom of the NVM user region to allocate and manage the NVM space. The method and the device can improve the storage utilization rate and the storage rate of the NVM space.

Description

NVM space allocation method and device
Technical Field
The present invention relates to the field of embedded technologies, and in particular, to a method and an apparatus for NVM space allocation.
Background
In smart card systems, how to increase the memory utilization of NVM space has been a major issue in industry research, including but not limited to FLASH, EEPROM, etc. In a transaction, the stored content includes two major classes of objects and packets, and the prior art does not distinguish between the two major classes of content, and the unified use is sequential storage, that is, space is allocated from top (small address) to bottom (large address) in sequence. However, the file characteristics of the two types of content are not the same, and if the storage mode is adopted, a lot of storage confusion is caused, and the storage rate and the space utilization rate of the NVM space are affected.
Therefore, how to improve the storage utilization of NVM space is a technical problem that needs to be solved at present.
Disclosure of Invention
The invention mainly aims to provide an NVM space allocation method and device, which can improve the storage utilization rate and storage speed of an NVM space.
In a first aspect, the present application provides a method for NVM space allocation, wherein the method comprises:
determining a data class to be stored in the NVM space, the data class including an object and a package;
when the data class is determined to be an object, the object is allocated space from the bottom to the top of the NVM user region, and when the data class is determined to be a packet, the packet is allocated space from the top to the bottom of the NVM user region to allocate and manage the NVM space.
With reference to the first aspect, as an optional implementation manner, a packet logic table is established to perform packet management, space application and space release of the packets, and space compaction of the packets, where the packet logic table records a start address of each packet, and the maximum number of the managed packets is a record table entry of the packet logic table;
the packets are sequentially stored according to the sequence of the packet application, and the length of the packet is calculated according to the starting address of the packet and the starting address of the next packet.
With reference to the first aspect, as an optional implementation manner, according to the length required by the application, allocating the NVM continuous space with the last tail address as the start address to the packet, recording the start address in the packet logic table, and returning the recording address of the packet logic table to the application, so as to complete the space application of the packet;
and designating the space occupied by the package according to the application requirement, marking the package logic table record corresponding to the package, and distributing the space to other packages or objects for use after the subsequent package is compact so as to finish the space release of the package.
With reference to the first aspect, as an optional implementation manner, the space of the package is compact, including:
when the use space of any packet is released, determining the address of the released packet, and searching the address of the next packet and the address of the last packet;
calculating the total length to be translated through the difference value between the tail address of the last packet and the starting address of the next packet;
sequentially forward translating addresses of all packets following the released packet to perform a compact operation on NVM space;
when the length of the release packet is smaller than one NVM page, performing packet compact translation operation in a page backup mode;
And determining the storage address of the packet according to the packet start address in the packet logic table record item corresponding to each packet.
And after the compacting operation is completed, synchronously updating the packet logic table record items corresponding to all the packets.
With reference to the first aspect, as an optional implementation manner, an object logic table and an object state table are established to perform object management, space application and space release of an object, and space compaction of the object, where the object logic table records a page start address of an NVM page where an object start address is located;
the object state table records the usage state of the NVM user area storage locations:
when the NVM memory cell is in an idle state, then the flag is 1;
when the NVM memory cell is in the busy state, then the flag is 0.
With reference to the first aspect, as an optional implementation manner, when the object application length is smaller than the page length of the NVM, searching fragments from the top-most object to the bottom of the NVM user area;
if the fragments distributed enough are found, the object logic table entry logic address corresponding to the fragment starting address and the offset in the NVM physical page corresponding to the fragment starting address are returned to the application;
when the object application length is greater than or equal to the page length of the NVM or the object application length is less than the page length of the NVM, but not enough fragments are found, the starting address of the current topmost object is used as the tail address to extend the continuous space of the NVM user area with the application requirement length to the top, the physical page address is recorded in the corresponding record item of the object logic table, the space is marked as an occupied state in the object state table, and the record address and page offset of the object logic table are returned to the application, so that the space application of the object is completed;
Designating the space occupied by the object according to the application requirement, and modifying the corresponding object state table into an idle state; if the NVM complete page is free after release, deleting the corresponding object logic table record item;
when the use space of any object is released, reserving the space which is originally allocated and corresponds to the any object as an idle area, and judging whether the idle area space meets the storage space of the object to be allocated or not when the next object to be allocated;
if yes, storing the object to be allocated in the idle interval;
if not, sequentially distributing the storage space according to the preset space storage rule of the object, and storing the storage space to finish the space release of the object.
With reference to the first aspect, as an optional implementation manner, when the storage of the user area reaches saturation, based on the object state table, compact operation is performed on the free space of the whole page in the NVM, the page transfer of the non-whole page free above is stored to the whole page free page below, and the record item corresponding to the object logic table and the record item corresponding to the object state table are synchronously modified.
With reference to the first aspect, as an optional implementation manner, a transaction of the package is started, a transaction is processed, a transaction is removed, and a transaction is completed;
The transaction opening of the package includes: copying the pkg_logic_table to the pkg_logic_table_bak;
the transaction of the packet includes: there may be multiple packet applications and one packet release in one packet transaction; the packet application and the packet release only modify the corresponding record item in the pkg_logic_table_bak;
the transaction cancellation operation of the package includes: one or more packet applications and/or a packet release have been completed; if the operation is hoped to be canceled halfway, rolling back to a state before the package transaction is started;
the transaction completion operation of the package includes: copying the pkg_logic_table_bak to the pkg_logic_table;
carrying out power-down prevention treatment on package transaction;
the power-down prevention processing of the packet transaction comprises the following steps: when the power is accidentally lost in the packet transaction processing process and the power is electrified again, the state before the packet transaction is started is rolled back;
transaction opening, transaction processing, transaction cancellation and transaction completion of the object;
the transaction open operation of the object includes: copying the obj_logic_table to the obj_logic_table_bak, and copying the obj_state_table to the obj_state_table_bak;
the transaction operation of the object includes: there may be multiple object applications and/or multiple object releases in an object transaction; object application and object release, only modifying the corresponding record item in obj_logic_table_bak and the corresponding record item in obj_state_table_bak;
The transaction cancel operation of the object includes: one or more object applications and one or more object releases have been completed; if the operation is hoped to be canceled halfway, the state before the object transaction is started is rolled back;
the transaction completion operation of the object includes: copying obj_logic_table_bak to obj_logic_table, and copying obj_state_table_bak to obj_state_table;
object transaction power-down prevention processing;
the object transaction power-down prevention process comprises the following steps: when unexpected power-down occurs in the process of the object transaction and the power-up is performed again, the state before the object transaction is started is rolled back;
compact and object compact power-down prevention handling of packages;
the package compact and object compact operation, the copying of the physical pages of the NVM user area is one page at a time, and the copying is divided into a plurality of times until the copying is completed;
recording current copy page information in each copy operation;
the package compact and object compact power down prevention process includes: when unexpected power-down condition occurs in the compact operation process, and the power-up is performed again, continuing the compact operation from the position which is known and designated by the recorded copy page information until the compact operation is completed;
compact operation, once initiated, does not allow rollback.
With reference to the first aspect, as an optional implementation manner, a cache mechanism of the packet logic table, a cache mechanism obj_logic_cache of the object logic table, and a cache mechanism obj_state_cache of the object state are respectively set;
when the update of the pkg_logic_table_bak is less than one page after the packet transaction or the packet compact is started, updating in the pkg_logic_cache;
when the update of the pkg_logic_table_bak is full of one page, the data in the pkg_logic_cache is updated to the corresponding page of the pkg_logic_table_bak so as to update the maintenance management table of the packet;
when the update of the obj_logic_table_bak is less than one page after the object transaction or the object compact is started, updating in the obj_logic_cache;
when the update of the obj_logic_table_bak is full of one page, updating the data of the obj_logic_cache into the corresponding page of the obj_logic_table_bak;
when the update of the obj_state_table_bak is less than one page, performing object update in the obj_state_cache;
when the update of the obj_state_table_bak is full of one page, the data in the obj_state_cache is updated to the corresponding page of the obj_state_table_bak so as to update the maintenance management table of the object.
In a second aspect, the present application provides an NVM space allocation apparatus, the apparatus comprising:
a determining module for determining a class of data to be stored in the NVM space, the class of data including objects and packages;
an allocation module for allocating space from the bottom to the top of the NVM user zone when the data class is determined to be an object, and allocating space from the top to the bottom of the NVM user zone for allocation of NVM space when the data class is determined to be a packet.
The application provides a method and a device for distributing NVM space, wherein the method comprises the following steps: determining a data class to be stored in the NVM space, the data class including an object and a package; when the data class is determined to be an object, the object is allocated space from the bottom to the top of the NVM user region, and when the data class is determined to be a packet, the packet is allocated space from the top to the bottom of the NVM user region to allocate and manage the NVM space. The method and the device can improve the storage utilization rate and the storage rate of the NVM space.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and together with the description, serve to explain the principles of the invention.
FIG. 1 is a flowchart of a method for allocating NVM space according to an embodiment of the present disclosure;
FIG. 2 is a schematic diagram of an NVM space allocation apparatus according to an embodiment of the present disclosure;
FIG. 3 is a flow chart of compact operation of an object provided in an embodiment of the present application;
fig. 4 is a flow chart of the compact operation of the package provided in an embodiment of the present application.
Detailed Description
Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numbers in different drawings refer to the same or similar elements, unless otherwise indicated. The implementations described in the following exemplary examples do not represent all implementations consistent with the invention. Rather, they are merely examples of apparatus and methods consistent with aspects of the invention as detailed in the accompanying claims.
Furthermore, the drawings are merely schematic illustrations of the present disclosure and are not necessarily drawn to scale. Some of the block diagrams shown in the figures are functional entities and do not necessarily correspond to physically or logically separate entities.
Embodiments of the present application are described in further detail below with reference to the accompanying drawings.
Referring to fig. 1, fig. 1 is a flowchart of a NVM space allocation method according to the present invention, and as shown in fig. 1, the method includes the steps of:
step S101, determining a data class to be stored in the NVM space, the data class including an object and a package.
In particular, the data to be allocated is classified to determine the class of the data to be allocated, i.e. whether the data to be stored in the NVM space is an object or a packet.
Note that NVM includes FLASH and EEPROM.
Step S102: and when the data type is determined to be the packet, the packet is allocated to the space from the top to the bottom of the NVM user area so as to perform allocation management on the NVM space.
Specifically, in a transaction, the stored content will include two major classes, object and package, in NVM, the spatial allocations for the object and package are not crossed, i.e., the spatial stores of the object and package are independent of each other.
It will be appreciated that since the type of data to be stored has been determined in the first step, i.e. whether the content to be stored in NVM space is an object or a package.
If the data to be stored is an object, the data (object) is allocated space from the bottom to the top of the NVM user region and is then stored in the NVM space, and if the data to be stored is a packet, the data (packet) is allocated space from the top to the bottom of the NVM user region and is then stored in the NVM space.
The specific method comprises the following steps: throughout the NVM user area (the area where data is edited and stored), packets allocate space from top (small address) to bottom (large address). While objects allocate space from bottom (large address) to top (small address).
It is convenient to understand that for the packet, it is stored sequentially in NVM, each packet uses 16 bytes as minimum unit application space (one packet occupies at least one unit, or may occupy multiple units), and maintains a corresponding logic table (logic table), in which the start address of each packet is recorded, so that the storage location of the packet can be confirmed by reading the logic table of the packet. The size of the packet is not fixed, and the storage mode is stored in a 16-byte aligned mode according to the number of units required for a specific size, and when the space with the packet therein is released, the following packet needs to be compact forward, for example: packet A, B, C, D is stored and when packet B is released, packet C needs to be compacted to the location of original packet B, and if there is a packet E application space following it, the application space storage is reapplied after packet D. It will be appreciated that this compactness allows for the storage of packages without fragmentation and with a higher space utilization.
In one embodiment, allocation management of NVM space includes:
establishing a packet logic table to perform packet management, packet space application and space release and packet space compactness, wherein the packet logic table records the starting address of each packet, and the maximum number of the managed packets is the record table item of the packet logic table;
the packets are sequentially stored according to the sequence of the packet application, and the length of the packet is calculated according to the starting address of the packet and the starting address of the next packet.
In one embodiment, the space application and space release of the package comprises: according to the length required by the application, allocating the NVM continuous space with the last packet tail address as the starting address to the packet, recording the starting address in a packet logic table, and returning the recording address of the packet logic table to the application to finish the space application of the packet;
and designating the space occupied by the package according to the application requirement, marking the package logic table record corresponding to the package, and distributing the space to other packages or objects for use after the subsequent package is compact so as to finish the space release of the package.
In one embodiment, the package is compact in space, comprising:
when the use space of any packet is released, determining the address of the released packet, and searching the address of the next packet and the address of the last packet;
Calculating the total length to be translated through the difference value between the tail address of the last packet and the starting address of the next packet;
sequentially forward translating addresses of all packets following the released packet to perform a compact operation on NVM space;
when the length of the release packet is smaller than one NVM page, performing packet compact translation operation in a page backup mode;
and determining the storage address of the packet according to the packet start address in the packet logic table record item corresponding to each packet.
And after the compacting operation is completed, synchronously updating the packet logic table record items corresponding to all the packets.
Specifically, when the use space of any packet is released, determining the address of the released packet, and searching the start address of the next packet and the tail address of the last packet; calculating the total length to be translated through the difference value between the tail address of the last packet and the starting address of the next packet; the addresses of all packets following the released packet are translated forward in sequence to compact the NVM space. It will be appreciated that each time a packet is released, compact operation is enabled, including in particular: the address of the released packet is confirmed, the start address of the subsequent packet and the tail address of the last packet (namely A, null and C, D are searched, C and D are determined according to the null packet, the start address of C is subtracted from the tail address of D), so that the total length to be translated is calculated, then the forward translation of the address is carried out (for example, the packet A, B, C, D is stored, when the packet B is released, C and D are both moved forward by one B length), and the corresponding logic table is synchronously updated, so that the storage of 128 packets can be supported at most.
In one embodiment, the storage address of each packet is determined according to the start address of each packet recorded in the logical table corresponding to each packet. For example, when there are packets A, B, C and D, the start address of a is unchanged when the B space is released, and the start addresses of C and D are each minus the length of one B.
In another embodiment, the allocating and managing the NVM space further includes:
establishing an object logic table and an object state table to perform object management, applying for space and releasing of objects, and compacting space of the objects, wherein the object logic table records a page starting address of an NVM page where an object starting address is located;
the object state table records the usage state of the NVM user area storage locations:
when the NVM memory cell is in an idle state, then the flag is 1;
when the NVM memory cell is in the busy state, then the flag is 0.
It will be appreciated that the usage status of the NVM user zone is marked according to a status table (state table) corresponding to all objects; when the space storage block is marked as 1, the space storage block is in an idle state; when the space storage block is marked as 0, the space storage block is in an occupied state. It will be appreciated that for an object, the allocation is from the bottom to the top of the NVM user region, and the application is also performed in 16 bytes as the smallest unit, and the corresponding logical table is also maintained, in which the physical page address number of the allocated block is recorded, and a state table is also maintained for the object. The state table is used to flag the usage status of the entire NVM user region, with a 1 bit of the state table representing the usage status of a 16 byte block (cell), a flag of 1 indicating that the cell is idle and a flag of 0 indicating that the cell has been used.
In one embodiment, the spatial application and spatial release of the object includes:
searching fragments from the top-most object to the bottom of the NVM user zone when the object application length is less than the page length of the NVM;
if the fragments distributed enough are found, the object logic table entry logic address corresponding to the fragment starting address and the offset in the NVM physical page corresponding to the fragment starting address are returned to the application;
when the object application length is greater than or equal to the page length of the NVM or the object application length is less than the page length of the NVM, but not enough fragments are found, the starting address of the current topmost object is used as the tail address to extend the continuous space of the NVM user area with the application requirement length to the top, the physical page address is recorded in the corresponding record item of the object logic table, the space is marked as an occupied state in the object state table, and the record address and page offset of the object logic table are returned to the application, so that the space application of the object is completed;
designating the space occupied by the object according to the application requirement, and modifying the corresponding object state table into an idle state; if the NVM complete page is free after release, deleting the corresponding object logic table record item;
when the use space of any object is released, reserving the space which is originally allocated and corresponds to the any object as an idle area, and judging whether the idle area space meets the storage space of the object to be allocated or not when the next object to be allocated;
If yes, storing the object to be allocated in the idle interval;
if not, sequentially distributing the storage space according to the preset space storage rule of the object, and storing the storage space to finish the space release of the object.
Optionally, when the usage space of any object is released, reserving the originally allocated space corresponding to the any object as an idle area, and when the next object is to be allocated, judging whether the idle area space meets the storage space of the object to be allocated;
if yes, storing the object to be allocated in the idle interval;
if not, sequentially distributing and storing the storage space according to the preset space storage rule of the object.
In one embodiment, the space of the object is compact, comprising: when the storage of the user area is saturated, based on the object state table, performing compact operation on the free space of the whole page in the NVM, transferring and storing the free page of the upper non-whole page to the free page of the whole page below, and synchronously modifying the record item corresponding to the object logic table and the record item corresponding to the object state table.
It will be appreciated that the compactness of the object and the package are not the same, because the object and the package are different in characteristics, the object logic table only holds the page sequence number of the object address, and does not hold the page offset, and if the object is compacted in the same way as the package, the compacted object cannot be found after compacting. Then for the object, when the object is released and the originally allocated space is reserved as a free area, and the next object is to be allocated, if the free area space is enough, the free area is directly used, and only the whole page of the NVM is free for compaction. The object can be compacted after a plurality of releases, and the object is not required to be compacted immediately after each release.
Optionally, when the storage of the user area is full, based on the object state table, performing compact operation on the free space of the whole page in the table, and reserving the free area of the non-whole page as fragments, wherein the compact operation of the object space is to transfer and store the object data above the address to the free area of the whole page below the address.
After the object space is compact, the complete free space is concentrated to the top of the object space; there is no complete free page at the bottom and there will be only free fragments of less than one page.
Unlike pack space compactness, which is compact in units of packs; while compactness of object space is independent of a specific single object, and is only related to whether there are complete NVM free pages in the overall footprint of the object.
Object space compaction is accomplished by querying an object state table; the compact completion of the object space, the simultaneous modification of the object state table and the object logic table.
The object space compact is whole page transfer storage, after the object space compact operation is completed, only the page sequence number of the object is changed, the page offset of the object is not changed, and the object starting address is repositioned by modifying the record item (namely the object page sequence number) corresponding to the object logic table.
It will be appreciated that only the whole page free object space is compacted, the non-whole page free area remains as a fragment, and when an object (with a non-fixed size) is allocated for storage, i.e. a free fragment position is found from the top to the bottom of the free current object, when the fragment space meets the size of the object, the object is stored in the position. If the NVM user area is full, then the object storage space needs to be compacted, which is to compact the physical pages page by page, i.e. transfer the object above the address to the whole page free area below the address.
Whether it be a package or an object, the compactness must guarantee the atomicity of compact operations: either no compaction operation is performed or the compaction operation must be performed in its entirety (i.e., compaction cannot be performed for only a single free area, and compaction is unified for all free areas), otherwise confusion in the NVM user area may result.
The invention has the advantages that: the package and the object are stored in the NVM separately and are not crossed, and different storage modes and compact modes are adopted according to different characteristics of the package and the object, so that the space utilization rate of the NVM is obviously improved, and the processing efficiency is also improved.
Furthermore, it should be noted that, when working in embedded devices, unexpected power-down situations may be sent during space allocation, space release, and space compaction, and if there is no reasonable processing mechanism, confusion may occur, resulting in that the whole NVM space is not available. The rationality of the transaction mechanism is therefore critical.
In one embodiment, the package's transaction is opened, transaction processed, transaction de-emphasized, and transaction completed;
the transaction opening of the package includes: copying the pkg_logic_table to the pkg_logic_table_bak;
the transaction of the packet includes: there may be multiple packet applications and one packet release in one packet transaction; the packet application and the packet release only modify the corresponding record item in the pkg_logic_table_bak;
the transaction cancellation operation of the package includes: one or more packet applications and/or a packet release have been completed; if the operation is hoped to be canceled halfway, rolling back to a state before the package transaction is started;
the transaction completion operation of the package includes: copying the pkg_logic_table_bak to the pkg_logic_table;
carrying out power-down prevention treatment on package transaction;
the power-down prevention processing of the packet transaction comprises the following steps: when the power is accidentally lost in the packet transaction processing process and the power is electrified again, the state before the packet transaction is started is rolled back;
transaction opening, transaction processing, transaction cancellation and transaction completion of the object;
the transaction open operation of the object includes: copying the obj_logic_table to the obj_logic_table_bak, and copying the obj_state_table to the obj_state_table_bak;
the transaction operation of the object includes: there may be multiple object applications and/or multiple object releases in an object transaction; object application and object release, only modifying the corresponding record item in obj_logic_table_bak and the corresponding record item in obj_state_table_bak;
The transaction cancel operation of the object includes: one or more object applications and one or more object releases have been completed; if the operation is hoped to be canceled halfway, the state before the object transaction is started is rolled back;
the transaction completion operation of the object includes: copying obj_logic_table_bak to obj_logic_table, and copying obj_state_table_bak to obj_state_table;
object transaction power-down prevention processing;
the object transaction power-down prevention process comprises the following steps: when unexpected power-down occurs in the process of the object transaction and the power-up is performed again, the state before the object transaction is started is rolled back;
compact and object compact power-down prevention handling of packages;
the package compact and object compact operation, the copying of the physical pages of the NVM user area is one page at a time, and the copying is divided into a plurality of times until the copying is completed;
recording current copy page information in each copy operation;
the package compact and object compact power down prevention process includes: when unexpected power-down condition occurs in the compact operation process, and the power-up is performed again, continuing the compact operation from the position which is known and designated by the recorded copy page information until the compact operation is completed;
compact operation, once initiated, does not allow rollback.
In one embodiment, a cache mechanism of a package logic table, a cache mechanism obj_logic_cache of an object logic table and a cache mechanism obj_state_cache of an object state are respectively set;
when the update of the pkg_logic_table_bak is less than one page after the packet transaction or the packet compact is started, updating in the pkg_logic_cache;
when the update of the pkg_logic_table_bak is full of one page, the data in the pkg_logic_cache is updated to the corresponding page of the pkg_logic_table_bak so as to update the maintenance management table of the packet;
when the update of the obj_logic_table_bak is less than one page after the object transaction or the object compact is started, updating in the obj_logic_cache;
when the update of the obj_logic_table_bak is full of one page, updating the data of the obj_logic_cache into the corresponding page of the obj_logic_table_bak;
when the update of the obj_state_table_bak is less than one page, performing object update in the obj_state_cache;
when the update of the obj_state_table_bak is full of one page, the data in the obj_state_cache is updated to the corresponding page of the obj_state_table_bak so as to update the maintenance management table of the object.
It will be appreciated that the packet apply/release transaction is specifically: the application and release of the package are maintained and managed by the pkg_logic_table, pkg_logic_table_bak, status_table and status_table_bak tables. The maintenance management tables of the packets are all in the NVM, and the outage data is not lost.
Where pkg_Logic_table is the Logic raw table of the package and pkg_Logic_table_bak is the Logic worksheet of the package.
The transaction of the packet is started and the pkg_logic_table is copied to the pkg_logic_table_bak. In a packet transaction, there may be multiple packet applications and one packet release, where the packet applications and releases only modify the ppkg_logic_table_bak table. And if the packet transaction is completed, copying the pkg_logic_table_bak to the pkg_logic_table, and completing one packet transaction. The start of the package transaction and the completion of the package transaction are both recorded in status_table and status_table_bak.
If the power is lost in the packet transaction, when the power is again supplied, the pkg_logic_table is copied to the pkg_logic_table_bak, the state before the start of the packet transaction is restored, and the packet transaction is started until the packet application and the packet release before the power is lost are invalid, so that the rollback is realized.
The object application/release transaction is specifically: the application and release of the object are maintained and managed by obj_logic_table, obj_logic_table_bak, obj_state_table, obj_state_table_bak, status_table and status_table_bak tables. The maintenance management tables of the above objects are all in the NVM, and the power-off data is not lost.
Wherein obj_logic_table is an object logic (logic) original table, and obj_logic_table_bak is an object logic worksheet; the obj_state_table is an object state original table, and the obj_state_table_bak is an object state worksheet.
The object transaction is started, the obj_logic_table is copied to obj_logic_table_bak, and the obj_state_table is copied to obj_state_table_bak. In an object transaction, there may be multiple object applications and multiple object releases, where the applications and releases of the objects only modify the obj_logic_table_bak and obj_state_table_bak tables. And if the object transaction is completed, copying the obj_logic_table_bak to the obj_logic_table, and copying the obj_state_table_bak to the obj_state_table, so as to complete the object transaction. The start of the object transaction and the completion of the object transaction are both recorded in status_table and status_table_bak.
If the object transaction is powered down, when the object transaction is powered up again, the obj_logic_table is copied to the obj_logic_table_bak, the obj_state_table is copied to the obj_state_table_bak, the state before the object transaction starts is restored, and the object application and the object release before the object transaction is started to the power down are invalid, namely the rollback is realized.
The package/object compact transaction is specifically: since some or all of the user data in the package/object compact will be overwritten, the compact must be fully completed once started, and it is impossible to restore to the state before the package/object compact.
User data is stored in the NVM and the updating operation of the NVM can only be completed one page at a time. Every page movement (page update) in the compaction process, i.e. every step of compaction, is recorded in the status_table table; if power down occurs in the compact process, after the power up is restarted, the page moving (page updating) operation is continued according to the record in the status_table until all the page moving operations are completed.
In an embodiment, after the packet transaction is started, only part of the record in the pkg_logic_table_bak may be updated each time the packet is applied or released, and even only a few bytes may be involved; whereas the NVM memory is characterized by: the time to update a page and one byte is the same. Similarly, in a packet compact operation, the packet involved also needs to modify (update) its pkg_logic_table_bak record. Similar to a packet transaction, each time an object is applied or released, only part of the record in obj_logic_table_bak and part of the record in obj_state_table_bak may be updated, and even only a few bytes may be involved. Whereas the NVM memory is characterized by: the time to update a page and one byte is the same.
In one embodiment, in the packet compaction operation, the involved packet also needs to modify (update) its pkg_logic_table_bak record. Similar to a packet transaction, each time an object is applied or released, only part of the record in obj_logic_table_bak and part of the record in obj_state_table_bak may be updated, and even only a few bytes may be involved.
Similarly, in an object compaction operation, the object involved also needs to modify (update) its obj_logic_table_bak record and obj_state_table_bak record.
In order to improve the operation efficiency, respectively setting a pkg_logic_cache, an obj_logic_cache and an obj_state_cache, which are RAM spaces with the length equal to the length of one NVM page, wherein the read-write time of the RAM is the instruction operation time, and the pkg_logic_cache, the obj_logic_cache and the obj_state_cache respectively represent the cache mechanism of a packet logic table, the cache mechanism of an object logic table and the cache mechanism of the state of the object.
When the update of the pkg_logic_table_bak is less than one page, the update is only modified in the pkg_logic_cache, and the NVM update operation can not occur, so that the running efficiency is improved. Only if one page is full will the data in the pkg_logic_cache be updated to the target location of the pkg_logic_table_bak table.
Similarly, when the update of obj_logic_table_bak is less than one page, only the update is modified in obj_logic_cache; when the update of obj_state_table_bak is not full of one page, only the modification is performed in obj_state_cache.
That is, when the transaction of the object is started and the update of the logic worksheet corresponding to the object is determined to be less than one page, the update is performed in the cache of the logic sheet of the object;
when the update of the logic worksheet of the object is full of one page, updating the data in the cache of the logic sheet of the object to the corresponding target position of the logic worksheet of the object;
When the update in the object state worksheet is less than one page, performing object update in the cache of the object state;
when the update of the object state worksheet is full of one page, the data in the cache of the logic table of the object is updated to the corresponding target position of the object state worksheet so as to update the maintenance management table of the object.
When the package transaction is completed or the object transaction is completed, the data in the cache is updated to the corresponding position of the corresponding management table, so that the cache mechanism can ensure the integrity of the package transaction and the object transaction, and the system operation efficiency is greatly improved.
Referring to fig. 2, fig. 2 is a schematic diagram of an NVM space allocation apparatus according to the present invention, as shown in fig. 2, the apparatus includes:
a determining module 201 for determining a class of data to be stored in the NVM space, the class of data including objects and packages.
An allocation module 202 for allocating space from the bottom to the top of the NVM user zone when the data class is determined to be an object and allocating space from the top to the bottom of the NVM user zone for allocating NVM space when the data class is determined to be a packet.
Further, in one possible implementation manner, the system further comprises a processing module, which is used for establishing a packet logic table to perform packet management, space application and space release of the packets, and space compaction of the packets, wherein the packet logic table records a start address of each packet, and the maximum number of the managed packets is a record table entry of the packet logic table;
the packets are sequentially stored according to the sequence of the packet application, and the length of the packet is calculated according to the starting address of the packet and the starting address of the next packet.
Further, in one possible implementation manner, the processing module is further configured to allocate, according to a length required by an application, NVM continuous space with a last packet tail address as a start address to the packet, record the start address in a packet logic table, and return a record address of the packet logic table to the application, so as to complete a space application of the packet;
and designating the space occupied by the package according to the application requirement, marking the package logic table record corresponding to the package, and distributing the space to other packages or objects for use after the subsequent package is compact so as to finish the space release of the package.
Further, in a possible embodiment, the processing module is further configured for space compactness of the package, comprising:
when the use space of any packet is released, determining the address of the released packet, and searching the address of the next packet and the address of the last packet;
Calculating the total length to be translated through the difference value between the tail address of the last packet and the starting address of the next packet;
sequentially forward translating addresses of all packets following the released packet to perform a compact operation on NVM space;
when the length of the release packet is smaller than one NVM page, performing packet compact translation operation in a page backup mode;
and determining the storage address of the packet according to the packet start address in the packet logic table record item corresponding to each packet.
And after the compacting operation is completed, synchronously updating the packet logic table record items corresponding to all the packets.
Further, in one possible implementation manner, the system further comprises a marking module, which is used for establishing an object logic table and an object state table to perform object management, space application and space release of the object, and space compaction of the object, wherein the object logic table records a page starting address of an NVM page where an object starting address is located;
the object state table records the usage state of the NVM user area storage locations:
when the NVM memory cell is in an idle state, then the flag is 1;
when the NVM memory cell is in the busy state, then the flag is 0.
Further, in one possible implementation, the processing module is further configured to search for a fragment from the top-most object to the bottom of the NVM user area when the object application length is less than the page length of the NVM;
If the fragments distributed enough are found, the object logic table entry logic address corresponding to the fragment starting address and the offset in the NVM physical page corresponding to the fragment starting address are returned to the application;
when the object application length is greater than or equal to the page length of the NVM or the object application length is less than the page length of the NVM, but not enough fragments are found, the starting address of the current topmost object is used as the tail address to extend the continuous space of the NVM user area with the application requirement length to the top, the physical page address is recorded in the corresponding record item of the object logic table, the space is marked as an occupied state in the object state table, and the record address and page offset of the object logic table are returned to the application, so that the space application of the object is completed;
designating the space occupied by the object according to the application requirement, and modifying the corresponding object state table into an idle state; if the NVM complete page is free after release, deleting the corresponding object logic table record item;
when the use space of any object is released, reserving the space which is originally allocated and corresponds to the any object as an idle area, and judging whether the idle area space meets the storage space of the object to be allocated or not when the next object to be allocated;
If yes, storing the object to be allocated in the idle interval;
if not, sequentially distributing the storage space according to the preset space storage rule of the object, and storing the storage space to finish the space release of the object.
Further, in one possible implementation manner, the processing module is further configured to, when the storage in the user area reaches saturation, perform a compact operation on the free space of the whole page in the NVM based on the object state table, store the page transfer of the free page above the non-whole page to the free page of the whole page below the free page, and synchronously modify the record item corresponding to the object logic table and the record item corresponding to the object state table.
Further, in one possible implementation manner, the processing module is further configured to open a transaction of the packet, process the transaction, cancel the transaction, and complete the transaction;
the transaction opening of the package includes: copying the pkg_logic_table to the pkg_logic_table_bak;
the transaction of the packet includes: there may be multiple packet applications and one packet release in one packet transaction; the packet application and the packet release only modify the corresponding record item in the pkg_logic_table_bak;
the transaction cancellation operation of the package includes: one or more packet applications and/or a packet release have been completed; if the operation is hoped to be canceled halfway, rolling back to a state before the package transaction is started;
The transaction completion operation of the package includes: copying the pkg_logic_table_bak to the pkg_logic_table;
carrying out power-down prevention treatment on package transaction;
the power-down prevention processing of the packet transaction comprises the following steps: when the power is accidentally lost in the packet transaction processing process and the power is electrified again, the state before the packet transaction is started is rolled back;
transaction opening, transaction processing, transaction cancellation and transaction completion of the object;
the transaction open operation of the object includes: copying the obj_logic_table to the obj_logic_table_bak, and copying the obj_state_table to the obj_state_table_bak;
the transaction operation of the object includes: there may be multiple object applications and/or multiple object releases in an object transaction; object application and object release, only modifying the corresponding record item in obj_logic_table_bak and the corresponding record item in obj_state_table_bak;
the transaction cancel operation of the object includes: one or more object applications and one or more object releases have been completed; if the operation is hoped to be canceled halfway, the state before the object transaction is started is rolled back;
the transaction completion operation of the object includes: copying obj_logic_table_bak to obj_logic_table, and copying obj_state_table_bak to obj_state_table;
Object transaction power-down prevention processing;
the object transaction power-down prevention process comprises the following steps: when unexpected power-down occurs in the process of the object transaction and the power-up is performed again, the state before the object transaction is started is rolled back;
compact and object compact power-down prevention handling of packages;
the package compact and object compact operation, the copying of the physical pages of the NVM user area is one page at a time, and the copying is divided into a plurality of times until the copying is completed;
recording current copy page information in each copy operation;
the package compact and object compact power down prevention process includes: when unexpected power-down condition occurs in the compact operation process, and the power-up is performed again, continuing the compact operation from the position which is known and designated by the recorded copy page information until the compact operation is completed;
compact operation, once initiated, does not allow rollback.
Further, in one possible implementation manner, the processing module is further configured to set a cache mechanism of the packet logic table, a cache mechanism obj_logic_cache of the object logic table, and a cache mechanism obj_state_cache of the object state respectively;
when the update of the pkg_logic_table_bak is less than one page after the packet transaction or the packet compact is started, updating in the pkg_logic_cache;
When the update of the pkg_logic_table_bak is full of one page, the data in the pkg_logic_cache is updated to the corresponding page of the pkg_logic_table_bak so as to update the maintenance management table of the packet;
when the update of the obj_logic_table_bak is less than one page after the object transaction or the object compact is started, updating in the obj_logic_cache;
when the update of the obj_logic_table_bak is full of one page, updating the data of the obj_logic_cache into the corresponding page of the obj_logic_table_bak;
when the update of the obj_state_table_bak is less than one page, performing object update in the obj_state_cache;
when the update of the obj_state_table_bak is full of one page, the data in the obj_state_cache is updated to the corresponding page of the obj_state_table_bak so as to update the maintenance management table of the object.
Referring to fig. 3, fig. 3 is a flow chart illustrating the compact operation of the object provided by the present invention, as shown in fig. 3:
s301 determining the address of the released packet when the usage space of any packet is released, and searching the start address of the next packet and the tail address of the last packet.
Specifically, the packet A, B, C, D is stored, and when the packet B is released, the position of B is determined by the logical table corresponding to the packet B, and the position of C (the next packet) and the position of D (the last packet) are searched by the position of B.
S302, calculating the total length to be translated through the difference value between the tail address of the last packet and the start address of the next packet.
Specifically, the tail address of the last packet is subtracted from the start address of the next packet, the lengths of all subsequent packets are calculated, and then the address is shifted forward.
And S303, sequentially shifting the addresses of all the packets behind the released packet forward so as to perform compact operation on the NVM space.
Specifically, for example: after packet B is released, packet A, B, C, D finds the addresses of C and D, subtracts the starting address of C from the tail address of D to obtain the total length to be translated, then translates the starting address of C to the starting position of B (i.e., C translates forward by one B length), and similarly translates D forward by one B length.
Referring to fig. 4, fig. 4 is a flow chart illustrating the compact operation of the object provided by the present invention, as shown in fig. 4:
s401, when the use space of any object is released, reserving the originally allocated space corresponding to the any object as an idle area, and when the next object is to be allocated, judging whether the idle area space meets the storage space of the object to be allocated;
s402, if yes, storing the object to be allocated in the idle interval; if not, sequentially distributing and storing the storage space according to the preset space storage rule of the object.
It will be appreciated that the object is reclaimed and reused only for the whole page free space, leaving the non-whole page free area as a fragment, and when the storage allocation of the object (with a non-fixed size) is performed, i.e. the free fragment position is found from the bottom to the top of the NVM user area, when the fragment space meets the size of the object, the object is stored in the position. If the NVM user area is full, then the object storage space needs to be compacted, which is to compact the physical pages page by page, i.e. transfer the object above the address to the whole page free area below the address.
The foregoing is merely a specific embodiment of the application to enable one skilled in the art to understand or practice the application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the application. Thus, the present application is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (10)

1. A method for NVM space allocation, comprising:
Determining a data class to be stored in the NVM space, the data class including an object and a package;
when the data class is determined to be an object, the object is allocated space from the bottom to the top of the NVM user region, and when the data class is determined to be a packet, the packet is allocated space from the top to the bottom of the NVM user region to allocate and manage the NVM space.
2. The method of claim 1, wherein the allocation management of NVM space comprises:
establishing a packet logic table to perform packet management, packet space application and space release and packet space compactness, wherein the packet logic table records the starting address of each packet, and the maximum number of the managed packets is the record table item of the packet logic table;
the packets are sequentially stored according to the sequence of the packet application, and the length of the packet is calculated according to the starting address of the packet and the starting address of the next packet.
3. The method of claim 2, wherein the space application and space release of the package comprises:
according to the length required by the application, allocating the NVM continuous space with the last packet tail address as the starting address to the packet, recording the starting address in a packet logic table, and returning the recording address of the packet logic table to the application to finish the space application of the packet;
And designating the space occupied by the package according to the application requirement, marking the package logic table record corresponding to the package, and distributing the space to other packages or objects for use after the subsequent package is compact so as to finish the space release of the package.
4. The method according to claim 2, characterized by comprising:
the package is compact in space, comprising:
when the use space of any packet is released, determining the address of the released packet, and searching the address of the next packet and the address of the last packet;
calculating the total length to be translated through the difference value between the tail address of the last packet and the starting address of the next packet;
sequentially forward translating addresses of all packets following the released packet to perform a compact operation on NVM space;
when the length of the release packet is smaller than one NVM page, performing packet compact translation operation in a page backup mode;
and determining the storage address of the packet according to the packet start address in the packet logic table record item corresponding to each packet.
And after the compacting operation is completed, synchronously updating the packet logic table record items corresponding to all the packets.
5. The method of claim 1, wherein the allocation management of NVM space further comprises:
Establishing an object logic table and an object state table to perform object management, applying for space and releasing of objects, and compacting space of the objects, wherein the object logic table records a page starting address of an NVM page where an object starting address is located;
the object state table records the usage state of the NVM user area storage locations:
when the NVM memory cell is in an idle state, then the flag is 1;
when the NVM memory cell is in the busy state, then the flag is 0.
6. The method of claim 5, wherein the spatial application and spatial release of the object comprises:
searching fragments from the top-most object to the bottom of the NVM user zone when the object application length is less than the page length of the NVM;
if the fragments distributed enough are found, the object logic table entry logic address corresponding to the fragment starting address and the offset in the NVM physical page corresponding to the fragment starting address are returned to the application;
when the object application length is greater than or equal to the page length of the NVM or the object application length is less than the page length of the NVM, but not enough fragments are found, the starting address of the current topmost object is used as the tail address to extend the continuous space of the NVM user area with the application requirement length to the top, the physical page address is recorded in the corresponding record item of the object logic table, the space is marked as an occupied state in the object state table, and the record address and page offset of the object logic table are returned to the application, so that the space application of the object is completed;
Designating the space occupied by the object according to the application requirement, and modifying the corresponding object state table into an idle state; if the NVM complete page is free after release, deleting the corresponding object logic table record item;
when the use space of any object is released, reserving the space which is originally allocated and corresponds to the any object as an idle area, and judging whether the idle area space meets the storage space of the object to be allocated or not when the next object to be allocated;
if yes, storing the object to be allocated in the idle interval;
if not, sequentially distributing the storage space according to the preset space storage rule of the object, and storing the storage space to finish the space release of the object.
7. The method of claim 5, wherein the object is spatially compact, comprising:
when the storage of the user area is saturated, based on the object state table, performing compact operation on the free space of the whole page in the NVM, transferring and storing the free page of the upper non-whole page to the free page of the whole page below, and synchronously modifying the record item corresponding to the object logic table and the record item corresponding to the object state table.
8. A method according to claim 2 or 5, comprising:
The transaction opening, transaction processing, transaction cancellation and transaction completion of the package;
the transaction opening of the package includes: copying the pkg_logic_table to the pkg_logic_table_bak;
the transaction of the packet includes: there may be multiple packet applications and one packet release in one packet transaction; the packet application and the packet release only modify the corresponding record item in the pkg_logic_table_bak;
the transaction cancellation operation of the package includes: one or more packet applications and/or a packet release have been completed; if the operation is hoped to be canceled halfway, rolling back to a state before the package transaction is started;
the transaction completion operation of the package includes: copying the pkg_logic_table_bak to the pkg_logic_table;
carrying out power-down prevention treatment on package transaction;
the power-down prevention processing of the packet transaction comprises the following steps: when the power is accidentally lost in the packet transaction processing process and the power is electrified again, the state before the packet transaction is started is rolled back;
transaction opening, transaction processing, transaction cancellation and transaction completion of the object;
the transaction open operation of the object includes: copying the obj_logic_table to the obj_logic_table_bak, and copying the obj_state_table to the obj_state_table_bak;
the transaction operation of the object includes: there may be multiple object applications and/or multiple object releases in an object transaction; object application and object release, only modifying the corresponding record item in obj_logic_table_bak and the corresponding record item in obj_state_table_bak;
The transaction cancel operation of the object includes: one or more object applications and one or more object releases have been completed; if the operation is hoped to be canceled halfway, the state before the object transaction is started is rolled back;
the transaction completion operation of the object includes: copying obj_logic_table_bak to obj_logic_table, and copying obj_state_table_bak to obj_state_table;
object transaction power-down prevention processing;
the object transaction power-down prevention process comprises the following steps: when unexpected power-down occurs in the process of the object transaction and the power-up is performed again, the state before the object transaction is started is rolled back;
compact and object compact power-down prevention handling of packages;
the package compact and object compact operation, the copying of the physical pages of the NVM user area is one page at a time, and the copying is divided into a plurality of times until the copying is completed;
recording current copy page information in each copy operation;
the package compact and object compact power down prevention process includes: when unexpected power-down condition occurs in the compact operation process, and the power-up is performed again, continuing the compact operation from the position which is known and designated by the recorded copy page information until the compact operation is completed;
compact operation, once initiated, does not allow rollback.
9. A method according to claim 2 or 5, comprising:
respectively setting a cache mechanism of a packet logic table, a cache mechanism obj_logic_cache of an object logic table and a cache mechanism obj_state_cache of an object state;
when the update of the pkg_logic_table_bak is less than one page after the packet transaction or the packet compact is started, updating in the pkg_logic_cache;
when the update of the pkg_logic_table_bak is full of one page, the data in the pkg_logic_cache is updated to the corresponding page of the pkg_logic_table_bak so as to update the maintenance management table of the packet;
when the update of the obj_logic_table_bak is less than one page after the object transaction or the object compact is started, updating in the obj_logic_cache;
when the update of the obj_logic_table_bak is full of one page, updating the data of the obj_logic_cache into the corresponding page of the obj_logic_table_bak;
when the update of the obj_state_table_bak is less than one page, performing object update in the obj_state_cache;
when the update of the obj_state_table_bak is full of one page, the data in the obj_state_cache is updated to the corresponding page of the obj_state_table_bak so as to update the maintenance management table of the object.
10. An NVM space allocation apparatus implementing the NVM space allocation method of any of claims 1-9, comprising:
a determining module for determining a class of data to be stored in the NVM space, the class of data including objects and packages;
an allocation module for allocating space from the bottom to the top of the NVM user zone when the data class is determined to be an object, and allocating space from the top to the bottom of the NVM user zone for allocation of NVM space when the data class is determined to be a packet.
CN202311765611.0A 2023-12-20 2023-12-20 NVM space allocation method and device Pending CN117724990A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311765611.0A CN117724990A (en) 2023-12-20 2023-12-20 NVM space allocation method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311765611.0A CN117724990A (en) 2023-12-20 2023-12-20 NVM space allocation method and device

Publications (1)

Publication Number Publication Date
CN117724990A true CN117724990A (en) 2024-03-19

Family

ID=90205001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311765611.0A Pending CN117724990A (en) 2023-12-20 2023-12-20 NVM space allocation method and device

Country Status (1)

Country Link
CN (1) CN117724990A (en)

Similar Documents

Publication Publication Date Title
US7480775B2 (en) Method and apparatus for block-oriented memory management provided in smart card controllers
US6587915B1 (en) Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same
US7227788B2 (en) Memory management device and memory device
US6571326B2 (en) Space allocation for data in a nonvolatile memory
US7949839B2 (en) Managing memory pages
US8554987B2 (en) Nonvolatile memory system for improving stream data writing
CN107256196A (en) The caching system and method for support zero-copy based on flash array
US11455112B2 (en) Non-volatile memory device, non-volatile memory control device, and non-volatile memory control method
CN100561386C (en) A kind of data save method and device
CN106201335B (en) Storage system
JP2006268776A (en) Memory card
CN102279712A (en) Storage control method, system and device applied to network storage system
JPH06139120A (en) File updating system
US20200341908A1 (en) Method for management of multi-core solid state drive
CN115168259B (en) Data access method, device, equipment and computer readable storage medium
TW200417857A (en) Allocating cache lines
WO2016123748A1 (en) Flash memory storage system and read/write and delete methods therefor
WO2023124423A1 (en) Storage space allocation method and apparatus, and terminal device and storage medium
CN115269450A (en) Memory cooperative management system and method
KR20170084675A (en) Method of accessing data with in a memory, and memory device using the method
CN114327270A (en) Request processing method, device, equipment and readable storage medium
CN117724990A (en) NVM space allocation method and device
EP2672390B1 (en) Memory controller
CN107861887A (en) A kind of control method of serial volatile memory
CN115712386A (en) Super block management method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination