[go: up one dir, main page]

CN117785732B - Storage space management method, device, electronic device and storage medium - Google Patents

Storage space management method, device, electronic device and storage medium Download PDF

Info

Publication number
CN117785732B
CN117785732B CN202311868637.8A CN202311868637A CN117785732B CN 117785732 B CN117785732 B CN 117785732B CN 202311868637 A CN202311868637 A CN 202311868637A CN 117785732 B CN117785732 B CN 117785732B
Authority
CN
China
Prior art keywords
space
storage space
mapping table
address
physical address
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.)
Active
Application number
CN202311868637.8A
Other languages
Chinese (zh)
Other versions
CN117785732A (en
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.)
Moore Thread Intelligent Technology Chengdu Co ltd
Original Assignee
Moore Thread Intelligent Technology Chengdu 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 Moore Thread Intelligent Technology Chengdu Co ltd filed Critical Moore Thread Intelligent Technology Chengdu Co ltd
Priority to CN202311868637.8A priority Critical patent/CN117785732B/en
Publication of CN117785732A publication Critical patent/CN117785732A/en
Application granted granted Critical
Publication of CN117785732B publication Critical patent/CN117785732B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System (AREA)

Abstract

本公开涉及一种存储空间管理方法、装置、电子设备和存储介质。所述方法包括:响应于接收到来自于第一进程的存储空间分配请求,根据空间进程映射表,向所述第一进程分配目标存储空间,其中,所述空间进程映射表用于记录存储空间的物理地址与进程的标识信息之间的对应关系;在地址映射表中,记录所述目标存储空间的逻辑地址与物理地址之间的映射关系,并更新所述空间进程映射表;其中,所述第一进程对应的存储空间的逻辑地址连续,所述第一进程对应的存储空间的物理地址允许非连续,且不同进程的存储空间的逻辑地址与物理地址之间的映射关系记录在同一所述地址映射表中。

The present disclosure relates to a storage space management method, device, electronic device and storage medium. The method comprises: in response to receiving a storage space allocation request from a first process, allocating a target storage space to the first process according to a space process mapping table, wherein the space process mapping table is used to record the correspondence between the physical address of the storage space and the identification information of the process; in the address mapping table, recording the mapping relationship between the logical address and the physical address of the target storage space, and updating the space process mapping table; wherein the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be non-continuous, and the mapping relationship between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table.

Description

Storage space management method, storage space management device, electronic equipment and storage medium
Technical Field
The disclosure relates to the field of computer technology, and in particular, to a storage space management method, a storage space management device, electronic equipment and a storage medium.
Background
In chip design, on-chip memory space is typically limited in view of cost considerations. Therefore, how to intensively and efficiently manage the limited cache space on the chip becomes the gist of the chip design.
Storage space management typically requires that the corresponding private space be allocated to multiple processes as efficiently as possible taking into account the space allocation and reclamation mechanism. When multiple processes are working simultaneously, the allocation and reclamation of space is often unordered, resulting in fragmentation of the space itself that is continuous, and the available space is discontinuous, so that even if there is enough space left, it cannot be allocated.
Disclosure of Invention
The present disclosure provides a storage space management technical solution.
According to an aspect of the present disclosure, there is provided a storage space management method including:
In response to receiving a storage space allocation request from a first process, allocating a target storage space to the first process according to a space process mapping table, wherein the space process mapping table is used for recording a corresponding relation between a physical address of the storage space and identification information of the process;
And recording the mapping relation between the logical address and the physical address of the target storage space in an address mapping table, and updating the space process mapping table, wherein the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be discontinuous, and the mapping relation between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table.
In one possible implementation of the present invention,
The step of distributing the target storage space to the first process according to the space process mapping table comprises the steps of distributing the target storage space to the first process according to the space process mapping table and a space flag bit corresponding to the storage space in the space process mapping table, wherein the space flag bit is used for marking whether the storage space is distributed or not;
After the target storage space is allocated to the first process, the method further comprises the step of updating the space zone bit corresponding to the target storage space to a first preset value, wherein the first preset value indicates that the storage space is allocated.
In one possible implementation, after the allocating the target storage space to the first process, the method further includes:
And updating a process space counter corresponding to the first process according to the number of the target storage spaces.
In one possible implementation, the method further includes:
In response to receiving at least one storage space release request from at least one second process, clearing identification information of the at least one second process in the space process mapping table, and clearing a mapping relation between a logical address and a physical address of a storage space corresponding to the at least one second process in the address mapping table.
In one possible implementation, the method further includes:
And in response to receiving at least one storage space release request from at least one second process, updating the space flag bit of the storage space corresponding to the at least one second process to a second preset value, wherein the second preset value indicates that the storage space is not allocated.
In one possible implementation, the method further includes:
In response to receiving at least one memory release request from at least one second process, at least one process space counter corresponding to the at least one second process is cleared.
In one possible implementation manner, the allocating, in response to receiving a storage space allocation request from a first process, a target storage space to the first process according to a spatial process mapping table includes:
and in response to receiving the storage space allocation request from the first process and the at least one storage space release request from the at least one second process at the same time, allocating a target storage space to the first process according to the space process mapping table after the identification information of the at least one second process is cleared.
In one possible implementation manner, the responding to the receiving of the at least one storage space release request from the at least one second process, clearing the identification information of the at least one second process in the space process mapping table, and clearing the mapping relationship between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table, includes:
And responding to the received at least one storage space release request from at least one second process by a space release processing module, clearing the identification information of the at least one second process in the space process mapping table, and clearing the mapping relation between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table.
In one possible implementation manner, the allocating, according to a spatial process mapping table, a target storage space to the first process includes:
And distributing a target storage space to the first process by a space request processing module according to the space process mapping table.
In one possible implementation manner, the allocating, according to a spatial process mapping table, a target storage space to the first process includes:
And allocating a target storage space to the first process in response to the amount of unallocated storage in the spatial process map meeting the requirements of the storage allocation request from the first process.
In one possible implementation of the present invention,
Responding to storage space allocation requests from different processes according to the order of priority from high to low;
Or alternatively
And simultaneously responding to the storage space allocation requests from different processes under the condition that the quantity of unallocated storage space in the space process mapping table is sufficient.
According to an aspect of the present disclosure, there is provided a storage space management apparatus including a space process mapping table, a space request processing module, and an address mapping table;
The space process mapping table is used for recording the corresponding relation between the physical address of the storage space and the identification information of the process;
The space request processing module is used for responding to a storage space allocation request received from a first process and allocating a target storage space to the first process according to the space process mapping table;
The address mapping table is used for recording the mapping relation between the logical address and the physical address of the storage space of each process, including recording the mapping relation between the logical address and the physical address of the target storage space;
the logical addresses of the storage spaces corresponding to the first process are continuous, the physical addresses of the storage spaces corresponding to the first process are allowed to be discontinuous, and the mapping relations between the logical addresses and the physical addresses of the storage spaces of different processes are recorded in the same address mapping table.
In one possible implementation of the present invention,
The storage space management device also comprises space flag bits, a plurality of storage space management units and a plurality of storage space management units, wherein the space flag bits are in one-to-one correspondence with the storage spaces and are used for marking whether the corresponding storage spaces are allocated or not;
The space request processing module is specifically configured to allocate a target storage space to the first process according to a space process mapping table and a space flag bit corresponding to a storage space in the space process mapping table, and update the space flag bit corresponding to the target storage space to a first preset value, where the first preset value indicates that the storage space is allocated.
In one possible implementation of the present invention,
The storage space management device also comprises a process space counter corresponding to the processes one by one and used for recording the number of the storage spaces currently occupied by the corresponding processes;
The space request processing module is further used for updating a process space counter corresponding to the first process according to the number of the target storage spaces.
In one possible implementation of the present invention,
The memory space management device further comprises a space release processing module, a memory space management module and a memory space management module, wherein the space release processing module is used for responding to at least one memory space release request from at least one second process, clearing identification information of the at least one second process in the space process mapping table, and clearing mapping relation between a logical address and a physical address of a memory space corresponding to the at least one second process in the address mapping table.
In one possible implementation, the space release processing module is further configured to:
And in response to receiving at least one storage space release request from at least one second process, updating the space flag bit of the storage space corresponding to the at least one second process to a second preset value, wherein the second preset value indicates that the storage space is not allocated.
In one possible implementation, the space release processing module is further configured to:
In response to receiving at least one memory release request from at least one second process, at least one process space counter corresponding to the at least one second process is cleared.
In one possible implementation manner, the space request processing module is specifically configured to:
and in response to receiving the storage space allocation request from the first process and the at least one storage space release request from the at least one second process at the same time, allocating a target storage space to the first process according to the space process mapping table after the identification information of the at least one second process is cleared.
In one possible implementation manner, the space request processing module is specifically configured to:
Responding to storage space allocation requests from different processes according to the order of priority from high to low;
Or alternatively
And simultaneously responding to the storage space allocation requests from different processes under the condition that the quantity of unallocated storage space in the space process mapping table is sufficient.
In one possible implementation, the apparatus further includes:
and the free space counter is used for calculating the number of the free storage spaces according to the space flag bits corresponding to the storage spaces.
According to an aspect of the present disclosure, there is provided a storage space management apparatus including:
The allocation module is used for responding to a storage space allocation request from a first process and allocating a target storage space to the first process according to a space process mapping table, wherein the space process mapping table is used for recording the corresponding relation between the physical address of the storage space and the identification information of the process;
The recording and updating module is used for recording the mapping relation between the logical address and the physical address of the target storage space in the address mapping table and updating the space process mapping table, wherein the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be discontinuous, and the mapping relation between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table.
In one possible implementation of the present invention,
The allocation module is used for allocating a target storage space to the first process according to a space process mapping table and a space flag bit corresponding to the storage space in the space process mapping table, wherein the space flag bit is used for marking whether the storage space is allocated or not;
the device further comprises a first updating module, wherein the first updating module is used for updating the space zone bit corresponding to the target storage space into a first preset value, and the first preset value indicates that the storage space is allocated.
In one possible implementation, the apparatus further includes:
and the second updating module is used for updating the process space counter corresponding to the first process according to the number of the target storage spaces.
In one possible implementation, the apparatus further includes:
And the clearing module is used for responding to the received at least one storage space release request from at least one second process, clearing the identification information of the at least one second process in the space process mapping table, and clearing the mapping relation between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table.
In one possible implementation, the apparatus further includes:
And the third updating module is used for updating the space zone bit of the storage space corresponding to the at least one second process to a second preset value in response to receiving at least one storage space release request from the at least one second process, wherein the second preset value indicates that the storage space is not allocated.
In one possible implementation, the apparatus further includes:
And the zero clearing module is used for clearing at least one process space counter corresponding to the at least one second process in response to receiving at least one storage space release request from the at least one second process.
In one possible implementation, the allocation module is configured to:
and in response to receiving the storage space allocation request from the first process and the at least one storage space release request from the at least one second process at the same time, allocating a target storage space to the first process according to the space process mapping table after the identification information of the at least one second process is cleared.
In one possible implementation, the clearing module is configured to:
And responding to the received at least one storage space release request from at least one second process by a space release processing module, clearing the identification information of the at least one second process in the space process mapping table, and clearing the mapping relation between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table.
In one possible implementation, the allocation module is configured to:
And distributing a target storage space to the first process by a space request processing module according to the space process mapping table.
In one possible implementation, the allocation module is configured to:
And allocating a target storage space to the first process in response to the amount of unallocated storage in the spatial process map meeting the requirements of the storage allocation request from the first process.
In one possible implementation, the allocation module is configured to:
Responding to storage space allocation requests from different processes according to the order of priority from high to low;
Or alternatively
And simultaneously responding to the storage space allocation requests from different processes under the condition that the quantity of unallocated storage space in the space process mapping table is sufficient.
According to an aspect of the disclosure, an electronic device is provided, comprising one or more processors, a memory for storing executable instructions, wherein the one or more processors are configured to invoke the executable instructions stored by the memory to perform the above method.
According to an aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon computer program instructions which, when executed by a processor, implement the above-described method.
According to an aspect of the present disclosure, there is provided a computer program product comprising a computer readable code, or a non-transitory computer readable storage medium carrying computer readable code, which when run in an electronic device, a processor in the electronic device performs the above method.
In the embodiment of the disclosure, a target memory space is allocated to a first process according to a spatial process mapping table in response to receiving a memory space allocation request from the first process, where the spatial process mapping table is used to record a correspondence between a physical address of the memory space and identification information of the process, and in the address mapping table, record a mapping relationship between a logical address of the target memory space and the physical address, and update the spatial process mapping table, where the logical address of the memory space corresponding to the first process is continuous, the physical address of the memory space corresponding to the first process is allowed to be discontinuous, and the mapping relationship between the logical address and the physical address of the memory space of a different process is recorded in the same address mapping table, so that when allocating the memory space to the process, only whether the remaining memory space is sufficient (i.e., whether the number of remaining memory spaces meets the requirement of the process) needs to be considered, without requiring that the remaining memory space is continuous. In the embodiment of the disclosure, the storage space with discontinuous physical addresses (namely, fragmented storage space) can be mapped into the storage space with continuous logical addresses, so that the limited storage space can be maximally utilized, and the storage space can be efficiently and intensively managed in a multi-process environment.
In the embodiment of the disclosure, the mapping relation between the logical addresses and the physical addresses of the storage spaces of all processes is recorded through one address mapping table, and the mapping relation between the logical addresses and the physical addresses of the storage spaces of a plurality of processes is not required to be recorded through a plurality of address mapping tables, so that the storage space can be saved.
In addition, in the embodiment of the disclosure, the storage space can be allocated in response to multiple storage space allocation requests of the same process, so that the process can apply for the storage space for multiple times according to operation requirements, thereby being beneficial to improving the utilization rate of the storage 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 disclosure.
Other features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments, which proceeds with reference to the accompanying drawings.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the disclosure and together with the description, serve to explain the technical aspects of the disclosure.
Fig. 1 shows a flowchart of a storage space management method provided by an embodiment of the present disclosure.
Fig. 2 shows a schematic diagram of a storage space management apparatus provided by an embodiment of the present disclosure.
Fig. 3 is a schematic diagram illustrating a storage space allocation and release flow of a storage space management method according to an embodiment of the disclosure.
Fig. 4 shows a block diagram of a storage space management apparatus provided by an embodiment of the present disclosure.
Fig. 5 shows a block diagram of an electronic device 1900 provided by an embodiment of the disclosure.
Detailed Description
Various exemplary embodiments, features and aspects of the disclosure will be described in detail below with reference to the drawings. In the drawings, like reference numbers indicate identical or functionally similar elements. Although various aspects of the embodiments are illustrated in the accompanying drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The word "exemplary" is used herein to mean "serving as an example, embodiment, or illustration. Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
The term "and/or" is merely an association relationship describing the associated object, and means that three relationships may exist, for example, a and/or B may mean that a exists alone, while a and B exist together, and B exists alone. In addition, the term "at least one" herein means any one of a plurality or any combination of at least two of a plurality, for example, including at least one of A, B, C, may mean including any one or more elements selected from the group consisting of A, B and C.
Furthermore, numerous specific details are set forth in the following detailed description in order to provide a better understanding of the present disclosure. It will be understood by those skilled in the art that the present disclosure may be practiced without some of these specific details. In some instances, methods, means, elements, and circuits well known to those skilled in the art have not been described in detail in order not to obscure the present disclosure.
There are two ways of storage space management in the related art.
In a first mode, for space management of fragmentation, a space index of a storage space occupied by a data block in a storage device is obtained, wherein the storage space occupied by the data block comprises an occupied space of a data segment and at least two fragment free spaces isolated by the occupied space, space utilization state parameters of the storage space occupied by the data block are determined according to the space index, a target occupied space is determined from the occupied space according to the space index, and the fragment free spaces adjacent to the target occupied space are determined to be free spaces to be combined.
In a second way, storage unit management is performed using indexes, specifically, based on a space allocation request and an allocated number of storage unit indexes, one or more storage unit indexes are obtained by having an index generation module generate a storage unit index and/or read a storage unit index from a first storage area of a storage space via a second interface.
In the first mode, adjacent fragment spaces and read-out spaces can be merged and reassigned after target space data is read out. That is, in the first approach, it is still necessary to wait for the discontinuous fragmented space to be sorted into continuous space before being available. In the second approach, only one space allocation request or space release request can be processed at a time, and its spatial index still cannot solve the fragmentation problem, i.e. continuous storage space is still required.
In order to solve the technical problem similar to the above, the embodiments of the present disclosure provide a storage space management, by responding to a storage space allocation request from a first process, allocating a target storage space to the first process according to a space process mapping table, where the space process mapping table is used to record a correspondence between a physical address of the storage space and identification information of the process, and record a mapping relationship between a logical address and a physical address of the target storage space in an address mapping table, and update the space process mapping table, where the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be discontinuous, and the mapping relationship between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table, so that when allocating the storage space to a process, only whether the remaining storage space is sufficient (i.e., whether the number of the remaining storage spaces meets the requirement of the process) needs to be considered, without requiring the remaining storage space to be continuous. In the embodiment of the disclosure, the storage space with discontinuous physical addresses (namely, fragmented storage space) can be mapped into the storage space with continuous logical addresses, so that the limited storage space can be maximally utilized, and the storage space can be efficiently and intensively managed in a multi-process environment.
In the embodiment of the disclosure, the mapping relation between the logical addresses and the physical addresses of the storage spaces of all processes is recorded through one address mapping table, and the mapping relation between the logical addresses and the physical addresses of the storage spaces of a plurality of processes is not required to be recorded through a plurality of address mapping tables, so that the storage space can be saved.
In addition, in the embodiment of the disclosure, the storage space can be allocated in response to multiple storage space allocation requests of the same process, so that the process can apply for the storage space for multiple times according to operation requirements, thereby being beneficial to improving the utilization rate of the storage space.
The storage space management method provided by the embodiment of the present disclosure is described in detail below with reference to the accompanying drawings.
Fig. 1 shows a flowchart of a storage space management method provided by an embodiment of the present disclosure. In one possible implementation, the execution subject of the storage space management method may be a storage space management apparatus, for example, the storage space management method may be executed by a terminal device or a server or other electronic devices. The terminal device may be a User Equipment (UE), a mobile device, a User terminal, a cellular phone, a cordless phone, a Personal digital assistant (Personal DIGITAL ASSISTANT, PDA), a handheld device, a computing device, a vehicle mounted device, or a wearable device. In some possible implementations, the storage space management method may be implemented by a processor invoking computer readable instructions stored in a memory. As shown in fig. 1, the storage space management method includes steps S11 to S12.
In step S11, in response to receiving a storage space allocation request from a first process, a target storage space is allocated to the first process according to a spatial process mapping table, where the spatial process mapping table is used to record a correspondence between a physical address of the storage space and identification information of the process.
In step S12, in an address mapping table, a mapping relationship between a logical address and a physical address of the target storage space is recorded, and the space process mapping table is updated, wherein the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be discontinuous, and the mapping relationship between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table.
In the embodiment of the disclosure, the spatial process mapping table may record the physical address of each storage space. That is, the spatial process mapping table may record the physical addresses of unallocated memory as well as the physical addresses of allocated memory. For any storage space, if the storage space is occupied by any process, the identification information of the process occupying the storage space can be recorded in a space process mapping table. For any memory space, if the memory space is unoccupied (i.e., the memory space is not allocated), the identification information of the process corresponding to the memory space in the spatial process mapping table may be empty. Thus, the correspondence between the physical address of the storage space and the identification information of the process can be recorded by the space process mapping table. According to the space process mapping table, it can be determined whether each storage space is allocated or not, and the identification information of the corresponding process in the case that the storage space is allocated. From the spatial process map, it is also possible to determine the amount of unallocated memory, and in particular which memory is unallocated. The unallocated memory may also be referred to as free memory, i.e., memory that can be allocated. The allocated memory may also be referred to as occupied memory, non-free memory, etc., and is not limited herein.
In the disclosed embodiments, the spatial process mapping table may be initialized when the system begins to run.
In the disclosed embodiments, the storage allocation request may represent a request for requesting allocation of storage, i.e., the storage allocation request may be used for requesting allocation of storage. In one possible implementation, the memory allocation request may carry the amount of memory requested by the first process. In another possible implementation, the memory allocation request may not carry the amount of memory requested by the first process. In this implementation, a preset amount of memory space may be allocated to the first process.
In the embodiments of the present disclosure, a first process may represent any process, and hereinafter a second process is a different process from the first process, and a different second process is a different process.
In the embodiment of the disclosure, the target storage space may be allocated to the first process according to the spatial process mapping table. Wherein the target memory space may represent a memory space allocated to the first process in response to the memory space allocation request, i.e., the target memory space may represent a memory space allocated to the first process this time. Wherein the target storage space may include at least one storage space.
In one possible implementation manner, the allocating the target storage space to the first process according to the spatial process mapping table includes allocating the target storage space to the first process according to the spatial process mapping table and a spatial flag bit corresponding to the storage space in the spatial process mapping table, wherein the spatial flag bit is used for marking whether the storage space is allocated, and after the allocating the target storage space to the first process, the method further includes updating the spatial flag bit corresponding to the target storage space to a first preset value, wherein the first preset value indicates that the storage space is allocated.
In this implementation, whether storage space has been allocated may be marked by a space flag. The space flag bits may correspond to the storage spaces one by one, and the space flag bit corresponding to any storage space may be used to mark whether the storage space is allocated. If any space bit is a first preset value, the storage space corresponding to the space bit can be indicated to be allocated, and if any space bit is a second preset value, the storage space corresponding to the space bit can be indicated to be unallocated.
As an example of this implementation, the first preset value is 1 and the second preset value is 0.
As another example of this implementation, the first preset value is 0 and the second preset value is 1.
In this implementation manner, the target storage space is allocated to the first process according to the spatial process mapping table and the spatial flag bit corresponding to the storage space in the spatial process mapping table, the spatial flag bit is used for marking whether the storage space is allocated, and after the target storage space is allocated to the first process, the spatial flag bit corresponding to the target storage space is updated to the first preset value, so that the efficiency of storage space allocation can be improved through the spatial flag bit.
In one possible implementation, after the allocating the target storage space to the first process, the method further includes updating a process space counter corresponding to the first process according to the number of the target storage spaces.
In this implementation, the process space counters may be in one-to-one correspondence with processes. And a process space counter corresponding to any process can be used for recording the quantity of the storage space occupied by the process. That is, a process space counter corresponding to any process may be used to record the amount of memory space that has been allocated to that process. For example, a process space counter corresponding to the first process may be used to record the amount of storage space occupied by the first process.
If the value of the process space counter corresponding to the first process is 0 before the storage space allocation request from the first process is received, the updated value of the process space counter corresponding to the first process may be equal to the number of the target storage spaces, and if the value of the process space counter corresponding to the first process is n and n is greater than 0 before the storage space allocation request from the first process is received, the updated value of the process space counter corresponding to the first process may be equal to n+m, where m represents the number of the target storage spaces.
In this implementation manner, the process space counter corresponding to the first process is updated according to the number of the target storage spaces, so that the number of the storage spaces occupied by each process can be recorded through the process space counter corresponding to each process, and the number of the storage spaces occupied by each process can be obtained through the process space counter corresponding to each process. In addition, in this implementation, according to the process space counter corresponding to each process, the total amount of the storage space occupied by all the processes and the amount of the remaining storage space may also be determined.
In another possible implementation, the amount of memory occupied by each process may be recorded by a process space count table. In this implementation, the amount of memory occupied by each process may be recorded in the same process space count table.
In one possible implementation manner, the allocating the target storage space to the first process according to the spatial process mapping table includes allocating, by a spatial request processing module, the target storage space to the first process according to the spatial process mapping table.
As an example of this implementation, the idle request processing module may allocate a storage space to any process according to the amount of storage space requested by the storage space allocation request, the space process mapping table, and the space flag bit, and may update the space process mapping table, the space flag bit, the address mapping table, and the process space counter corresponding to the process in response to receiving the storage space allocation request from the process.
As one example of this implementation, the space release processing module may read, in response to receiving a storage allocation request from a first process, an amount of storage requested by the storage allocation request, a space process map, and a space flag bit. If the space release processing module does not receive the space release requests from other processes while receiving the space release request from the first process, the space release processing module may directly transfer the amount of the memory space requested by the space release request, the space process mapping table and the space flag bit to the space request processing module. If the space release processing module receives at least one memory release request from at least one second process while receiving a memory allocation request from a first process, the space release processing module may send the amount of memory requested by the memory allocation request and the updated space process mapping table and space flag bit to the space request processing module after processing the memory release request.
In this implementation manner, the space request processing module allocates the target storage space to the first process according to the space process mapping table, so that the allocation of the storage space can be realized through the space request processing module.
In one possible implementation, the allocating the target storage space to the first process according to the spatial process mapping table includes allocating the target storage space to the first process in response to the amount of unallocated storage space in the spatial process mapping table meeting the requirement of the storage space allocation request from the first process.
In this implementation, the amount of unallocated memory, and in particular which memory is unallocated, may be determined from a spatial process map. As an example of this implementation, the amount of unallocated memory in the spatial process map may be obtained from a free space counter.
In one possible implementation, memory allocation requests from different processes are responded to in a priority order from high to low.
In this implementation, the allocating the target storage space to the first process according to the spatial process mapping table may include allocating the target storage space to the first process when the storage space allocation request from the first process is a storage space allocation request with the highest priority and the number of unallocated storage spaces in the spatial process mapping table meets the requirement of the storage space allocation request from the first process.
In this implementation, the respective storage space allocation requests may be processed sequentially according to the order of priority from high to low. That is, only the storage allocation request with the highest priority may be responded to at a time.
In this implementation manner, in the case where the storage space allocation request of the first process is a storage space allocation request with the highest priority among the current storage space allocation requests, it may be further determined whether the number of unallocated storage spaces in the space process mapping table is greater than or equal to the number of storage spaces requested by the storage space allocation request of the first process. If the number of unallocated memory in the spatial process map is greater than or equal to the number of memory requested by the memory allocation request of the first process, the target memory may be allocated to the first process, and if the number of unallocated memory in the spatial process map is less than the number of memory requested by the memory allocation request of the first process, the other processes may wait for the memory to be released until the number of unallocated memory in the spatial process map is greater than or equal to the number of memory requested by the memory allocation request of the first process, and then allocate the target memory to the first process.
By adopting the implementation mode, the storage space allocation request can be processed based on the priority of the storage space allocation request, so that when a plurality of processes simultaneously request the storage space, the process with higher priority can be responded first.
In another possible implementation manner, if the number of unallocated storage spaces in the spatial process mapping table does not satisfy the number of storage spaces requested by the storage space allocation request with the highest priority, but satisfies the number of storage spaces requested by the storage space allocation request with the highest non-priority, the storage space allocation request with the highest non-priority may be responded first, that is, the storage space may be allocated to the process corresponding to the storage space allocation request with the highest non-priority first.
In one possible implementation, in case the amount of unallocated memory in the spatial process map is sufficient, memory allocation requests from different processes are responded to simultaneously. In this implementation, in the case where the amount of unallocated memory in the spatial process map is sufficient, multiple processes may be responded to simultaneously, i.e., memory may be allocated to multiple processes simultaneously.
In one possible implementation, in the case where the amount of unallocated memory in the spatial process map is less than the amount of memory requested by the memory allocation request of the first process, the memory allocation request may be temporarily unresponsive. And waiting for the other processes to release the storage space until the quantity of the unallocated storage space in the space process mapping table is greater than or equal to the quantity of the storage space requested by the storage space allocation request of the first process, and then allocating the target storage space to the first process.
In the embodiment of the disclosure, after the target storage space is allocated to the first process, the mapping relationship between the logical address and the physical address of the target storage space is recorded in the address mapping table, and the spatial process mapping table is updated. In the disclosed embodiments, each process may correspond to the same address mapping table. The address mapping table may be used to record the mapping relationship between the logical address and the physical address of the memory space of each process. By adopting the address mapping table, the mapping relation between the logical address and the physical address of the storage space occupied by each process can be recorded, so that the mapping relation between the logical address and the physical address of the storage space occupied by each process can be obtained according to the address mapping table. The mapping relation between the logical address and the physical address of the storage space is established through the address mapping table, so that the logical address is separated from the actual physical address, and the continuity requirement of the logical address can be met in the discrete storage space. In addition, the mapping relation between the logical addresses and the physical addresses of the storage spaces of all the processes is recorded through one address mapping table, and the mapping relation between the logical addresses and the physical addresses of the storage spaces of a plurality of processes is not required to be recorded through a plurality of address mapping tables, so that the storage space can be saved.
In one possible implementation manner, the method further comprises clearing identification information of at least one second process in the space process mapping table and clearing a mapping relation between a logical address and a physical address of a storage space corresponding to the at least one second process in the address mapping table in response to receiving at least one storage space release request from the at least one second process.
In this implementation, the storage release request may represent a request to request release of storage, i.e., the storage release request may be used to request release of storage.
In this implementation manner, in response to receiving a storage space release request from any second process, the identification information of the second process is cleared in the space process mapping table, so that the identification information of the process corresponding to the storage space originally occupied by the second process is null.
In this implementation, in response to receiving a storage space release request from any second process, the mapping relationship between the logical address and the physical address of the storage space corresponding to the second process may be cleared in the address mapping table. That is, in response to receiving a memory space release request from any second process, the mapping relationship between the logical address and the physical address of the memory space originally occupied by the second process may be cleared in the address mapping table.
In this implementation manner, by responding to the receiving of at least one memory space release request from at least one second process, clearing identification information of the at least one second process in the space process mapping table, and clearing mapping relation between logical addresses and physical addresses of memory spaces corresponding to the at least one second process in the address mapping table, whether each memory space is occupied by a process or not can be accurately determined through the space process mapping table, and identification information of a process occupying the memory space can be accurately determined through the address mapping table, and mapping relation between logical addresses and physical addresses of the memory spaces occupied by the process in the case that the process occupies the memory space can be accurately determined through the address mapping table.
In this implementation, the release of memory is also not limited by the continuity of the physical addresses of memory, and memory release requests for multiple processes may be responded to and processed simultaneously.
As an example of this implementation, the method further includes, in response to receiving at least one storage space release request from at least one second process, updating a space flag bit of a storage space corresponding to the at least one second process to a second preset value, where the second preset value indicates that the storage space is unallocated.
In this example, by updating the space flag bit of the storage space corresponding to the at least one second process to the second preset value in response to receiving the at least one storage space release request from the at least one second process, it is possible to accurately mark whether the storage space is free by the space flag bit.
As an example of this implementation, the method further comprises clearing at least one process space counter corresponding to at least one second process in response to receiving at least one memory space release request from the at least one second process.
In this example, the process space counter corresponding to any process may be cleared in response to receiving a memory space release request from the process, so that the amount of memory space occupied by the process can be accurately determined according to the process space counter corresponding to the process.
As one example of the implementation, the responding to the receiving of the at least one storage space release request from the at least one second process, clearing the identification information of the at least one second process in the space process mapping table, and clearing the mapping relation between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table comprises clearing the identification information of the at least one second process in the space process mapping table and clearing the mapping relation between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table by a space release processing module responding to the receiving of the at least one storage space release request from the at least one second process.
In this example, the space release processing module may, in response to receiving a storage space release request from any process, clear, in the space process mapping table, identification information of the process, and clear, in the address mapping table, a mapping relationship between a logical address and a physical address of a storage space corresponding to the process. By employing this example, the release of storage space can be achieved by the space release processing module.
As an example of this implementation, the allocating, in response to receiving a storage allocation request from a first process, a target storage space to the first process according to a spatial process mapping table includes allocating, in response to simultaneously receiving the storage allocation request from the first process and the at least one storage release request from the at least one second process, a target storage space to the first process according to the spatial process mapping table after clearing identification information of the at least one second process. In this example, the memory allocation request and the memory release request of the plurality of processes may be responded to at a time, and the memory allocation request and the memory release request of the plurality of processes may be processed at the same time. In addition, in this example, the storage space may be immediately recycled after being released.
In the embodiment of the present disclosure, when the first process needs to perform cache read-write, according to a logical address in an instruction or a program segment and a mapping relationship between the logical address and a physical address in a storage space occupied by the first process in an address mapping table, a physical address corresponding to the logical address in the instruction or the program segment is determined, and the physical address corresponding to the logical address in the instruction or the program segment is returned to the instruction or the program segment.
The storage space management method provided by the embodiment of the disclosure can be applied to the technical fields of processors, space fragmentation, address indexing, hardware circuits and the like, and is not limited herein.
The storage space management method provided by the embodiment of the present disclosure is described below through a specific application scenario.
Fig. 2 shows a schematic diagram of a storage space management apparatus provided by an embodiment of the present disclosure. As shown in fig. 2, the storage space management apparatus may include a space request processing module, a free space counter, a space release processing module, a process space counter, an address mapping table, a space process mapping table, and a space flag bit.
Wherein the process space counter may be in one-to-one correspondence with the process. And a process space counter corresponding to any process can be used for recording the number of the memory spaces currently occupied by the process. In the example shown in fig. 2, n+1 process space counters 0 to N corresponding to n+1 processes are included.
Each process may correspond to the same address mapping table. The address mapping table may be used to record the mapping relationship between the logical address and the physical address of the memory space of each process. By adopting the address mapping table, the conversion between the logical address and the physical address can be facilitated for other modules.
The spatial process mapping table may be used to record a correspondence between physical addresses of the storage space and identification information of the process.
The space flag bits may be in one-to-one correspondence with the storage spaces. Any space flag bit corresponding to a storage space can be used to mark whether the storage space is allocated.
The free space counter may calculate the number of free memory spaces (i.e., the number of unallocated memory spaces) based on the space flag bits corresponding to the respective memory spaces. In addition, the free space counter can also determine what free storage space is in each free storage space, so that the allocation of the storage space is facilitated. That is, for any free memory space, the free space counter may also determine the amount of free memory space between the first free memory space and that memory space.
The space release processing module may respond to a storage space release request from any process, clear the identification information of the process in a space process mapping table, update the space flag bit of the storage space corresponding to the process to 0, clear the mapping relationship between the logical address and the physical address of the storage space corresponding to the process in an address mapping table, and clear the process space counter corresponding to the process.
The space request processing module may allocate a storage space to any process according to the amount of the storage space requested by the storage space allocation request, the space process mapping table and the space flag bit in response to receiving the storage space allocation request from the process, and may update the space process mapping table, the space flag bit, the address mapping table and the process space counter corresponding to the process.
In this application scenario, the spatial process mapping table and the spatial flag bit may be read by the spatial release processing module in response to receiving a storage space allocation request from the first process. If the space release processing module does not receive the memory release requests from other processes while receiving the memory allocation requests from the first process, the space release processing module may directly transfer the space process mapping table and the space flag bit to the space request processing module. If the space release processing module receives at least one storage space release request from at least one second process while receiving the storage space allocation request from the first process, the space release processing module may send the updated space process mapping table and the space flag bit to the space request processing module after processing the storage space release request. The space request processing module may determine whether there is sufficient memory allocated to the first process by using the free space counter. If enough memory space exists, the memory space can be allocated to the first process, and the space process mapping table, the space flag bit, the address mapping table and the process space counter corresponding to the first process are updated.
Under the condition that the first process needs to perform cache reading and writing, according to the logical address in the instruction or the program section and the address mapping table, determining a physical address corresponding to the logical address in the instruction or the program section, and returning the physical address corresponding to the logical address in the instruction or the program section to the instruction or the program section.
Fig. 3 is a schematic diagram illustrating a storage space allocation and release flow of a storage space management method according to an embodiment of the disclosure. In fig. 3, a process space counter 1 represents a process space counter corresponding to a process 1, and a process space counter 2 represents a process space counter corresponding to a process 2.
In the example shown in fig. 3, the spatial process map includes 4 memory spaces. When the system starts to run, the identification information of the processes corresponding to the 4 storage spaces in the space process mapping table is empty, and the space flag bits of the 4 storage spaces are 0. For example, the physical addresses of the 4 storage spaces are physical address 1, physical address 2, physical address 3, and physical address 4 in this order from bottom to top.
In response to receiving a storage allocation request from process 1, a storage corresponding to physical address 1 and a storage corresponding to physical address 2 may be allocated to process 1 according to the amount of storage 2 requested by the storage allocation request. The spatial process mapping table may update the identification information of the process corresponding to the storage space corresponding to the physical address 1 to 1, and update the identification information of the process corresponding to the storage space corresponding to the physical address 2 to 1. The space flag bit of the storage space corresponding to the physical address 1 and the storage space corresponding to the physical address 2 may be updated to 1. The mapping relationship between the logical address 1 and the physical address 1 of the process 1 and the mapping relationship between the logical address 2 and the physical address 2 of the process 1 may be recorded in the address mapping table. The value of the process space counter 1 may be updated to 2.
In response to receiving a memory allocation request from process 2, memory corresponding to physical address 3 may be allocated to process 2 according to the amount of memory 1 requested by the memory allocation request. The identification information of the process corresponding to the storage space corresponding to the physical address 3 may be updated to 2 in the spatial process mapping table. The space flag bit of the storage space corresponding to the physical address 3 may be updated to 1. The mapping relationship between logical address 1 and physical address 3 of process 2 may be recorded in an address mapping table. The value of the process space counter 2 may be updated to 1.
In response to receiving a memory allocation request from process 1, memory corresponding to physical address 4 may be allocated to process 1 according to the amount of memory 1 requested by the memory allocation request. The identification information of the process corresponding to the storage space corresponding to the physical address 4 may be updated to 1 in the spatial process mapping table. The space flag bit of the storage space corresponding to the physical address 4 may be updated to 1. The mapping relationship between logical address 3 and physical address 4 of process 1 may be recorded in an address mapping table. The value of the process space counter 1 may be updated to 3.
In response to receiving the memory space release request from the process 1, the identification information of the processes corresponding to the physical address 1, the physical address 2 and the physical address 4 in the spatial process mapping table is cleared, and the spatial flag bits corresponding to the physical address 1, the physical address 2 and the physical address 4 are updated to 0. The mapping relationship between the logical address 1 and the physical address 1 of the process 1, the mapping relationship between the logical address 2 and the physical address 2 of the process 1, and the mapping relationship between the logical address 3 and the physical address 4 of the process 1 may be cleared in the address mapping table. The process space counter 1 may be cleared.
The identifying information of the process corresponding to the physical address 3 in the spatial process mapping table may be cleared in response to receiving the memory space release request from the process 2, and the spatial flag bit corresponding to the physical address 3 may be updated to 0. The mapping relationship between logical address 1 and physical address 3 of process 2 may be cleared in the address mapping table. The process space counter 2 may be cleared.
It will be appreciated that the above-mentioned method embodiments of the present disclosure may be combined with each other to form a combined embodiment without departing from the principle logic, and are limited to the description of the present disclosure. It will be appreciated by those skilled in the art that in the above-described methods of the embodiments, the particular order of execution of the steps should be determined by their function and possible inherent logic.
In addition, the disclosure further provides a storage space management device, an electronic device, a computer readable storage medium, and a computer program product, where the foregoing may be used to implement any one of the storage space management methods provided in the disclosure, and corresponding technical schemes and technical effects may be referred to corresponding descriptions in the method section and are not repeated.
Fig. 4 shows a block diagram of a storage space management apparatus provided by an embodiment of the present disclosure. As shown in fig. 4, the storage space management apparatus includes:
An allocation module 41, configured to allocate a target storage space to a first process according to a spatial process mapping table in response to receiving a storage space allocation request from the first process, where the spatial process mapping table is used to record a correspondence between a physical address of the storage space and identification information of the process;
The recording and updating module 42 is configured to record, in an address mapping table, a mapping relationship between a logical address and a physical address of the target storage space, and update the space process mapping table, where the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be discontinuous, and the mapping relationship between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table.
In one possible implementation of the present invention,
The allocation module 41 is configured to allocate a target storage space to the first process according to a spatial process mapping table and a spatial flag bit corresponding to a storage space in the spatial process mapping table, where the spatial flag bit is used to mark whether the storage space is allocated;
the device further comprises a first updating module, wherein the first updating module is used for updating the space zone bit corresponding to the target storage space into a first preset value, and the first preset value indicates that the storage space is allocated.
In one possible implementation, the apparatus further includes:
and the second updating module is used for updating the process space counter corresponding to the first process according to the number of the target storage spaces.
In one possible implementation, the apparatus further includes:
And the clearing module is used for responding to the received at least one storage space release request from at least one second process, clearing the identification information of the at least one second process in the space process mapping table, and clearing the mapping relation between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table.
In one possible implementation, the apparatus further includes:
And the third updating module is used for updating the space zone bit of the storage space corresponding to the at least one second process to a second preset value in response to receiving at least one storage space release request from the at least one second process, wherein the second preset value indicates that the storage space is not allocated.
In one possible implementation, the apparatus further includes:
And the zero clearing module is used for clearing at least one process space counter corresponding to the at least one second process in response to receiving at least one storage space release request from the at least one second process.
In one possible implementation, the allocation module 41 is configured to:
and in response to receiving the storage space allocation request from the first process and the at least one storage space release request from the at least one second process at the same time, allocating a target storage space to the first process according to the space process mapping table after the identification information of the at least one second process is cleared.
In one possible implementation, the clearing module is configured to:
And responding to the received at least one storage space release request from at least one second process by a space release processing module, clearing the identification information of the at least one second process in the space process mapping table, and clearing the mapping relation between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table.
In one possible implementation, the allocation module 41 is configured to:
And distributing a target storage space to the first process by a space request processing module according to the space process mapping table.
In one possible implementation, the allocation module 41 is configured to:
And allocating a target storage space to the first process in response to the amount of unallocated storage in the spatial process map meeting the requirements of the storage allocation request from the first process.
In one possible implementation, the allocation module 41 is configured to:
Responding to storage space allocation requests from different processes according to the order of priority from high to low;
Or alternatively
And simultaneously responding to the storage space allocation requests from different processes under the condition that the quantity of unallocated storage space in the space process mapping table is sufficient.
The embodiment of the disclosure also provides a storage space management device, which comprises a space process mapping table, a space request processing module and an address mapping table;
The space process mapping table is used for recording the corresponding relation between the physical address of the storage space and the identification information of the process;
The space request processing module is used for responding to a storage space allocation request received from a first process and allocating a target storage space to the first process according to the space process mapping table;
The address mapping table is used for recording the mapping relation between the logical address and the physical address of the storage space of each process, including recording the mapping relation between the logical address and the physical address of the target storage space;
the logical addresses of the storage spaces corresponding to the first process are continuous, the physical addresses of the storage spaces corresponding to the first process are allowed to be discontinuous, and the mapping relations between the logical addresses and the physical addresses of the storage spaces of different processes are recorded in the same address mapping table.
In one possible implementation of the present invention,
The storage space management device also comprises space flag bits, a plurality of storage space management units and a plurality of storage space management units, wherein the space flag bits are in one-to-one correspondence with the storage spaces and are used for marking whether the corresponding storage spaces are allocated or not;
The space request processing module is specifically configured to allocate a target storage space to the first process according to a space process mapping table and a space flag bit corresponding to a storage space in the space process mapping table, and update the space flag bit corresponding to the target storage space to a first preset value, where the first preset value indicates that the storage space is allocated.
In one possible implementation of the present invention,
The storage space management device also comprises a process space counter corresponding to the processes one by one and used for recording the number of the storage spaces currently occupied by the corresponding processes;
The space request processing module is further used for updating a process space counter corresponding to the first process according to the number of the target storage spaces.
In one possible implementation of the present invention,
The memory space management device further comprises a space release processing module, a memory space management module and a memory space management module, wherein the space release processing module is used for responding to at least one memory space release request from at least one second process, clearing identification information of the at least one second process in the space process mapping table, and clearing mapping relation between a logical address and a physical address of a memory space corresponding to the at least one second process in the address mapping table.
In one possible implementation, the space release processing module is further configured to:
And in response to receiving at least one storage space release request from at least one second process, updating the space flag bit of the storage space corresponding to the at least one second process to a second preset value, wherein the second preset value indicates that the storage space is not allocated.
In one possible implementation, the space release processing module is further configured to:
In response to receiving at least one memory release request from at least one second process, at least one process space counter corresponding to the at least one second process is cleared.
In one possible implementation manner, the space request processing module is specifically configured to:
and in response to receiving the storage space allocation request from the first process and the at least one storage space release request from the at least one second process at the same time, allocating a target storage space to the first process according to the space process mapping table after the identification information of the at least one second process is cleared.
In one possible implementation manner, the space request processing module is specifically configured to:
Responding to storage space allocation requests from different processes according to the order of priority from high to low;
Or alternatively
And simultaneously responding to the storage space allocation requests from different processes under the condition that the quantity of unallocated storage space in the space process mapping table is sufficient.
In one possible implementation, the apparatus further includes:
and the free space counter is used for calculating the number of the free storage spaces according to the space flag bits corresponding to the storage spaces.
In some embodiments, functions or modules included in an apparatus provided by the embodiments of the present disclosure may be used to perform a method described in the foregoing method embodiments, and specific implementation and technical effects of the functions or modules may refer to the descriptions of the foregoing method embodiments, which are not repeated herein for brevity.
The embodiment of the disclosure also provides a storage space management device, wherein the cache managed by the storage space management device is realized based on a general memory of a processor, and the interfaces accessed by the storage space management device comprise one or more space request interfaces, one or more space release interfaces and one or more logic address and physical address conversion interfaces. The space request interface is used for processing the storage space allocation request, the space release interface is used for processing the storage space release request, and the conversion interface is used for converting between a logical address and a physical address.
The disclosed embodiments also provide a computer readable storage medium having stored thereon computer program instructions which, when executed by a processor, implement the above-described method. Wherein the computer readable storage medium may be a non-volatile computer readable storage medium or may be a volatile computer readable storage medium.
The disclosed embodiments also propose a computer program comprising computer readable code which, when run in an electronic device, causes a processor in the electronic device to carry out the above method.
Embodiments of the present disclosure also provide a computer program product comprising computer readable code, or a non-transitory computer readable storage medium carrying computer readable code, which when run in an electronic device, causes a processor in the electronic device to perform the above method.
The embodiment of the disclosure also provides electronic equipment, which comprises one or more processors and a memory for storing executable instructions, wherein the one or more processors are configured to call the executable instructions stored in the memory to execute the method.
The electronic device may be provided as a terminal, server or other form of device.
Fig. 5 shows a block diagram of an electronic device 1900 provided by an embodiment of the disclosure. For example, electronic device 1900 may be provided as a server or a terminal. Referring to FIG. 5, electronic device 1900 includes a processing component 1922 that further includes one or more processors and memory resources represented by memory 1932 for storing instructions, such as application programs, that can be executed by processing component 1922. The application programs stored in memory 1932 may include one or more modules each corresponding to a set of instructions. Further, processing component 1922 is configured to execute instructions to perform the methods described above.
The electronic device 1900 may also include a power component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input/output interface 1958 (I/O interface). The electronic device 1900 may operate based on an operating system stored in memory 1932, such as the Microsoft Server operating system (Windows Server TM), the apple Inc. promoted graphical user interface-based operating system (Mac OS X TM), the multi-user, multi-process computer operating system (Unix TM), the free and open source Unix-like operating system (Linux TM), the open source Unix-like operating system (FreeBSD TM), or the like.
In an exemplary embodiment, a non-transitory computer readable storage medium is also provided, such as memory 1932, including computer program instructions executable by processing component 1922 of electronic device 1900 to perform the methods described above.
The present disclosure may be a system, method, and/or computer program product. The computer program product may include a computer readable storage medium having computer readable program instructions embodied thereon for causing a processor to implement aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium include a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical encoding device, punch cards or intra-groove protrusion structures such as those having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media, as used herein, are not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses through fiber optic cables), or electrical signals transmitted through wires.
The computer readable program instructions described herein may be downloaded from a computer readable storage medium to a respective computing/processing device or to an external computer or external storage device over a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmissions, wireless transmissions, routers, firewalls, switches, gateway computers and/or edge servers. The network interface card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in the respective computing/processing device.
The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as SMALLTALK, C ++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present disclosure are implemented by personalizing electronic circuitry, such as programmable logic circuitry, field Programmable Gate Arrays (FPGAs), or Programmable Logic Arrays (PLAs), with state information of computer readable program instructions, which can execute the computer readable program instructions.
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable medium having the instructions stored therein includes an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The computer program product may be realized in particular by means of hardware, software or a combination thereof. In an alternative embodiment, the computer program product is embodied as a computer storage medium, and in another alternative embodiment, the computer program product is embodied as a software product, such as a software development kit (Software Development Kit, SDK), or the like.
The foregoing description of various embodiments is intended to highlight differences between the various embodiments, which may be the same or similar to each other by reference, and is not repeated herein for the sake of brevity.
If the technical scheme of the embodiment of the disclosure relates to personal information, the product applying the technical scheme of the embodiment of the disclosure clearly informs the personal information processing rule and obtains personal independent consent before processing the personal information. If the technical solution of the embodiment of the present disclosure relates to sensitive personal information, the product applying the technical solution of the embodiment of the present disclosure obtains individual consent before processing the sensitive personal information, and simultaneously meets the requirement of "explicit consent". For example, a clear and obvious mark is set at a personal information acquisition device such as a camera to inform that the personal information acquisition range is entered, personal information is acquired, if the personal voluntarily enters the acquisition range, the personal information is considered as consent to acquire the personal information, or if a clear mark/information is used on a personal information processing device to inform that the personal information processing rule is used, personal authorization is obtained through popup information or a mode of requesting the personal information to upload the personal information by the personal, wherein the personal information processing rule can comprise information such as a personal information processor, a personal information processing purpose, a processing mode, a processed personal information type and the like.
The foregoing description of the embodiments of the present disclosure has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the various embodiments described. The terminology used herein was chosen in order to best explain the principles of the embodiments, the practical application, or the improvement of technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Claims (17)

1.一种存储空间管理方法,其特征在于,包括:1. A storage space management method, comprising: 响应于接收到来自于第一进程的存储空间分配请求,根据空间进程映射表以及所述空间进程映射表中的存储空间对应的空间标志位,向所述第一进程分配目标存储空间,其中,所述空间进程映射表用于记录存储空间的物理地址与进程的标识信息之间的对应关系;In response to receiving a storage space allocation request from a first process, allocating a target storage space to the first process according to a space process mapping table and a space flag bit corresponding to the storage space in the space process mapping table, wherein the space process mapping table is used to record a correspondence between a physical address of the storage space and identification information of the process; 在地址映射表中,记录所述目标存储空间的逻辑地址与物理地址之间的映射关系,并将所述空间进程映射表中所述目标存储空间对应的空间标志位更新为第一预设值;其中,所述第一预设值表示存储空间已分配,所述第一进程对应的存储空间的逻辑地址连续,所述第一进程对应的存储空间的物理地址允许非连续,且不同进程的存储空间的逻辑地址与物理地址之间的映射关系记录在同一所述地址映射表中。In the address mapping table, the mapping relationship between the logical address and the physical address of the target storage space is recorded, and the space flag corresponding to the target storage space in the space process mapping table is updated to a first preset value; wherein, the first preset value indicates that the storage space has been allocated, the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be non-continuous, and the mapping relationship between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table. 2.根据权利要求1所述的方法,其特征在于,在所述向所述第一进程分配目标存储空间之后,所述方法还包括:2. The method according to claim 1, characterized in that after allocating the target storage space to the first process, the method further comprises: 根据所述目标存储空间的数量,更新所述第一进程对应的进程空间计数器。According to the amount of the target storage space, a process space counter corresponding to the first process is updated. 3.根据权利要求1至2中任意一项所述的方法,其特征在于,所述方法还包括:3. The method according to any one of claims 1 to 2, characterized in that the method further comprises: 响应于接收到来自于至少一个第二进程的至少一个存储空间释放请求,在所述空间进程映射表中,清除所述至少一个第二进程的标识信息,并在所述地址映射表中,清除所述至少一个第二进程对应的存储空间的逻辑地址与物理地址之间的映射关系。In response to receiving at least one storage space release request from at least one second process, the identification information of the at least one second process is cleared in the space process mapping table, and the mapping relationship between the logical address and the physical address of the storage space corresponding to the at least one second process is cleared in the address mapping table. 4.根据权利要求3所述的方法,其特征在于,所述方法还包括:4. The method according to claim 3, characterized in that the method further comprises: 响应于接收到来自于至少一个第二进程的至少一个存储空间释放请求,将所述至少一个第二进程对应的存储空间的空间标志位更新为第二预设值,其中,所述第二预设值表示存储空间未分配。In response to receiving at least one storage space release request from at least one second process, a space flag bit of the storage space corresponding to the at least one second process is updated to a second preset value, wherein the second preset value indicates that the storage space is not allocated. 5.根据权利要求3所述的方法,其特征在于,所述方法还包括:5. The method according to claim 3, characterized in that the method further comprises: 响应于接收到来自于至少一个第二进程的至少一个存储空间释放请求,将所述至少一个第二进程对应的至少一个进程空间计数器清零。In response to receiving at least one storage space release request from at least one second process, at least one process space counter corresponding to the at least one second process is cleared. 6.根据权利要求3所述的方法,其特征在于,所述响应于接收到来自于第一进程的存储空间分配请求,根据空间进程映射表,向所述第一进程分配目标存储空间,包括:6. The method according to claim 3, wherein in response to receiving a storage space allocation request from a first process, allocating a target storage space to the first process according to a space-process mapping table comprises: 响应于同时接收到来自于所述第一进程的所述存储空间分配请求以及来自于所述至少一个第二进程的所述至少一个存储空间释放请求,根据清除所述至少一个第二进程的标识信息后的所述空间进程映射表,向所述第一进程分配目标存储空间。In response to simultaneously receiving the storage space allocation request from the first process and the at least one storage space release request from the at least one second process, the target storage space is allocated to the first process according to the space process mapping table after clearing the identification information of the at least one second process. 7.根据权利要求3所述的方法,其特征在于,所述响应于接收到来自于至少一个第二进程的至少一个存储空间释放请求,在所述空间进程映射表中,清除所述至少一个第二进程的标识信息,并在所述地址映射表中,清除所述至少一个第二进程对应的存储空间的逻辑地址与物理地址之间的映射关系,包括:7. The method according to claim 3, characterized in that, in response to receiving at least one storage space release request from at least one second process, clearing identification information of the at least one second process in the space-process mapping table, and clearing a mapping relationship between a logical address and a physical address of a storage space corresponding to the at least one second process in the address mapping table, comprises: 通过空间释放处理模块响应于接收到来自于至少一个第二进程的至少一个存储空间释放请求,在所述空间进程映射表中,清除所述至少一个第二进程的标识信息,并在所述地址映射表中,清除所述至少一个第二进程对应的存储空间的逻辑地址与物理地址之间的映射关系。In response to receiving at least one storage space release request from at least one second process, the space release processing module clears the identification information of the at least one second process in the space process mapping table, and clears the mapping relationship between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table. 8.根据权利要求1或2所述的方法,其特征在于,所述根据空间进程映射表,向所述第一进程分配目标存储空间,包括:8. The method according to claim 1 or 2, characterized in that allocating target storage space to the first process according to the space-process mapping table comprises: 通过空间请求处理模块根据空间进程映射表,向所述第一进程分配目标存储空间。The target storage space is allocated to the first process according to the space process mapping table through the space request processing module. 9.根据权利要求1或2所述的方法,其特征在于,所述根据空间进程映射表,向所述第一进程分配目标存储空间,包括:9. The method according to claim 1 or 2, characterized in that allocating target storage space to the first process according to the space-process mapping table comprises: 响应于空间进程映射表中未分配的存储空间的数量满足来自于所述第一进程的所述存储空间分配请求的要求,向所述第一进程分配目标存储空间。In response to the amount of unallocated storage space in the space process mapping table satisfying the storage space allocation request from the first process, a target storage space is allocated to the first process. 10.根据权利要求1或2所述的方法,其特征在于,10. The method according to claim 1 or 2, characterized in that: 根据优先级从高到低的顺序对来自于不同进程的存储空间分配请求进行响应;Respond to storage space allocation requests from different processes in descending order of priority; 或者,or, 在所述空间进程映射表中未分配的存储空间的数量充足的情况下,同时响应来自于不同进程的存储空间分配请求。When the amount of unallocated storage space in the space process mapping table is sufficient, storage space allocation requests from different processes are responded to simultaneously. 11.一种存储空间管理装置,其特征在于,包括空间进程映射表、空间请求处理模块和地址映射表;11. A storage space management device, characterized by comprising a space process mapping table, a space request processing module and an address mapping table; 所述空间进程映射表用于:记录存储空间的物理地址与进程的标识信息之间的对应关系;The space process mapping table is used to: record the correspondence between the physical address of the storage space and the identification information of the process; 空间标志位,与存储空间一一对应,用于标记对应的存储空间是否已分配;The space flag bit corresponds to the storage space one by one and is used to mark whether the corresponding storage space has been allocated; 所述空间请求处理模块用于:响应于接收到来自于第一进程的存储空间分配请求,根据所述空间进程映射表以及所述空间进程映射表中的存储空间对应的空间标志位,向所述第一进程分配目标存储空间,并将所述目标存储空间对应的空间标志位更新为第一预设值,其中,所述第一预设值表示存储空间已分配;The space request processing module is used to: in response to receiving a storage space allocation request from a first process, allocate a target storage space to the first process according to the space process mapping table and the space flag corresponding to the storage space in the space process mapping table, and update the space flag corresponding to the target storage space to a first preset value, wherein the first preset value indicates that the storage space has been allocated; 所述地址映射表用于:记录各个进程的存储空间的逻辑地址与物理地址之间的映射关系,包括记录所述目标存储空间的逻辑地址与物理地址之间的映射关系;The address mapping table is used to: record the mapping relationship between the logical address and the physical address of the storage space of each process, including recording the mapping relationship between the logical address and the physical address of the target storage space; 其中,所述第一进程对应的存储空间的逻辑地址连续,所述第一进程对应的存储空间的物理地址允许非连续,且不同进程的存储空间的逻辑地址与物理地址之间的映射关系记录在同一所述地址映射表中。Among them, the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be non-continuous, and the mapping relationship between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table. 12.根据权利要求11所述的装置,其特征在于,12. The device according to claim 11, characterized in that 所述存储空间管理装置还包括:与进程一一对应的进程空间计数器,用于记录对应的进程当前所占的存储空间的数量;The storage space management device further includes: a process space counter corresponding to each process one by one, used to record the amount of storage space currently occupied by the corresponding process; 所述空间请求处理模块还用于:根据所述目标存储空间的数量,更新所述第一进程对应的进程空间计数器。The space request processing module is further used to: update a process space counter corresponding to the first process according to the amount of the target storage space. 13.根据权利要求11或12所述的装置,其特征在于,13. The device according to claim 11 or 12, characterized in that 所述存储空间管理装置还包括:空间释放处理模块,用于响应于接收到来自于至少一个第二进程的至少一个存储空间释放请求,在所述空间进程映射表中,清除所述至少一个第二进程的标识信息,并在所述地址映射表中,清除所述至少一个第二进程对应的存储空间的逻辑地址与物理地址之间的映射关系。The storage space management device also includes: a space release processing module, which is used to respond to receiving at least one storage space release request from at least one second process, clear the identification information of the at least one second process in the space process mapping table, and clear the mapping relationship between the logical address and the physical address of the storage space corresponding to the at least one second process in the address mapping table. 14.根据权利要求11所述的装置,其特征在于,所述装置还包括:14. The device according to claim 11, characterized in that the device further comprises: 空闲空间计数器,用于根据各个存储空间对应的空间标志位,计算空闲的存储空间的数量。The free space counter is used to calculate the amount of free storage space according to the space flag bits corresponding to each storage space. 15.一种存储空间管理装置,其特征在于,包括:15. A storage space management device, comprising: 分配模块,用于响应于接收到来自于第一进程的存储空间分配请求,根据空间进程映射表以及所述空间进程映射表中的存储空间对应的空间标志位,向所述第一进程分配目标存储空间,其中,所述空间进程映射表用于记录存储空间的物理地址与进程的标识信息之间的对应关系;an allocation module, configured to allocate a target storage space to the first process in response to receiving a storage space allocation request from the first process, according to a space process mapping table and a space flag bit corresponding to the storage space in the space process mapping table, wherein the space process mapping table is used to record a correspondence between a physical address of the storage space and identification information of the process; 记录及更新模块,用于在地址映射表中,记录所述目标存储空间的逻辑地址与物理地址之间的映射关系,并将所述空间进程映射表中所述目标存储空间对应的空间标志位更新为第一预设值;其中,所述第一预设值表示存储空间已分配,所述第一进程对应的存储空间的逻辑地址连续,所述第一进程对应的存储空间的物理地址允许非连续,且不同进程的存储空间的逻辑地址与物理地址之间的映射关系记录在同一所述地址映射表中。A recording and updating module is used to record the mapping relationship between the logical address and the physical address of the target storage space in the address mapping table, and update the space flag corresponding to the target storage space in the space process mapping table to a first preset value; wherein the first preset value indicates that the storage space has been allocated, the logical address of the storage space corresponding to the first process is continuous, the physical address of the storage space corresponding to the first process is allowed to be non-continuous, and the mapping relationship between the logical address and the physical address of the storage space of different processes is recorded in the same address mapping table. 16.一种电子设备,其特征在于,包括:16. An electronic device, comprising: 一个或多个处理器;one or more processors; 用于存储可执行指令的存储器;a memory for storing executable instructions; 其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行权利要求1至10中任意一项所述的方法。The one or more processors are configured to call the executable instructions stored in the memory to execute the method according to any one of claims 1 to 10. 17.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至10中任意一项所述的方法。17. A computer-readable storage medium having computer program instructions stored thereon, wherein the computer program instructions, when executed by a processor, implement the method of any one of claims 1 to 10.
CN202311868637.8A 2023-12-28 2023-12-28 Storage space management method, device, electronic device and storage medium Active CN117785732B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311868637.8A CN117785732B (en) 2023-12-28 2023-12-28 Storage space management method, device, electronic device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311868637.8A CN117785732B (en) 2023-12-28 2023-12-28 Storage space management method, device, electronic device and storage medium

Publications (2)

Publication Number Publication Date
CN117785732A CN117785732A (en) 2024-03-29
CN117785732B true CN117785732B (en) 2025-02-28

Family

ID=90384915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311868637.8A Active CN117785732B (en) 2023-12-28 2023-12-28 Storage space management method, device, electronic device and storage medium

Country Status (1)

Country Link
CN (1) CN117785732B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196757A (en) * 2019-05-31 2019-09-03 龙芯中科技术有限公司 TLB filling method, device and the storage medium of virtual machine
CN111813710A (en) * 2020-09-11 2020-10-23 鹏城实验室 Avoid Linux Kernel Memory Fragmentation Methods, Devices and Computer Storage Media

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943283B2 (en) * 2012-08-31 2015-01-27 International Business Machines Corporation Converting a first address mapping function for mapping addresses to storage locations to a second address mapping function
US9671971B2 (en) * 2015-03-27 2017-06-06 Intel Corporation Managing prior versions of data for logical addresses in a storage device
CN106547701B (en) * 2015-09-17 2020-01-10 慧荣科技股份有限公司 Memory device and data reading method
CN111061655B (en) * 2017-12-28 2022-06-17 贵阳忆芯科技有限公司 Address translation method and device for storage device
KR20200032404A (en) * 2018-09-18 2020-03-26 에스케이하이닉스 주식회사 Data Storage Device and Operation Method Thereof, Storage System Having the Same
CN112527197A (en) * 2020-12-09 2021-03-19 北京握奇智能科技有限公司 Smart card fragment storage space arrangement method, smart card and system
US12124365B2 (en) * 2021-05-05 2024-10-22 Micron Technology, Inc. Data organization for logical to physical table compression
CN116225974B (en) * 2021-12-03 2024-08-27 华为技术有限公司 Memory management method and device
CN116483738B (en) * 2023-06-20 2023-09-05 苏州浪潮智能科技有限公司 Data access method and device, storage medium and electronic device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196757A (en) * 2019-05-31 2019-09-03 龙芯中科技术有限公司 TLB filling method, device and the storage medium of virtual machine
CN111813710A (en) * 2020-09-11 2020-10-23 鹏城实验室 Avoid Linux Kernel Memory Fragmentation Methods, Devices and Computer Storage Media

Also Published As

Publication number Publication date
CN117785732A (en) 2024-03-29

Similar Documents

Publication Publication Date Title
CN107870728B (en) Method and apparatus for moving data
US9998531B2 (en) Computer-based, balanced provisioning and optimization of data transfer resources for products and services
WO2017107414A1 (en) File operation method and device
CN112148467B (en) Dynamic allocation of computing resources
US9213560B2 (en) Affinity of virtual processor dispatching
CN113032088B (en) Dirty page recording method, device, electronic equipment and computer readable medium
CN116633900A (en) Logical address allocation method, device, electronic device and storage medium
CN115599707B (en) Memory management method, device, medium and electronic device
CN112148465A (en) Resource allocation method and device, electronic equipment and storage medium
US20160352821A1 (en) Method and system for allocating resources for virtual hosts
US9389997B2 (en) Heap management using dynamic memory allocation
CN111104347B (en) Heap memory block searching method, device, equipment and storage medium
CN111163186B (en) ID generation method, device, equipment and storage medium
US10237233B2 (en) Allocating identifiers with minimal fragmentation
KR20110069718A (en) Server resource allocation
CN117785732B (en) Storage space management method, device, electronic device and storage medium
CN117743203B (en) Storage space management method, storage space management device, electronic equipment and storage medium
CN117640271A (en) Data broadcasting device and system
CN113485835B (en) Method, system, equipment and medium for realizing memory sharing under multiple scenes
CN111782268A (en) Method, apparatus, device and computer readable medium for allocating hardware resources
CN117539636B (en) Memory management method, device, electronic device and storage medium of bus module
US20250224998A1 (en) Zone assignment for hosts in distributed computing
US20240403134A1 (en) Dynamic assignment of device queues to virtual functions to provide to virtual machines
CN112882820B (en) Method and device for configuring resources
CN115480879A (en) Method, device and equipment for creating name space

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
GR01 Patent grant
GR01 Patent grant