CN115658327A - Device and method for managing storage space, computing equipment and chip - Google Patents

Device and method for managing storage space, computing equipment and chip Download PDF

Info

Publication number
CN115658327A
CN115658327A CN202211561698.5A CN202211561698A CN115658327A CN 115658327 A CN115658327 A CN 115658327A CN 202211561698 A CN202211561698 A CN 202211561698A CN 115658327 A CN115658327 A CN 115658327A
Authority
CN
China
Prior art keywords
index
space
storage unit
storage
allocated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211561698.5A
Other languages
Chinese (zh)
Other versions
CN115658327B (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 Threads Technology Co Ltd
Original Assignee
Moore Threads Technology 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 Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202211561698.5A priority Critical patent/CN115658327B/en
Publication of CN115658327A publication Critical patent/CN115658327A/en
Application granted granted Critical
Publication of CN115658327B publication Critical patent/CN115658327B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The disclosure discloses an apparatus, a method, a computing device and a chip for managing storage space. The device comprises: a request source interface connected to an external request source and configured to receive a space management request from the external request source; the index memory is configured to store one or more storage unit indexes, wherein each storage unit index is used for representing a storage unit with a preset size in the storage space; a space management module configured to manage the storage unit index in the index storage according to the space management request. By the scheme, the read-write path of the storage unit index is favorably shortened, and the space management efficiency is improved.

Description

Device and method for managing storage space, computing equipment and chip
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to an apparatus for managing a storage space, a computing device, a method for managing a storage space, and a chip.
Background
With the development of computer technology, more and more various computing devices appear in life, work and study of people. Generally, in these computing devices, there are various forms of processors, controllers, or microcontrollers that require a certain amount of space from memory when running an application to perform a certain function, and the corresponding space can be freed when the application is finished running. This involves managing the memory space.
At present, the management of the memory space is generally realized by a software manner, that is, a CPU (central processing Unit) or an MCU (micro controller Unit) runs a memory management policy, and sends an instruction, and then a hardware system processes the instruction, and then a bus is used to realize the read-write operation of the memory. In the memory management scheme implemented by software, the problems of long path, high delay, complex structure and the like generally exist.
Disclosure of Invention
In view of the above, the present disclosure provides an apparatus for managing memory space, a method for managing memory space, a computing device and a chip, which may alleviate, alleviate or even eliminate the above-mentioned problems.
According to an aspect of the present disclosure, there is provided an apparatus for managing a storage space, including: a request source interface connected to an external request source and configured to receive a space management request from the external request source; the index memory is configured to store one or more storage unit indexes, wherein each storage unit index is used for representing a storage unit with a preset size in the storage space; a space management module configured to manage the storage unit index in the index storage according to the space management request.
In some embodiments, the index store comprises an index store queue.
In some embodiments, the space management request comprises a space allocation request and a space reclamation request, and the space management module comprises: a space allocation module configured to: allocating at least one storage unit index to an external request source according to the size of the space requested to be allocated by the space allocation request; a space reclamation module configured to: and writing one or more storage unit indexes into the index storage according to the space requested to be reclaimed by the space reclamation request.
In some embodiments, the space allocation module comprises: a readout counting circuit configured to: in response to the number of index reads not being equal to the number to be allocated, adding 1 to the number of index reads, wherein the number to be allocated is determined based on the amount of space requested to be allocated by the space allocation request; a readout circuit configured to: and in response to the index readout quantity not being equal to the quantity to be allocated, reading at least one storage unit index from the index memory, and outputting the read at least one storage unit index.
In some embodiments, the space management module further comprises: the index generating module is configured to generate one or more storage unit indexes according to a preset rule.
In some embodiments, the space allocation module is further configured to: in response to the allocated number of the storage unit indexes being less than the threshold number, enabling the index generation module to generate at least one storage unit index, wherein the allocated number of the storage unit indexes is the accumulated number of the storage unit indexes allocated to the external request source; reading at least one storage unit index from the index storage in response to a sum of an allocated number and a to-be-allocated number of the storage unit indexes being greater than a threshold number, wherein the to-be-allocated number is determined based on an amount of space requested to be allocated by the space allocation request; the generated at least one storage unit index and/or the read at least one storage unit index are assigned to the external request source.
In some embodiments, the space allocation module comprises: a readout counting circuit configured to: in response to the number of index reads not being equal to the number to be allocated, incrementing the number of index reads by 1; a selection circuit configured to: in response to the allocated number of the storage unit indexes being less than the threshold number, causing an index generation module to generate at least one storage unit index, and in response to the sum of the allocated number and the to-be-allocated number of the storage unit indexes being greater than the threshold number, reading the at least one storage unit index from an index memory; a readout circuit configured to: in response to the index read quantity not being equal to the quantity to be allocated, outputting at least one memory cell index provided by the selection circuit.
In some embodiments, the index generation module is further configured to: after the device is powered on, a plurality of storage unit indexes are generated according to a preset rule, and the plurality of storage unit indexes are written into the index memory.
In some embodiments, the space reclamation module comprises: a write count circuit configured to: in response to the number of index writes not being equal to the number to be written, adding 1 to the number of index writes, wherein the number to be written is determined based on the space requested to be reclaimed by the space reclamation request; a write enable circuit configured to: and generating a write enable signal in response to the index writing quantity not being equal to the quantity to be written and the index to be written being valid data, so that the index to be written is written into the index memory.
In some embodiments, the index storage includes at least two sub-index storages, each configured to store at least one cell index, and the cells characterized by the at least one cell index have one of a set of preset sizes.
In some embodiments, the space management module includes at least two sub-management modules, each sub-management module corresponding to one of a set of preset sizes and configured to manage the storage unit indexes in the corresponding sub-index storage according to the space management request.
According to another aspect of the present disclosure, there is provided a computing device comprising the apparatus for managing storage space described according to the preceding aspect.
According to still another aspect of the present disclosure, there is provided a method for managing a storage space, including: receiving a space management request from an external request source; and managing storage unit indexes in an index storage according to the space management request, wherein the index storage is configured to store one or more storage unit indexes, and each storage unit index is used for representing a storage unit with a preset size in the storage space.
According to yet another aspect of the present disclosure, there is provided a chip comprising an apparatus for managing storage space as described in accordance with various embodiments of the foregoing aspect.
The apparatus for managing storage space provided by the present disclosure may locally store a storage unit index and manage the locally stored storage unit index based on a space management request of an external request source. Since each storage unit index represents a storage unit in the storage space of the memory, management of the storage unit in the memory can be achieved by managing the storage unit index. Therefore, the allocation and recovery of the storage space in the memory can be efficiently managed based on the request of the request source such as a CPU, an MCU and the like through the hardware device, and the problems of long path, high delay and the like caused by a software mode can be reduced, so that the management efficiency of the storage space is improved, and the running speed of the whole computing system is improved. Meanwhile, the resources of the processor, the controller or the microcontroller can be released by implementing memory management by virtue of a single hardware device, and the resources are optimized and configured, so that the overall performance of the computing system is improved. In addition, the device for managing storage space provided by the disclosure completely stores the storage unit index in the local index storage, compared with the method for reading and writing the storage unit index on the external storage, the scheme provided by the disclosure can effectively shorten the reading and writing path of the storage unit index, and reduce frequent interaction with the external storage, thereby improving the reading and writing efficiency, further improving the space management efficiency, and improving the efficiency of the whole computing system.
These and other aspects of the disclosure will be apparent from and elucidated with reference to the embodiments described hereinafter.
Drawings
Further details, features and advantages of the disclosure are disclosed in the following description of exemplary embodiments, taken in conjunction with the accompanying drawings, in which:
fig. 1 is a schematic diagram illustrating a memory management architecture in the related art;
2A, 2B, and 2C schematically illustrate example block diagrams of storage management systems according to some embodiments of this disclosure;
FIGS. 3A and 3B schematically illustrate partitioning schemes of a memory space according to some embodiments of the present disclosure;
FIG. 4 schematically illustrates an example read-write architecture for an index store, according to some embodiments of the present disclosure;
fig. 5A and 5B schematically illustrate example block diagrams of circuitry in a space allocation module, according to some embodiments of this disclosure;
FIG. 6 schematically illustrates an example block diagram of circuitry in a space reclamation module, in accordance with some embodiments of this disclosure;
FIG. 7 schematically illustrates an example block diagram of a request classification module in accordance with some embodiments of this disclosure;
fig. 8 schematically illustrates an example block diagram of a computing device in accordance with some embodiments of the disclosure;
FIG. 9 schematically illustrates an example flow diagram of a method for managing storage space, in accordance with some embodiments of this disclosure.
Detailed Description
The technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the drawings in the embodiments of the present disclosure. It is to be understood that the described embodiments are merely a few embodiments of the disclosure, and not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments disclosed herein without making any creative effort, shall fall within the protection scope of the present disclosure.
Fig. 1 is a schematic diagram illustrating a memory management architecture 100 in the related art. As shown in fig. 1, in the related art, the memory 110 may be directly managed by the processor 120 or the like via the bus 130. For example, when the processor 120 needs to write data into the memory space, the usable space may be determined according to the memory space management policy stored inside, and then an instruction for writing data into the corresponding memory space is issued, which may be processed by hardware and sent to the memory 110 via the bus 130 to implement data writing. Data reading, deleting, etc. processes may be similarly implemented. However, the applicant has found that performing memory management in this way has the following disadvantages: firstly, the resources of the processor (or controller, microcontroller, etc.) are occupied to execute operations such as space allocation and recycling, which is not beneficial to the efficient utilization of the resources; secondly, the allocation and the recovery of the memory space are implemented through software, the instruction is processed by hardware, and then the read-write operation is carried out in the memory space through a bus, so that the method has the characteristics of long path, high delay, complex structure and the like; thirdly, parallel operation of space recycling and space distribution is difficult to realize by managing the memory in a software mode, so that improvement of operation efficiency is limited; and so on.
In view of the above, the applicant has proposed a new solution for implementing memory management by hardware circuitry, which helps to solve or alleviate the above-mentioned various problems. According to the embodiment of the disclosure, the memory space does not need to be occupied for storing the storage unit indexes, and the management of the storage unit indexes in the memory space does not need to be realized by performing read-write operation on the memory space, so that the read-write time is saved, and the occupation of the read-write bandwidth of the memory is reduced.
Fig. 2A schematically illustrates an example block diagram of a storage management system 200A, according to some embodiments of this disclosure. The storage space management system 200A comprises means 210 for managing storage space, which may receive a space management request from an external request source 220 and process the received space management request to manage storage space in a memory (not shown). The memory may be various memories used as a memory, such as a Double Data Rate (DDR) synchronous dynamic random access memory (sdram), or other types of memories. Illustratively, the external request source 220 may be any device that can initiate a space management request, such as a CPU, MCU, or the like. Furthermore, although only one external request source is shown in the figures of the present disclosure, the apparatus 210 provided by the embodiments of the present disclosure may be used to receive and process space management requests from multiple external request sources according to specific application requirements.
As shown in fig. 2A, the apparatus 210 for managing storage space may include a request source interface 211, an index storage 212, and a space management module 213. The request source interface 211 may be connected to the external request source 220, for example, via a dedicated line or a common line (such as a bus), and is used to enable communication between the external request source 220 and the apparatus 210, for example, to enable data communication via a handshake manner. The request source interface 211 may be configured to receive a space management request from the external request source 220, and may be configured to feed back a management result from the space management module to the external request source 220. The space management request may be a space allocation request or a space reclamation request, and the management result may be, for example, information indicating a storage unit index of the allocated space, a space allocation failure, a space reclamation success, or the like. In this disclosure, a space allocation request may refer to a request for requesting allocation of a certain amount of space in a memory for use, and a space reclamation request (or referred to as a space release request) may refer to a request for reclaiming (or requesting release of) used space in a memory.
The index storage 212 may be configured to store one or more storage unit indexes, wherein each storage unit index is used for characterizing a storage unit in the storage space having a preset size. Illustratively, the index store 212 may include one or more index store queues, which may take the form of, for example, a FIFO (First in First out) or other form of storage structure.
Illustratively, fig. 3A shows a schematic diagram of a storage space 300. As shown in fig. 3A, the storage space 300 may include a storage area 310. The storage area 310 may be divided into a plurality of storage units having preset sizes, and the apparatus 210 may manage storage unit indexes for characterizing the storage units having the preset sizes, which may be set according to specific requirements, for example, to 4KB, or to 2KB, 8 KB, 16KB, 32 KB, and the like. Illustratively, when a request source 220 requests allocation of a partial space, the apparatus 210 may feed back one or more storage unit indexes thereto, and then the request source 220 may address corresponding storage units in the storage space 300 according to the storage unit indexes; when the request source 220 requests reclamation of some space, the apparatus 210 may reclaim the corresponding storage unit index for subsequent allocation, i.e., the storage unit characterized by the reclaimed storage unit index is restored to an available state and may be reallocated. Optionally, the storage space 300 may also include other storage areas 320 left for other purposes. For example, assuming that the size of the storage area 310 is 8 GB, if the storage area is divided into a plurality of storage units with 4KB granularity, the storage area can be divided into 2097152 storage units, so that 2097152 storage unit indexes are required. If each storage unit index is stored in 4 bytes (bytes), then in the above example, the size of index storage 212 may be 8 MB.
In some embodiments, the storage area 310 may be divided into a plurality of storage units, where each storage unit has one of a set of preset sizes. The preset size set may be set according to specific requirements, and may be set to include one or more of 8MB, 2MB, 512KB, 256KB, 128 KB, 64KB, 16KB, 4KB, or may include other preset sizes. Illustratively, as shown in fig. 3B, the memory region 310 may be divided into sub-regions 311, 312, etc., each of which may be divided into different preset-sized memory cells, and each of which may have different sizes and may be divided into different numbers of memory cells. For example, assuming that the total space size of the memory region 310 is 8 GB, if 4 GB memory space is divided at 8MB granularity, 2 GB memory space is divided at 2MB granularity, 1 GB memory space is divided at 512KB granularity, 512 MB memory space is divided at 256KB granularity, 256 MB memory space is divided at 64KB granularity, and 256 MB memory space is divided at 16KB granularity, 512 8MB memory units, 1024 2MB memory units, 2048 512KB memory units, 2048 256KB memory units, 4096 64KB memory units, 16384 16KB memory units may be divided into all cases. If a 4-byte (byte) storage unit index is allocated to each storage unit, a storage unit index corresponding to an 8MB storage unit needs 2KB to be stored, a storage unit index corresponding to a 2MB storage unit needs 4KB to be stored, a storage unit index corresponding to a 512KB storage unit needs 8 KB to be stored, a storage unit index corresponding to a 256KB storage unit needs 8 KB to be stored, a storage unit index corresponding to a 64KB storage unit needs 16KB to be stored, and a storage unit index corresponding to a 16KB storage unit needs 64KB to be stored. Thus, in the above example, the size of index memory 212 may be 102 KB. Further illustratively, in such an embodiment, the index storage 212 may further include a number of sub-index storages, each of which may be used only to store the index of the storage unit corresponding to one preset size. For example, there may be 6 sub-index memories storing cell indexes corresponding to 8MB, 2MB, 512KB, 256KB, 64KB and 16KB cells. Further, in such an embodiment, in order to identify the storage unit indexes corresponding to different preset sizes, an identifier indicating a preset size may be included in each storage unit index. For example, the storage unit index may be divided into an identifier part and a unit index part, the identifier part may be used to store an identifier indicating a preset size, and the unit index part may be used to store an index value of a storage unit having a corresponding preset size. Exemplarily, in the above-described example having 6 preset sizes of 8MB, 2MB, 512KB, 256KB, 64KB, and 16KB and representing the memory cell index by 4 bytes, the preset size may be represented by the upper 3 bits for each memory cell index, for example, 16KB may be represented by 000, 64KB may be represented by 001, 256KB may be represented by 010, 542 KB may be represented by 011, 2MB may be represented by 100, 8MB may be represented by 101, and the remaining 29 bits may represent a specific index value.
The space management module 213 may be configured to manage the storage unit index in the index storage according to the space management request. Illustratively, the space management module 213 may read or write the storage unit index from or to the index storage 212 based on the space management request to complete the allocation and reclamation of the corresponding storage units in memory.
Illustratively, the storage space management device 210 may be implemented as various types of hardware circuits, e.g., formed as an integrated circuit, packaged as a chip structure, etc., so as to be used as desired, e.g., soldered at corresponding pins of a circuit board or plugged into corresponding sockets of a circuit board, etc.
By the device 210, the storage space of the memory (e.g., an internal memory such as a DDR memory) can be managed in a hardware manner, so that disadvantages of a software management manner can be reduced, a more convenient management manner can be provided, the space management efficiency can be improved, processing resources of a main control unit such as a CPU or an MCU can be saved, the operating efficiency of the whole computing system can be improved, and the resource allocation of the whole computing system can be optimized. Meanwhile, the storage space management device 210 can locally store the storage unit index, and compared with the method of reading and writing the storage unit index on an external storage, the method can effectively shorten the reading and writing path of the storage unit index, and reduce frequent interaction with the external storage, thereby improving the reading and writing efficiency, reducing or reducing occupation of the reading and writing bandwidth of the storage, further contributing to improving the space management efficiency, and contributing to improving the overall efficiency of the storage space management system.
To further facilitate understanding, the spatial partitioning scheme previously described with reference to FIGS. 3A, 3B is taken as an example, assuming that there is no local index store 212 and all of the cell indices are stored on external memory. Taking the request involving the management of 2MB of memory space as an example, in the above-described example where the 8 GB space is entirely divided into 4KB memory cells, 512 memory cell indexes need to be read/written in the memory in total; in the above-described example in which the 8 GB space is divided into six sizes of 8MB, 2MB, 512KB, 256KB, 64KB, and 16KB, it may be necessary to read/write 1 memory cell index corresponding to 2MB memory cells in total. Such a read/write process would occupy the read-write bandwidth of the memory on the one hand and would take much time on the other hand. Although dividing the storage space into a plurality of storage units with predetermined sizes can help to reduce the number of reads and writes and the time, the problem cannot be solved completely, and the number of reads and writes and the time may still be higher when the number of storage unit indexes involved is larger. In contrast, with the apparatus for managing storage space described in the embodiment of the present disclosure, for example, the apparatus 210 shown in fig. 2A, the local index storage 212 may store the storage unit index for allocation/reclamation operations, which can effectively reduce frequent accesses to the storage, and shorten the read-write path in the storage unit index management process, thereby improving the efficiency of space management and improving the overall performance of the system.
In the present disclosure, space management may include both space allocation and space reclamation, where space allocation may be implemented by allocation of storage unit indexes and space reclamation may be implemented by reclamation of storage unit indexes. Further, the allocation of the storage unit index may be understood as a process of acquiring the storage unit index from the local index generation module or the memory by the space allocation module and feeding back to the external request source, and the reclamation of the storage unit index may be understood as a process of writing the storage unit index corresponding to the space requested to be reclaimed by the space reclamation request from the external request source to the memory by the space reclamation module.
Illustratively, fig. 2B illustrates a schematic block diagram of a storage management system 200B in accordance with some embodiments of the present disclosure.
As shown in fig. 2B, in some embodiments, the space management request may include a space allocation request and a space reclamation request, and the space management module 213 may include a space allocation module 2131 and a space reclamation module 2132. More specifically, the space allocation module 2131 may be configured to: allocating at least one storage unit index to an external request source according to the size of the space requested to be allocated by the space allocation request; the space reclamation module 2132 may be configured to: and writing one or more storage unit indexes into the index storage according to the space requested to be reclaimed by the space reclamation request. For example, the space allocation module 2131 may receive a space allocation request, and based on the size of the space requested by the space allocation request and the preset size of the storage unit into which the memory is divided, the space allocation module 2131 may determine whether there are currently enough storage unit indexes available for allocation and the number of storage unit indexes that need to be allocated. Subsequently, the space allocation module 2131 may read a corresponding number of storage unit indices from the index storage 212 and feed back to the external request source 220. Illustratively, the reading process may be performed as shown in fig. 4, for example, the space allocation module 2131 may initiate a request for reading a number of storage unit indexes, and after receiving the request, the index storage 212 may transmit the corresponding number of storage unit indexes to the space allocation module 2131. Similarly, for example, the space reclamation module 2132 may receive a space reclamation request, and based on the space requested to be reclaimed by the space reclamation request, the space reclamation module 2132 may determine the index of the storage unit that needs to be reclaimed. Subsequently, the space reclamation module 2132 may write these storage unit indexes to the index storage 212 and optionally feed back successful reclamation information to the external request source 220. Illustratively, the write process may be performed as shown in fig. 4, for example, the space reclamation module 2132 may initiate a request to write the index of the storage unit, and the index storage 212 may respond to the request to allow the index of the storage unit from the space reclamation module 2132 to be written to. By arranging the space allocation module and the space recovery module, the space allocation request and the space recovery request can be allowed to be processed in parallel, so that the space management efficiency is improved.
Fig. 5A schematically illustrates an example block diagram of circuitry 500A in a space allocation module, in accordance with some embodiments of this disclosure. As shown in fig. 5A, circuit 500A may include a readout counter circuit 510 and a readout circuit 520. More specifically, the readout count circuit 510 may be configured to: in response to the number of index reads not being equal to the number to be allocated, which is determined based on the amount of space requested to be allocated by the space allocation request, adding 1 to the number of index reads. The readout circuitry 520 may be configured to: and in response to the index readout quantity not being equal to the quantity to be allocated, reading at least one storage unit index from the index memory, and outputting the read at least one storage unit index. Through the circuit 500A, a function of counting the read-out memory cell indexes and stopping the read-out when the count reaches the number of indexes requested to be allocated can be realized.
Illustratively, as shown in fig. 5A, the readout counting circuit 510 may include an adder, a data selector (mux), a register, and a comparator. In particular, the adder is identified by a "+" symbol, one input of which can be connected to signal 1, and the other input of which can be connected to the output of the register, so as to perform the add-1 operation on the data in the register. The data selector is identified by the "mux" symbol and is shown as a one-out-of-two data selector with one input connected to the output of the adder and the other input connected to signal 0, and the selection control terminal may be connected to the output of the comparator, whereby the data selector may output the output value of the adder when the two inputs of the comparator are not equal. The register is shown as a D-type flip-flop identified by the symbol "D", with inputs connected to the outputs of the data selector, whereby, when the two inputs of the comparator are not equal, the register can receive the output value from the adder through the data selector, thereby achieving the effect of recording the accumulated value. The comparator is identified by a "=" symbol, one input of which receives the number of memory cell indices requested to be allocated, master _ req _ index _ num (i.e. the aforementioned number to be allocated), which may exemplarily be received from the space allocation module 2131, and the other input of which may be connected to the output of the register, thereby implementing a function of determining whether the value recorded by the register is equal to the number of memory cell indices requested to be allocated, i.e. a function of determining whether the accumulated value is equal to the number of memory cell indices requested to be allocated. Also illustratively, the readout circuit 520 may include a data selector mux, one input terminal of which may be connected to an index memory, such as the index memory 212 shown in fig. 2A and 2B, the other input terminal may be connected to the signal 0, and the selection space terminal may be connected to an output terminal of the comparator, i.e., an allocate _ done signal shown in the figure, so that a function of reading out the index of the memory cell from the index memory when the accumulated value is not equal to the number of the index of the memory cell requested to be allocated may be implemented, and the read-out index of the memory cell may be output as output data (i.e., output _ data shown in the figure) and further fed back to the external request source.
It should be understood that the circuit diagram shown in fig. 5A is merely schematic and exemplary, and that other circuit configurations may exist in an actual circuit, and that the same or similar functions may be achieved by other circuit configurations.
Fig. 6 schematically illustrates an example block diagram of circuitry 600 in a space reclamation module, in accordance with some embodiments of the present disclosure. As shown in FIG. 6, circuit 600 may include a write count circuit 610 and a write enable circuit 620. More specifically, the write count circuit 610 may be configured to: in response to the number of index writes not being equal to the number to be written, adding 1 to the number of index writes, wherein the number to be written is determined based on the space requested to be reclaimed by the space reclamation request; the write enable circuit 620 may be configured to: and generating a write enable signal in response to the index writing quantity not being equal to the quantity to be written and the index to be written being valid data, so that the index to be written is written into the index memory. Through the circuit 600, counting of the written index of the memory cell can be achieved, and the writing is stopped when the count reaches the number of indexes requested to be recycled.
Illustratively, as shown in FIG. 6, the readout count circuit 610 may include an adder, a data selector (mux), a register, and a comparator. In particular, the adder is identified by a "+" symbol, one input of which can be connected to signal 1, and the other input of which can be connected to the output of the register, so as to perform the add-1 operation on the data in the register. The data selector is identified by the "mux" symbol and is shown as a one-out-of-two data selector with one input connected to the output of the adder, the other input connected to signal 0, and a selection control terminal connectable to the output of the comparator, whereby the data selector outputs the output value of the adder when the two inputs of the comparator are not equal. The register is shown as a D-type flip-flop identified by the "D" symbol, with its inputs connected to the outputs of the data selector, whereby, when the two inputs of the comparator are not equal, the register can receive the output value from the adder through the data selector, thus realizing the function of recording the accumulated value. The comparator is identified by a "=" symbol, one input of which receives the number of memory cell indices requested to be recycled, master _ req _ index _ num (i.e. the aforementioned number to be written), which may exemplarily be received from the space recycling module 2132, and the other input may be connected to the output of the register, thereby implementing a function of determining whether the value recorded by the register is equal to the number of memory cell indices requested to be recycled, i.e. a function of determining whether the accumulated value is equal to the number of memory cell indices requested to be recycled. Also illustratively, the write enable circuit 620 may include an inverter and an and gate. The input of the inverter may be connected to the output of the comparator, i.e. the deasserted done signal as shown in the figure, to perform the inversion of this signal. One input of the and gate may be connected to the output of the inverter, and the other input may be connected to a data _ valid signal, which may be used to indicate that the index to be written is valid data and may come from an external request source. Thus, a function of generating the write enable signal wr _ en when the accumulated value is not equal to the number of memory cell indexes requested to be recycled and the index to be written is valid data can be realized. The write enable signal may be passed to an index memory, such as the index memory 212 described above, so that the index to be written may be written to the index memory, such as the write _ index shown in fig. 6.
It should be understood that the circuit diagram shown in fig. 6 is merely schematic and exemplary, and that other circuit configurations may be present in an actual circuit, and that the same or similar functions may be achieved by other circuit configurations.
Returning to fig. 2B, in some embodiments, space management module 213 may also include index generation module 2133. The index generation module 2133 may be configured to generate one or more storage unit indexes according to a preset rule. Alternatively, the index generation module 2133 may generate all storage unit indexes at once, or may generate the storage unit indexes in batches. Illustratively, the preset rule may include one or more of a start index value, an end index value, a total number, and the like of the storage unit index, wherein the start index value, the end index value, the total number, and the like of the storage unit index may be configurable, such as by an associated configuration register, for example. For example, the index generation module 2133 may generate the respective storage unit indexes by an accumulation operation based on the starting index value, or may generate the storage unit indexes in other manners.
In some embodiments, the index generation module 2133 may be configured to: after the device 210 is powered on, a plurality of memory cell indexes are generated according to a preset rule, and the generated plurality of memory cell indexes are written into the index memory 212. Alternatively, after all storage unit indexes are written, the index generation module 2133 may issue a message indicating that the index writing is complete, and then the device 210 may start receiving and processing a space management request from the external request source 220. In such an embodiment, the index generation module 2133 may only operate for a short period of time after the device 210 is powered on, for example, during an initialization period of the device 210, and then not start up until the next time the device 210 is powered on, and the space allocation module 2131 and the space reclamation module 2132 may directly interact with the index storage 212 to complete the management operation of the storage unit indexes. Illustratively, the space allocating module 2131 may implement the function of reading the storage unit index from the index memory 212 by using a circuit shown in fig. 5A or the like, and the space reclaiming module 2132 may implement the function of writing the storage unit index into the index memory 212 by using a circuit shown in fig. 6 or the like.
In some embodiments, index generation module 2133 may be configured to generate all or a portion of the storage unit index step by step based on instructions of space allocation module 2131. In particular, the space allocation module 2131 may be configured to: in response to the allocated number of storage unit indexes being less than the threshold number, the index generation module 2133 is caused to generate at least one storage unit index, where the allocated number of storage unit indexes is the cumulative number of storage unit indexes allocated to the external request source 220; reading at least one storage unit index from the index storage in response to a sum of an allocated number and a to-be-allocated number of the storage unit indexes being greater than a threshold number, wherein the to-be-allocated number is determined based on an amount of space requested to be allocated by the space allocation request; and allocating the generated at least one storage unit index and/or the read at least one storage unit index to an external request source. Alternatively, the threshold number may be a default value or a configurable value, which may be less than or equal to the total number of storage unit indexes, where the total number of storage unit indexes corresponds to the number of storage units with a preset size in the storage space. The allocated amount of storage unit indexes may be understood as the cumulative amount of storage unit indexes allocated to the external request source 220 (including the amount of storage unit indexes allocated by the respective space allocation modules). For example, assuming that m space allocation requests are received in an accumulated manner after the device is powered on, and n space allocation requests are successfully allocated, the sum of the numbers of allocated storage unit indexes for the n space allocation requests may be regarded as the allocated number of storage unit indexes. Compared with the embodiments described in the above paragraphs, the embodiments described in this paragraph help to increase the initialization speed of the device after power-on, and reduce the time consumed by writing the index set of the storage unit, thereby helping to increase the overall efficiency of the storage space management system. Illustratively, in such an embodiment, the space allocating module 2131 may implement the function of reading the storage unit index from the index memory 212 by using a circuit shown in fig. 5B or the like, and the space reclaiming module 2132 may implement the function of writing the storage unit index into the index memory 212 by using a circuit shown in fig. 6 or the like.
As shown in fig. 5B, circuit 500B may include a sense counter circuit 510, a sense circuit 520, and a select circuit 530. The readout counting circuit 510 may be configured to: in response to the number of index reads not being equal to the number to be allocated, incrementing the number of index reads by 1. The readout circuitry 520 may be configured to: in response to the number of index reads not being equal to the number to be allocated, at least one memory cell index provided by the selection circuit is output. The selection circuit 530 may be configured to: in response to the allocated number of storage unit indices being less than the threshold number, the index generation module 2133 is caused to generate at least one storage unit index, and in response to the sum of the allocated number and the to-be-allocated number of storage unit indices being greater than the threshold number, the at least one storage unit index is read from the index store 212. By the circuit 500B, it is possible to realize the functions of counting the read-out memory cell indexes, stopping the read-out when the count reaches the number of indexes requested to be allocated, and determining whether to read out the memory cell index from the index memory 212 or the index generation module 2133 according to the allocated number and the number to be allocated of the memory cell indexes.
Illustratively, as shown in fig. 5B, the structure of the readout counter circuit 510 is the same as that shown in fig. 5A, and is not repeated herein; the structure of the readout circuit 520 is also substantially the same as that shown in fig. 5A, except that: one input terminal of the data selector mux may be connected to the selection circuit 530 instead of the index memory shown in fig. 5A, whereby the function of the output selection circuit 530 can be realized when the accumulated value is not equal to the number of the requested allocated cell indexes, and the read cell indexes can be output as output data (i.e., output _ data shown in the figure) and further fed back to the external request source. The selection circuit 530 may include a data selector mux, one input of which may be connected to an index generation module, such as the index generation module 2133, and the other input of which may be connected to an index memory, such as the index memory 212, and a selection control terminal of which may access a signal from the index generation module, such as a create _ index _ done signal shown in the figure, which may be used to indicate whether the index generation module has completed generation of the threshold number of memory cell indexes, for example, if not, the signal may be set to 0, so that the data selector outputs data from the index generation module; if this is done, the signal may be set to 1, causing the data selector to output the data from the index memory. Therefore, the function of determining whether to acquire the storage unit index from the index generation module or read the storage unit index from the index memory according to whether the number of the storage unit indexes generated by the index generation module in an accumulated mode reaches a threshold value can be realized.
It should be understood that the circuit diagram shown in fig. 5B is merely schematic and exemplary, and that other circuit structures may be present in an actual circuit and that the same or similar functions may be achieved by other circuit structures.
Returning again to fig. 2B, as shown, in some embodiments, the apparatus 210 may also include a request classification module 214. Fig. 7 schematically illustrates an example block diagram of the request classification module 214, in accordance with some embodiments of the present disclosure. As shown in fig. 7, the request classification module 214 may be configured to: the space management request is received, stored to the first queue 2141 when the space management request is a space allocation request, and stored to the second queue 2142 when the space management request is a space reclamation request. Thus, space management requests from external request sources can be sorted and stored, so that space allocation requests and space reclamation requests can be simultaneously transmitted to the subsequent modules, for example, the space allocation module and the space reclamation module, thereby facilitating parallel processing of the space allocation requests and the space reclamation requests. In addition, the first queue and the second queue can store the received space distribution request and the space recycling request, so that when an external request source initiates multiple requests, the back pressure of the external request source can be reduced, and the system efficiency is improved. Alternatively, the first queue 2141 and the second queue 2142 may take a storage structure such as a FIFO. Due to the limited FIFO storage space, pre-full thresholds may be set for the first queue 2141 and the second queue 2142. When the number of space allocation requests stored in the first queue 2141 reaches a respective pre-full threshold (or referred to as a first threshold), the first queue 2141 may perform pre-full backpressure and may no longer receive space allocation requests from external request sources; when the number of space reclamation requests stored in the second queue 2142 reaches a corresponding pre-full threshold (or referred to as a second threshold), the second queue 2142 may perform pre-full backpressure and may no longer receive space reclamation requests from external request sources. By means of the backpressure mechanism, the request classification module 214 may be prevented from receiving space allocation requests and/or space reclamation requests that exceed its storage capacity, thereby reducing the probability of processing errors occurring.
As mentioned previously, in some embodiments, the storage space of the memory may be divided into storage units having different preset sizes. In such embodiments, the index storage 212 may include at least two sub-index storages, each of which may be configured to store at least one cell index, and the cell represented by the at least one cell index has one of a set of preset sizes. Illustratively, as described in the foregoing example, the preset size set may include six preset sizes of 8MB, 2MB, 512KB, 256KB, 64KB and 16KB, and accordingly, in this example, the index memory 212 may include six sub-index memories for storing the storage unit indexes of 8MB, 2MB, 512KB, 256KB, 64KB and 16KB, respectively, and optionally, each sub-index memory may take a FIFO form or other form of storage structure. The storage unit indexes with different preset sizes are stored in different sub-index storages, so that a scene of dividing the storage space in a multi-granularity mode can be supported, and the storage unit indexes with various preset sizes can be stored in order under the scene so that the space management module can execute corresponding read-write operation.
Further, in such an embodiment, in order to more conveniently and respectively manage the storage unit indexes corresponding to the respective preset sizes, the space management module may include at least two sub-management modules, each of which corresponds to one preset size of the preset size set and is configured to manage the storage unit indexes in the corresponding sub-index storage according to the space management request. The interaction between each sub-management module and the corresponding sub-index storage may be similar to the interaction between the space management module and the index storage described above, and is not described herein again.
To facilitate understanding, fig. 2C schematically illustrates an example block diagram of a storage space management system 200C in accordance with the above-described embodiments of this disclosure. As shown in FIG. 2C, index store 212 may include sub-index stores 212-1 through 212-N, which may be an integer greater than or equal to 2 and may be equal to the number of preset sizes in a set of preset sizes. Accordingly, the space allocation module 2131 may include sub allocation modules 2131-1 to 2131-N, the space reclamation module 2132 may include sub reclamation modules 2132-1 to 2132-N, and the operations of and the interaction operations between each of the sub allocation modules and the sub reclamation modules and the sub index memories may be similar to those of the space allocation modules, the space reclamation modules and the index memories described in the foregoing embodiments, and are not described herein again.
Optionally, the apparatus 210 may further include a space counting module 215. The space counting module 215 may be configured to receive space allocation requests and space reclamation requests and record allocation of storage unit indices according to the amount of space they request to allocate or reclaim. For example, the space count module 215 may include an index counter that may be configured to: when the space count module 215 receives a space allocation request, it changes in a first direction based on the number of storage unit indices to which the space allocation request refers; when the space counting module 215 receives a space reclamation request, it changes in the second direction based on the number of storage unit indices involved in the space reclamation request, where the amount of change in the first direction or the second direction corresponds to the number of storage unit indices allocated or reclaimed. Thus, the allocation of the storage unit indices may be recorded, such as the number of storage unit indices available for allocation. Illustratively, as shown, to record the number of respective unit indices of a predetermined size, the index counters in the space counting module 215 may include sub-index counters 2151-1 to 2151-N, each of which may be used to record a change in the number of unit indices of a predetermined size.
Further illustratively, the space count module 215 may be configured to: the space management request is divided into one or more sub-allocation requests or one or more sub-reclamation requests, wherein each sub-allocation request or sub-reclamation request corresponds to one preset size in a preset size set. The split sub-allocation request or requests may be passed to the space allocation module 2131 and processed by the corresponding sub-allocation module; the split one or more child reclamation requests may be passed to the space reclamation module 2132 and processed by the respective child reclamation modules. For example, the space counting module 215 may receive a space allocation request and split the space requested to be allocated by the space allocation request based on a preset size in a preset size set, so that the space requested to be allocated may be split into one or more storage units having the same or different preset sizes, thereby splitting the space allocation request into one or more sub-allocation requests, each of which may be used to request allocation of a preset size of a storage unit index. Illustratively, taking the example of partitioning storage space with 8MB, 2MB, 512KB, 256KB, 64KB, 16KB granularity described above as an example, it may be determined whether the space requested to be allocated by the space allocation request satisfies the rule of a × 8MB + B × 2MB + C × 512KB + D × 256KB + E × 64kb + F × 169b, where a, B, C, D, E, F are integers greater than or equal to zero. If the request is satisfied, the space allocation request may be considered to be completely split, and if the request is not satisfied, the space allocation request may be considered not to be completely split. In the case of incomplete splitting, information indicating an error may be reported. In the case of full split, A, B, C, D, E, F represent the required number of memory cells per predetermined size. Optionally, when the space allocation request is split, in order to further reduce the number of storage unit indexes that need to be read and improve reading efficiency, the number of the split storage units may be minimized as much as possible. For example, in the above example, the value of a + B + C + D + E + F may be minimized.
In some embodiments of the present disclosure, a computing device is also provided, which may include the apparatus for managing storage space described above, such as the apparatus 210. Schematically, fig. 8 shows an example block diagram of a computing device 800. As shown, computing device 800 may include means 810 for managing storage that may perform storage management functions as described in the various embodiments above. Computing device 800 may also include a processor or controller 820, which may be implemented as a CPU, MCU or similar structure and may be used to perform various processing or control operations. Computing device 800 can also include memory 830, which can be used for storing data, such as various program data needed by processor or controller 820 in executing application programs, data used or generated during execution of application programs, and so forth. The memory 830 is implemented, for example, as a single memory, or may be implemented as a combination of two or more memories. For example, memory 830 may include one or more internal memories, such as DDR memory or SDRAM memory, etc., used as memory. The means for managing memory 810, the processor/controller 820, and the memory 830 may be coupled together via a communication line 840 and enable data transfer therebetween. Illustratively, the communication lines 840 may be buses (such as AXI buses, etc.) or other types of communication lines, or may be a combination thereof.
In some embodiments of the present disclosure, a method for managing storage space is also provided. Illustratively, FIG. 9 shows an example flow diagram of a method 900 for managing storage space. As shown in FIG. 9, at step 910, a space management request from the external request source may be received; in step 920, a storage unit index in an index storage may be managed according to the space management request, wherein the index storage is configured to store one or more storage unit indexes, and each storage unit index is used to characterize a storage unit with a preset size in the storage space.
The method 900 may have the same or similar embodiments and may have the same or similar technical effects as the aforementioned apparatus for managing storage space. For the sake of brevity, no further description is provided herein.
In some embodiments of the present disclosure, there is also provided a chip, which may include the apparatus for managing storage space described in the foregoing various embodiments. Illustratively, the chip may be connected to a request source such as a CPU, a GPU, an MCU, etc. through a bus or other means, and may manage the storage unit index stored on the chip according to the space management request of the request source based on the various embodiments described above, thereby implementing the management of the storage space in the memory. Alternatively, the chip may be connected to a memory such as a DDR or the like through a bus or other means. And optionally, the chip may include circuit modules or means for performing other functions in addition to the means for managing memory space described above.
In the description of the present disclosure, the terms "upper", "lower", "left", "right", and the like indicate orientations or positional relationships based on those shown in the drawings, and are only for convenience of describing the present disclosure without requiring that the present disclosure must be constructed and operated in a specific orientation, and thus, should not be construed as limiting the present disclosure.
In the description herein, references to the description of "one embodiment," "another embodiment," etc., mean that a particular feature, structure, material, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. In this specification, the schematic representations of the terms used above are not necessarily intended to refer to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Moreover, various embodiments or examples and features of various embodiments or examples described in this specification can be combined and combined by one skilled in the art without being mutually inconsistent. In addition, it should be noted that the terms "first" and "second" in this specification are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or to imply that the number of indicated technical features is high.
Furthermore, the terms "first", "second" and "first" are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or to implicitly indicate the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of the present disclosure, "a plurality" means two or more unless specifically limited otherwise.
In the present disclosure, unless otherwise explicitly stated or limited, the terms "mounted," "connected," "secured," and the like are to be construed broadly, e.g., as meaning fixedly connected, detachably connected, or integral with; the connection can be mechanical connection, electrical connection or communication; either directly or indirectly through intervening media, either internally or in any other relationship. The specific meaning of the above terms in the present disclosure can be understood as a specific case by a person of ordinary skill in the art.
The above description is only a specific embodiment of the present disclosure, but the scope of the present disclosure is not limited thereto. Any changes or substitutions that may be easily conceived by one skilled in the art within the technical scope of the disclosure are intended to be covered by the scope of the disclosure. Therefore, the protection scope of the present disclosure shall be subject to the protection scope of the claims.

Claims (14)

1. An apparatus for managing storage space, comprising:
a request source interface connected to an external request source and configured to receive a space management request from the external request source;
an index memory configured to store one or more storage unit indexes, wherein each storage unit index is used for representing a storage unit with a preset size in the storage space;
a space management module configured to manage the storage unit index in the index storage according to the space management request.
2. The apparatus of claim 1, wherein the index store comprises an index store queue.
3. The apparatus of claim 1 or 2, wherein the space management request comprises a space allocation request and a space reclamation request, and the space management module comprises:
a space allocation module configured to: allocating at least one storage unit index to the external request source according to the size of the space requested to be allocated by the space allocation request;
a space reclamation module configured to: and writing one or more storage unit indexes into the index storage according to the space requested to be reclaimed by the space reclamation request.
4. The apparatus of claim 3, wherein the space allocation module comprises:
a readout counting circuit configured to: in response to an index read number not being equal to a to-be-allocated number, wherein the to-be-allocated number is determined based on the amount of space requested to be allocated by the space allocation request, adding 1 to the index read number;
a readout circuit configured to: and in response to the index readout quantity not being equal to the quantity to be allocated, reading at least one storage unit index from the index memory, and outputting the read at least one storage unit index.
5. The apparatus of claim 3, wherein the space management module further comprises:
the index generating module is configured to generate one or more storage unit indexes according to a preset rule.
6. The apparatus of claim 5, wherein the space allocation module is further configured to:
in response to the allocated number of storage unit indexes being less than a threshold number, causing the index generation module to generate at least one storage unit index, wherein the allocated number of storage unit indexes is a cumulative number of storage unit indexes allocated to the external request source;
reading at least one storage unit index from the index storage in response to a sum of an allocated quantity and a to-be-allocated quantity of storage unit indexes being greater than a threshold quantity, wherein the to-be-allocated quantity is determined based on an amount of space requested to be allocated by the space allocation request;
assigning the generated at least one storage unit index and/or the read at least one storage unit index to the external request source.
7. The apparatus of claim 6, wherein the space allocation module comprises:
a readout counting circuit configured to: in response to the number of index reads not being equal to the number to be allocated, incrementing the number of index reads by 1;
a selection circuit configured to: in response to the allocated number of the storage unit indexes being less than a threshold number, causing the index generation module to generate at least one storage unit index, and in response to the sum of the allocated number and the number to be allocated of the storage unit indexes being greater than the threshold number, reading the at least one storage unit index from the index memory;
a readout circuit configured to: in response to the index read quantity not being equal to the quantity to be allocated, outputting at least one memory cell index provided by the selection circuit.
8. The apparatus of claim 5, wherein the index generation module is further configured to: and after the device is powered on, generating the plurality of storage unit indexes according to the preset rule, and writing the plurality of storage unit indexes into the index memory.
9. The apparatus of claim 3, wherein the space reclamation module comprises:
a write count circuit configured to: adding 1 to the index writing quantity in response to the index writing quantity not being equal to the quantity to be written, wherein the quantity to be written is determined based on the space requested to be recycled by the space recycling request;
a write enable circuit configured to: and in response to the index writing quantity not being equal to the number to be written and the index to be written being valid data, generating a writing enabling signal so that the index to be written is written into the index memory.
10. The apparatus of claim 1, wherein the index memory comprises at least two sub-index memories, each sub-index memory is configured to store at least one cell index, and the cell represented by the at least one cell index has one of a set of preset sizes.
11. The apparatus of claim 10, wherein the space management module comprises at least two sub-management modules, each sub-management module corresponding to one of the set of preset sizes and configured to manage storage unit indices in a respective sub-index storage according to the space management request.
12. A computing device comprising the apparatus for managing storage according to any of claims 1-11.
13. A method for managing storage space, comprising:
receiving a space management request from the external request source;
and managing storage unit indexes in an index memory according to the space management request, wherein the index memory is configured to store one or more storage unit indexes, and each storage unit index is used for representing a storage unit with a preset size in the storage space.
14. A chip comprising an apparatus for managing storage space according to any one of claims 1 to 11.
CN202211561698.5A 2022-12-07 2022-12-07 Device and method for managing storage space, computing device and chip Active CN115658327B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211561698.5A CN115658327B (en) 2022-12-07 2022-12-07 Device and method for managing storage space, computing device and chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211561698.5A CN115658327B (en) 2022-12-07 2022-12-07 Device and method for managing storage space, computing device and chip

Publications (2)

Publication Number Publication Date
CN115658327A true CN115658327A (en) 2023-01-31
CN115658327B CN115658327B (en) 2023-10-31

Family

ID=85018449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211561698.5A Active CN115658327B (en) 2022-12-07 2022-12-07 Device and method for managing storage space, computing device and chip

Country Status (1)

Country Link
CN (1) CN115658327B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9240985B1 (en) * 2012-08-16 2016-01-19 Netapp, Inc. Method and system for managing access to storage space in storage systems
US20160357455A1 (en) * 2015-06-04 2016-12-08 Samsung Electronics Co., Ltd. Method and apparatus for managing memory
CN109582230A (en) * 2018-11-20 2019-04-05 深圳松诺技术有限公司 A kind of data access method and access system based on matrix form index
CN110532198A (en) * 2019-09-09 2019-12-03 成都西山居互动娱乐科技有限公司 A kind of method and device of memory allocation
CN113032293A (en) * 2019-12-24 2021-06-25 北京忆芯科技有限公司 Cache manager and control component
CN113835898A (en) * 2017-11-29 2021-12-24 北京忆芯科技有限公司 Memory distributor
CN114327278A (en) * 2021-12-30 2022-04-12 北京百度网讯科技有限公司 Data additional writing method, device, equipment and storage medium

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9240985B1 (en) * 2012-08-16 2016-01-19 Netapp, Inc. Method and system for managing access to storage space in storage systems
US20160357455A1 (en) * 2015-06-04 2016-12-08 Samsung Electronics Co., Ltd. Method and apparatus for managing memory
CN113835898A (en) * 2017-11-29 2021-12-24 北京忆芯科技有限公司 Memory distributor
CN109582230A (en) * 2018-11-20 2019-04-05 深圳松诺技术有限公司 A kind of data access method and access system based on matrix form index
CN110532198A (en) * 2019-09-09 2019-12-03 成都西山居互动娱乐科技有限公司 A kind of method and device of memory allocation
CN113032293A (en) * 2019-12-24 2021-06-25 北京忆芯科技有限公司 Cache manager and control component
CN114327278A (en) * 2021-12-30 2022-04-12 北京百度网讯科技有限公司 Data additional writing method, device, equipment and storage medium

Also Published As

Publication number Publication date
CN115658327B (en) 2023-10-31

Similar Documents

Publication Publication Date Title
US11340794B2 (en) Multiprocessor system with independent direct access to bulk solid state memory resources
CN109983449B (en) Data processing method and storage system
US10410693B2 (en) Multiprocessor system with independent direct access to bulk solid state memory resources
US10241722B1 (en) Proactive scheduling of background operations for solid state drives
US11010054B1 (en) Exabyte-scale data processing system
KR20220068914A (en) Adaptive device behavior based on available energy
US20220253252A1 (en) Data processing method and apparatus
Koh et al. Faster than flash: An in-depth study of system challenges for emerging ultra-low latency SSDs
CN115658328B (en) Device and method for managing storage space, computing device and chip
CN115658326B (en) Device and method for managing storage space, computing device and chip
CN112099728B (en) Method and device for executing write operation and read operation
CN115658327B (en) Device and method for managing storage space, computing device and chip
CN109213425A (en) Atomic commands are handled in solid storage device using distributed caching
CN114546294B (en) Solid state disk reading method, system and related components
CN115599556B (en) Device and method for managing storage space, computing equipment and chip
CN115617707B (en) Device and method for managing storage space, computing equipment and chip
CN115599705B (en) Device and method for managing storage space, computing equipment and chip
CN117472792A (en) Apparatus and method for managing storage space, and computing device
CN113688404A (en) End-to-end data protection for remote memory data transfer from host to media
CN114281516A (en) Resource allocation method and device based on NUMA attribute
CN108536619B (en) Method and device for rapidly recovering FTL table
CN117472794A (en) Apparatus and method for managing storage space, and computing device
JP5847313B2 (en) Information processing device
CN112765086B (en) Software and hardware interaction method based on cache consistency in solid state storage
WO2024051292A1 (en) Data processing system, memory mirroring method and apparatus, and computing device

Legal Events

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