CN117472793A - Apparatus and method for managing storage space, and computing device - Google Patents
Apparatus and method for managing storage space, and computing device Download PDFInfo
- Publication number
- CN117472793A CN117472793A CN202210853749.5A CN202210853749A CN117472793A CN 117472793 A CN117472793 A CN 117472793A CN 202210853749 A CN202210853749 A CN 202210853749A CN 117472793 A CN117472793 A CN 117472793A
- Authority
- CN
- China
- Prior art keywords
- request
- space management
- space
- threshold
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000015654 memory Effects 0.000 claims abstract description 92
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 67
- 230000004044 response Effects 0.000 claims description 25
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 233
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
The disclosure relates to an apparatus and a method for managing storage space, and a computing device. The apparatus for managing a storage space includes: at least two first interfaces configured to receive space management requests from at least two external request sources, the space management requests for managing the storage space; the second interface is connected with the memory, and the memory comprises a storage space; a priority arbitration module configured to: when at least two space management requests received via different first interfaces exist at the same time, determining and outputting a space management request with highest priority among the at least two space management requests; and a space management module configured to receive the space management request from the priority arbitration module and manage the storage space via the second interface based on the space management request. Thus, storage space management for multi-request source scenarios may be allowed to be achieved in a hardware manner in order and efficiently.
Description
Technical Field
The present disclosure relates to the field of computer technology, and in particular, to an apparatus for managing storage space, a computing device, and a method for managing storage space.
Background
With the development of computer technology, more and more various computing devices are presented in life, work and study of people. Generally, in these computing devices, there are various forms of processors, controllers, or microcontrollers that, when they run an application to perform a function, need to request a certain amount of space from memory, and when the application is running, the corresponding space can be freed. This involves the management of memory space.
At present, the management of the memory space is generally realized in a software mode, that is, a CPU (central processing unit ) or an MCU (Microcontroller Unit, micro control unit) runs a memory management policy, and issues an instruction, so that a hardware system processes the instruction, and then the read-write operation of the memory is realized through a bus. In the memory management scheme implemented by the software, the problems of long path, high delay, complex structure and the like generally exist. In addition, as the complexity of the computing system is higher and higher, when a memory such as a memory is read and written, a situation that a plurality of external request sources send requests simultaneously often occurs, and for this situation, the problems of long path, high delay, complex structure and the like in the memory management scheme implemented by the software will be more and more obvious, and have adverse effects on the operation efficiency of the whole computing system.
Disclosure of Invention
In view of the foregoing, the present application provides an apparatus for managing storage space, a method for managing storage space, and a computing device that may alleviate, mitigate, or even eliminate the above-mentioned problems.
According to an aspect of the present disclosure, there is provided an apparatus for managing storage space, including: at least two first interfaces configured to receive space management requests from at least two external request sources, the space management requests for managing storage space; the second interface is connected with the memory, and the memory comprises a storage space; a priority arbitration module configured to: when at least two space management requests received via different first interfaces exist at the same time, determining and outputting a space management request with highest priority among the at least two space management requests; and a space management module configured to receive the space management request from the priority arbitration module and manage the storage space via the second interface based on the received space management request.
In some embodiments, the space management request includes at least one of a request source identification and a preset priority level, and determining and outputting the space management request with the highest priority level includes: and determining and outputting the space management request with the highest priority based on at least one of the request source identification and the preset priority.
In some embodiments, the priority arbitration module includes: at least two first arbiters, each configured to receive space management requests having the same preset priority level, and to determine and output one space management request based on a request source identification among the received space management requests; and a second arbiter configured to receive the space management requests from the at least two first arbiters and output the space management request with the highest preset priority level.
In some embodiments, each first arbiter is connected to each of the at least two first interfaces.
In some embodiments, determining and outputting a space management request based on the request source identification includes: determining and outputting a space management request from an external request source with the forefront ordering based on the current ordering related to the request source identification; the request source identification corresponding to the outputted space management request is moved to the last bit of the current ordering to update the current ordering.
In some embodiments, outputting the space management request with the highest preset priority level includes at least one of: determining and outputting a space management request with the highest priority based on the priority identification of the space management request; a space management request from a first arbiter corresponding to a highest preset priority level is output.
In some embodiments, the apparatus further comprises: the high water level threshold module is configured to receive the space management request from the priority arbitration module in an idle state and to communicate the space management request to the space management module in response to the accumulated occupied storage space of an external request source corresponding to the received space management request not exceeding a preset threshold.
In some embodiments, the high water level threshold module is further configured to not output the space management request and feed back request retransmission information to the corresponding external request source in response to the accumulated occupied storage space of the external request source corresponding to the received space management request exceeding a preset threshold.
In some embodiments, feeding back request retransmission information to the corresponding external request source includes: and adding one to the order retransmission times, and feeding back the retransmission times to the corresponding external request source.
In some embodiments, the high water level threshold module is further configured to revert to the idle state in response to receiving a response to the output space management request or the fed back request to retransmit information.
In some embodiments, receiving a space management request from a priority arbitration module in an idle state includes: responding to the high water level threshold module in a threshold configuration stage, and feeding back request retransmission information to an external request source corresponding to the received space management request; and determining whether the accumulated occupied storage space of the external request source corresponding to the received space management request exceeds a preset threshold value or not in response to the high water level threshold module not being in a threshold configuration stage.
In some embodiments, feeding back request retransmission information to an external request source corresponding to the received space management request includes: and setting the retransmission times as a preset value indicating a threshold configuration stage, and feeding back the retransmission times to a corresponding external request source.
In some embodiments, the apparatus further comprises: a threshold register configured to store threshold modification data based on user input and to send the threshold modification data to the high water level threshold module during a threshold configuration phase, and wherein the high water level threshold module is further configured to update a preset threshold for at least a portion of the external request sources based on the received threshold modification data during the threshold configuration phase.
According to another aspect of the present disclosure, there is provided a computing device comprising an apparatus for managing storage space according to various embodiments of the foregoing aspects.
According to yet another aspect of the present disclosure, there is provided a method for managing storage space, comprising: receiving space management requests from at least two external request sources, wherein the space management requests are used for managing storage space; when at least two space management requests from different external request sources exist at the same time, determining the space management request with the highest priority among the at least two space management requests; based on the determined space management request with the highest priority, the storage space is managed via the second interface.
Through the device for managing the storage space, which is provided by the invention, the memory management is allowed to be realized in a hardware mode, and the problems of long path, high delay and the like caused by a software mode are avoided, 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 means of the independent hardware device for memory management, so that the optimal configuration of the resources is realized, and the overall performance of the computing system is improved. In addition, the device for managing the storage space provided by the present disclosure has two or more hardware interfaces for connecting external request sources and receiving space management requests, and a priority arbitration module is provided, and when space management requests from different external request sources are received, one space management request with the highest priority among the two or more received space management requests can be selected and sent to a lower-level circuit (such as a space management module or other intermediate module) for processing. Therefore, the storage space management operation aiming at the multi-request source scene can be orderly and efficiently realized, and the priority response of the high-priority space management request can be ensured, so that the storage space management efficiency is improved, the operation efficiency of the whole system is improved, and the reasonable configuration of storage resources is optimized.
These and other aspects of the present application will be apparent from, and elucidated with reference to, the embodiments described hereinafter.
Drawings
Further details, features and advantages of the present application are disclosed in the following description of exemplary embodiments, with reference to the following drawings, wherein:
FIG. 1 is a schematic diagram illustrating a memory management architecture in the related art;
FIG. 2 schematically illustrates an example block diagram of a storage space management system according to some embodiments of the disclosure;
FIG. 3 schematically illustrates another example block diagram of a storage space management system according to some embodiments of this disclosure;
FIG. 4 schematically illustrates an example architecture diagram of a priority arbitration module according to some embodiments of the present disclosure;
FIG. 5 schematically illustrates an example state machine for a high water level threshold module according to some embodiments of the present disclosure;
FIG. 6 schematically illustrates an example block diagram of a high water level threshold module according to some embodiments of the disclosure;
FIG. 7 schematically illustrates an example block diagram of a space management module according to some embodiments of the disclosure;
FIG. 8 schematically illustrates a partitioning scheme of storage space according to some embodiments of the present disclosure;
FIG. 9 schematically illustrates an example arrangement for storing unit indices by means of a first pointer and a second pointer;
FIG. 10 schematically illustrates an example state machine for a space allocation module according to some embodiments of the present disclosure;
FIG. 11 schematically illustrates an example state machine for a space reclamation module according to some embodiments of the present disclosure;
FIG. 12 schematically illustrates an example block diagram of a computing device according to some embodiments of the disclosure;
fig. 13 schematically illustrates an example flow chart of a space management method according to some embodiments of the 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 should be understood that the described embodiments are merely some, but not all embodiments of the present disclosure. Based on the embodiments in this disclosure, all other embodiments that a person of ordinary skill in the art would obtain without making any inventive effort are within the scope of protection of this disclosure.
Fig. 1 schematically illustrates 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 internal memory space management policy, and then an instruction for writing data into the corresponding memory space is issued, and the instruction may be processed by hardware and sent to the memory 110 via the bus 130, so as to implement data writing. The process of data reading, deleting, etc. may be similarly implemented. However, the applicant has found that performing memory management in this manner has the following drawbacks: firstly, the resources of a processor (or a controller, a microcontroller and the like) are required to be occupied to execute operations such as space allocation, recovery and the like, which is not beneficial to the efficient utilization of the resources; secondly, the allocation and recovery of the memory space are implemented through software, the instruction is required to be processed through hardware, and then the read-write operation is performed in the memory space through a bus, so that the characteristics of long path, high delay, complex structure and the like are achieved; thirdly, when there are multiple hardware structures (such as multiple processors, controllers or microcontrollers) that initiate read/write requests, in the process of managing the memory and coordinating the multiple hardware structures in a software manner, the disadvantages of long path, high delay and complex structure are further amplified, and are limited by the existing hardware structures, so that the flexibility of management is limited; etc.
Based on the above considerations, the applicant has proposed a solution for implementing memory management by means of hardware circuits, which helps to solve or alleviate the various problems described above.
FIG. 2 schematically illustrates an example block diagram of a storage space management system 200 according to some embodiments of the disclosure. The storage space management system 200 includes means 210 for managing storage space that can receive space management requests from at least two external request sources 220-1 through 220-N (N.gtoreq.2) and process the received space management requests to manage storage space in the memory 230. The memory 230 may be various memories used as a memory, such as a Double Data Rate (DDR) synchronous dynamic random access memory, or other types of memories. Illustratively, the external request sources 220-1 through 220-N may be any device that may initiate a space management request, such as a combination of one or more of a CPU, MCU, etc.
As shown in FIG. 2, the apparatus 210 may include at least two first interfaces 211-1 through 221-N (N.gtoreq.2), a second interface 212, a priority arbitration module 213, and a space management module 214. The first interfaces 211-1 to 221-N may be connected to the external request sources 220-1 to 220-N, respectively, for example, via a dedicated line or a public line (such as a bus), and are used to enable communication between the external request sources 220-1 to 220-N and the device 210, for example, data communication via a handshake. Illustratively, the first interface 211-1 may be configured to receive a space management request from the external request source 220-1, and may be configured to feed back a management result, which may be, for example, information indicating a storage unit index of the allocated space, a space allocation failure, a space reclamation success, etc., to the external request source 220-1; the other first interfaces may operate similarly. The second interface 212 may be configured to connect with the memory 230 and to enable communication between the memory 230 and the device 210, e.g., may send read or write requests from the space management device 210 to the memory 230, feed data from the memory 230 back to the device 210, etc.
The priority arbitration module 213 may be configured to: when there are at least two space management requests received via different first interfaces at the same time, among the at least two space management requests, a space management request having the highest priority is determined and output. For example, different external request sources may initiate space management requests simultaneously via different first interfaces, at which time the priority arbitration module 213 may select one space management request from two or more space management requests according to a preset mechanism and output it to the lower-level circuit, for example, may determine and output the space management request with the highest priority based on at least one of the request source identification and the preset priority level.
The space management module 214 may be configured to receive the space management request from the priority arbitration module and manage the storage space via the second interface based on the space management request. It should be understood that in this disclosure, "from" may refer to "directly from" or "indirectly from". For example, a "space management request from a priority arbitration module" may refer to a space management request directly from a priority arbitration module, or may refer to a space management request indirectly from a priority arbitration module. The space management module 214 may, for example, receive the space management request directly from the priority arbitration module 213, or may receive the space management request from the priority arbitration module 213 via other intermediate modules. Illustratively, upon receiving a space management request, the space management module 214 may analyze and process the space management request, for example, when the space management request is a space allocation request requesting allocation of a certain size of storage space, the space management module 214 may determine whether there is sufficient space available in the memory 230, if so, may allocate the required space to the corresponding external request source, and if not, may feed back a message indicating that the space is insufficient or allocation fails to the corresponding external request source; alternatively, when the space management request is a space reclamation request requesting reclamation of a portion of memory space, the space management module 214 may operate to free the portion of memory space in the memory 230 as available space.
By way of example, the apparatus 210 may be implemented as various types of hardware circuits, such as formed as integrated circuits, packaged as chip structures, etc., so as to be used as desired, such as soldered at respective pins of a circuit board or plugged into respective sockets of a circuit board, etc.
Through the device 210, the storage space of the memory 230 (for example, the internal memory such as DDR) can be managed in a hardware manner, so that the disadvantage of a software management manner can be avoided, a more convenient management manner can be provided, which is beneficial to improving the space management efficiency, saving the processing resources of the main control unit such as CPU or MCU, further improving the operation efficiency of the whole computing system, and optimizing the resource allocation of the whole computing system. In addition, when there are space management requests from different external request sources at the same time, one space management request with highest priority among the two or more received space management requests may be selected and sent to a lower-level circuit (e.g., a space management module or other intermediate module) for processing. Therefore, the storage space management operation aiming at the multi-request source scene can be orderly and efficiently realized, and the priority response of the high-priority space management request can be ensured, so that the storage space management efficiency of the multi-request source scene is further improved, the operation efficiency of the whole system is further improved, and the reasonable configuration of storage resources is further optimized.
FIG. 3 schematically illustrates an example block diagram of a storage space management system 300, according to some embodiments of the disclosure. Similar to FIG. 2, storage space management system 300 includes means 310 for managing storage space, external request sources 320-1 through 320-N (N.gtoreq.2), and memory 330, wherein external request sources 320-1 through 320-N and memory 330 are similar to external request sources 220-1 through 220-N and memory 230 of FIG. 2, and are not described in detail herein. In addition, in fig. 3, drawing of the first interface and the second interface is omitted for brevity. Illustratively, the priority arbitration module 311 may receive space management requests from the external request sources 320-1 to 320-N via two or more first interfaces, and feed back processing results of the space management requests to the external request sources 320-1 to 320-N; the space management module 312 may send read and write requests to the memory 330 via the second interface and receive data or response information from the memory 330.
In some embodiments, the priority arbitration module 311 may be implemented by a two-level arbiter architecture 400 shown in FIG. 4. As shown in FIG. 4, the two-stage arbiter may include a first arbiter 420-1, 420-2, and 420-3, and a second arbiter 430. Each of the first arbiters may be configured to receive space management requests having the same preset priority level, and, among the received space management requests, determine and output one space management request based on the request source identification; the second arbiter may be configured to receive space management requests from at least two first arbiters and output space management requests with highest preset priority levels.
For example, different first arbiters may be set for different preset priorities. If there are three preset priorities, i.e., high priority, medium priority and low priority, three first arbiters may be correspondingly provided, each for receiving space management requests having one preset priority, and selecting and outputting one relatively prioritized space management request from among the received space management requests having the same preset priority.
For example, in architecture 400 shown in FIG. 4, external hardware (or external request source) may communicate space management requests to space management devices in a handshake manner via external hardware interfaces (or first interfaces) 410-1 through 410-N. The first arbiter 420-1 may be used to receive and process space management requests having low priority, the first arbiter 420-2 may be used to receive and process space management requests having medium priority, and the first arbiter 420-3 may be used to receive and process space management requests having high priority. When there is a space management request with a low priority transferred by external hardware to the first arbiter 420-1 at two or more of the external hardware interfaces 410-1 to 410-N at the same time, the first arbiter 420-1 may select one relatively prioritized space management request among the space management requests from the two or more external hardware and output it to the second arbiter 430, for example, the relatively prioritized space management request may be selected by a random manner, according to a preset ordering for external request sources, or the like. The first arbiters 420-2 and 420-3 can operate similarly. When two or more of the first arbiters 420-1 to 420-3 simultaneously attempt to pass space management requests to the second arbiter 430, the second arbiter 430 may select and input the space management request having the highest current priority to the lower level circuit (e.g., space management module or other circuit module) according to the high, medium, and low priority ranks.
It should be understood that fig. 4 is merely exemplary, and in fact, there may be two first arbiters, or there may be four or more first arbiters, and the present disclosure does not limit the specific number of first arbiters. In addition, there may be more than two stages of arbiters, for example, two or more second arbiters may be provided, a third arbiter may be provided after the second arbiters, and so on. By providing a two-level (or more) arbiter, the determination of the priority of a space management request can be achieved more quickly, and the allocation of storage space can be optimized by preferentially allocating storage resources to space management requests having a higher priority.
In some embodiments, each first arbiter may be connected to each of all first interfaces, i.e. all first arbiters and all first interfaces may be connected by way of a full connection. Illustratively, in the embodiment shown in FIG. 4, each of the external hardware interfaces 410-1 through 410-N may be connected to all of the first arbiters 420-1 through 420-3. In such an embodiment, when a certain external hardware sends a space management request via one external hardware interface, it may cause the external hardware or the space management request to be bound to the corresponding first arbiter by sending in advance a request with an identification indicating a preset priority, or by carrying in the space management request an identification indicating a preset priority; alternatively, the external hardware or the space management request sent by the external hardware may be bound to the corresponding first arbiter by other means. Therefore, through the fully-connected mode, an external request source can be allowed to be bound to any first arbiter, so that configuration aiming at various application scenes is supported, and the flexibility of the space management device in use is improved.
In some embodiments, each of the first arbiters 420-1 through 420-3 can determine the space management requests output to the second arbiter 430 based on a round robin fashion. Illustratively, a space management request from an external request source with the top ranking may be determined and output based on the current ranking associated with the request source identification; the request source identification corresponding to the output space management request may then be moved to the last digit of the current ordering to update the current ordering. For example, assuming the current ordering is 410-1, 410-2, 410-3, … …, 410-N, if there is a space management request from an external request source at both external hardware interfaces 410-2 and 410-3, then the space management request at 410-2 is allowed to be output to the second arbiter while the current ordering is updated to 410-1, 410-3, … …, 410-N, 410-2; and so on. Thus, it is possible to quickly determine a space management request output to the next-level arbiter among two or more space management requests, and to balance the probability that space management requests delivered via different interfaces (or space management requests from different external request sources) are preferentially processed, contributing to an even allocation of processing and storage resources among space management requests of the same preset priority.
In some embodiments, the second arbiter 430 may determine a space management request output to a lower circuit based on a preset priority. Illustratively, the space management requests may carry a priority level identifier indicating a preset priority, or the space management requests from different first arbiters may be regarded as having different priority level identifiers, and the second arbiter 430 may determine and output the space management request with the highest priority according to the preset priority level ranking based on the priority level identifier. Illustratively, the preset priority ranking may be a ranking such as high priority, medium priority, low priority, etc. Thus, high priority space management requests can be preferentially responded to, thereby facilitating optimization of processing and configuration of storage resources, so that the resources are preferentially allocated to more important external request sources or space management requests initiated by the external request sources.
Returning to fig. 3, in some embodiments, the space management device 310 may also include a high water level threshold module 313. The high water level threshold module 313 may be configured to receive the space management request from the priority arbitration module 311 in an idle state and, in response to the accumulated occupied storage space of external request sources corresponding to the received space management request not exceeding a preset threshold, pass the space management request to the space management module 312. For example, a high water level threshold (i.e., a preset threshold) may be preset for different external request sources, and when the high water level threshold module 313 receives a certain space management request, the external request source that sent the space management request may be determined, for example, by an identification in the space management request indicating the external request source, or the like. If the space management request is a space allocation request, judging whether the sum of the space currently occupied by the external request source and the space allocated by the request (the sum can be understood as the accumulated occupied storage space of the external request source) exceeds a corresponding high water level threshold value, and outputting the request to a lower circuit only when the sum does not exceed the corresponding high water level threshold value; if the space management request is a space reclamation request, the space occupied by the corresponding external request source is not increased after the request is processed, so that the space management request can be directly output to a lower-level circuit. Alternatively, the high water level thresholds of different external request sources may be set to be the same, partially the same, or completely different depending on the actual application requirements.
Applicants have found that when there are multiple external request sources, the system is at risk of Deadlock (Deadlock) occurring. In particular, deadlock can be understood as: a set of processes is deadlocked if each process in the set is waiting for events that can only be raised by other processes in the set. Deadlocks typically result from contention for resources by multiple processes, which may be caused either by non-preemptive resources or by consumable resources. For example, for a memory with a total of 8 Gb allocable memory space, if event 1 of high priority applied for all 8 Gb memory space, while event 1 needed to rely on event 2 when freeing up memory space, but event 2 was now free of memory space that could be applied for, and event 2 was also attempting to apply for memory space, the system would produce a deadlock in this case. In the above-mentioned embodiment of the present disclosure, by setting the high water level threshold module 313, a high water level threshold may be preset for each external request source to limit the maximum allocable space of a single external request source, when a space management request is received, the space management request is transferred to a lower circuit only when the accumulated occupied storage space of the corresponding external request source does not exceed the preset high water level threshold, thereby effectively avoiding deadlock, and thus being helpful to promote stability and reliability of the whole system.
In some embodiments, the high water level threshold module 313 may be further configured to not output the space management request and feed back request retransmission information to the corresponding external request source in response to the accumulated occupied storage space of the external request source corresponding to the received space management request exceeding a preset threshold. The request retransmission information may be fed back to the external request source through a preset string or other modes, and the external request source may choose whether to retransmit the space management request according to the situation after receiving the information. By means of the retransmission mechanism, timely response of the space management request is achieved. In particular, when a certain space allocation request cannot be processed at the current time due to exceeding a high water level threshold, it is assumed that there are one or more space reclamation requests initiated by the same external request source, and when the corresponding storage space is reclaimed, the space allocation request may become processable. In this case, the retransmission mechanism described above may allow retransmission of the space management request so that it is handled in time when the storage space meets the high water level threshold requirement.
For example, the number of retransmissions may be fed back when the retransmission information is requested to be fed back. For example, when the accumulated occupied storage space of the external request source corresponding to the received space management request exceeds a preset threshold, the retransmission number may be increased by one, and the retransmission number may be fed back to the corresponding external request source along with the request retransmission information. For example, when the external request source receives the information and the retransmission times, whether to retransmit the corresponding space allocation request may be determined according to whether the retransmission times reach a retransmission threshold. If the retransmission threshold is not reached, the space management request can be retransmitted; if so, the space management request may not be retransmitted and optionally an Error (Error) may be reported. Alternatively, the external request source may include the current number of retransmissions in the request when retransmitting the space allocation request. Therefore, the upper limit of the number of times that a certain space allocation request is retransmitted can be conveniently controlled while the space allocation request is allowed to be retransmitted, so that the problem that the available space is temporarily insufficient at certain time can be solved, the resource consumption caused by unlimited retransmission and processing of the space allocation request can be avoided, and the potential problem existing in the system can be found in time. Alternatively, the high water threshold module 313 may also perform determination of whether the number of retransmissions exceeds a threshold, that is, when the external request source retransmits the space allocation request, the current number of retransmissions is included in the request, and the high water threshold module 313 may be further configured to determine whether the number of retransmissions exceeds the retransmission threshold, and if not, the request may be processed normally; if the error exceeds the preset value, an error can be reported and the idle state can be restored.
In some embodiments, the high water level threshold module 313 may be configured to revert to an idle state in response to receiving a response to the output space management request or the fed back request to retransmit information. Illustratively, after outputting the space management request to the space management module 312 and receiving the response information sent by the space management module 312, the high water threshold module 313 may revert to the idle state; alternatively, after the feedback request retransmits the information and receives the response information from the external request source, the high water level threshold module 313 may revert to the idle state. After reverting to the idle state, the high water threshold module 313 may receive and process the next space management request. By recovering to the idle state after receiving the response information, the situation that the space management request is not successfully transmitted to the space management module or the request retransmission information is successfully fed back to an external request source can be avoided, so that the reliability of the system is improved.
In some embodiments, the high water level threshold of the high water level threshold module 313 may be configurable for different external request sources, e.g., the high water level threshold may be configured in a threshold configuration phase after the space management device 310 is powered up. In such embodiments, when the priority arbitration module 311 passes the space management request to the high water level threshold module 313, the high water level threshold module 313 may feedback request retransmission information to an external request source corresponding to the received space management request in response to being in a threshold configuration phase, and the high water level threshold module 313 may determine whether the accumulated occupied storage space of the external request source corresponding to the received space management request exceeds a preset threshold in response to not being in the threshold configuration phase. For example, when the retransmission information is requested to be fed back, the retransmission number may be set to a preset value indicating a threshold configuration stage, and fed back to a corresponding external request source. For example, the number of retransmissions may be set to FFFF or other value that may indicate that the high water threshold module 313 is in a threshold configuration stage. When the external request source receives the retransmission times, it may be known that the high water threshold module 313 is in the threshold configuration stage, and the space management request is retransmitted.
Illustratively, the high water level threshold for at least one external request source may be configured by the threshold register 314. The threshold register 314 may be configured to store threshold modification data based on user input and send the threshold modification data to the high water level threshold module 313 during a threshold configuration phase. Accordingly, the high water level threshold module 313 may be configured to update the preset threshold for at least a portion of the external request sources based on the received threshold modification data during the threshold configuration phase. For example, a software interface may be provided that allows a user to input or modify a high water level threshold for at least one external request source, the data input by the user may be stored to the threshold register 314, upon power up of the space management device 310, the data stored by the threshold register 314 may be issued to the high water level threshold module 313, and the high water level threshold module 313 may update the high water level threshold for the at least one external request source based on the issued data. The period of time corresponding to this transfer and update procedure may be referred to as a threshold configuration phase. To avoid causing system upsets, the configuration of the high water level threshold may be implemented only for a certain period of time after the space management device 310 is powered up, and then the high water level threshold is not changed until the device is powered down after the space management request is started to be processed.
By allowing the high water level threshold value for at least one external request source to be modified in the threshold value configuration stage, a dynamic and configurable high water level threshold value can be realized, dynamic and efficient configuration of the space management device is facilitated, and flexibility of the space management device is improved.
In some examples, the high water level threshold module 313 may be controlled by the state machine 500 shown in fig. 5.
As shown in fig. 5, when no space management request is received, the state machine 500 may be in an IDLE state, i.e., the above-described IDLE state. When a space management request is received, it may be determined whether the high water level threshold module is in a threshold configuration stage. If the retransmission times are in the threshold configuration stage, the retransmission times can be filled in to be a preset value, such as FFFF, and the request source is fed back to request retransmission information; if the storage space is not in the threshold configuration stage, whether the accumulated occupied storage space corresponding to the external request source exceeds a preset high water level threshold or not can be judged. If not, outputting the space management request to a lower circuit module, such as space management module 312; if the number of the retransmission times exceeds 1, the retransmission information is fed back to the corresponding external request source. After receiving the space management request, the lower circuit module may process the space management request and may optionally feed back response information to the high water level threshold module 313. Alternatively, after receiving the request retransmission information, the corresponding external request source may determine whether to retransmit the space management request, and may optionally feed back response information to the high water level threshold module 313. After completing the feedback of the request retransmission information or outputting the space management request, or after receiving the above-mentioned response information, the high water level threshold module 313 may be restored to the IDLE state. In this state, the high water threshold module 313 may receive and process the next space management request.
In addition, optionally, as shown in fig. 5, after determining whether the threshold configuration stage is in, it may also be determined whether the number of retransmissions of the current space management request meets or exceeds a retransmission threshold. If the retransmission threshold is not reached or exceeded, whether the accumulated occupied storage space of the corresponding external request source exceeds a preset high water level threshold or not can be further judged; if the retransmission threshold is reached or exceeded, an error may be reported and returned to the IDLE state. Alternatively, the determining process may be performed by an external request source, that is, after the external request source receives the request retransmission information, whether to retransmit the corresponding space management request may be determined according to the number of retransmissions included therein. If the retransmission times do not reach or exceed the retransmission threshold, the space management request can be retransmitted; if the number of retransmissions meets or exceeds the retransmission threshold, the space management request may not be retransmitted.
In some embodiments, the high water level threshold module may be implemented by the circuit structure shown in fig. 6 or other similar structures.
As shown in FIG. 6, the high water threshold module 600 may include a request classification circuit 610, a correspondence logic circuit 620, and at least two threshold counters 640-1 through 640-N. Illustratively, the request classification circuit 610 may determine whether the incoming space management request is a space allocation request or a space reclamation request. The corresponding logic circuit 620 may operate according to the various embodiments described previously. Illustratively, the space reclamation request may be directly output to the lower level circuit module, and a threshold counter of the corresponding request source may be updated, for example, an amount of space corresponding to the space reclamation request or an index amount characterizing the amount of space may be reduced, or the like; for the space allocation request, it may be determined whether the accumulated occupied storage space of the corresponding request source exceeds a preset high water level threshold, if so, request retransmission information is sent, if not, the space allocation request is output to the lower circuit module, and a threshold counter of the corresponding request source is updated, for example, an amount of space corresponding to the space allocation request or an index representing the amount of space is increased. Optionally, the high water threshold module 600 may also include a reporting error circuit 630 that may report errors when a processing error occurs, for example, when the number of retransmissions reaches or exceeds a retransmission threshold, as described previously. Alternatively or additionally, the high water level threshold module 600 may also include other circuitry as long as the functionality of the space allocation module described in the various embodiments above may be implemented.
In various embodiments of the present disclosure, space management module 214 or space management module 312 may take any possible form for receiving a space management request from a superior circuit module and managing storage space in memory based on the received space management request. For example, the space management module may allocate or reclaim storage space in memory according to the type of space management request (space allocation request or space reclamation request). Hereinafter, an embodiment of a space management module is described by way of example only, it being understood that the space management module may also be implemented in other ways.
As illustrated by architecture 700 in fig. 7, space management module 710 may include a request classification module 711, an initialization module 712, a space allocation module 713, and a space reclamation module 714.
The request classification module 711 may be configured to store a space allocation request to a first queue when the space management request is a space allocation request, and store a space reclamation request to a second queue when the space management request is a space reclamation request. The first queue and the second queue may be implemented, for example, by means of FIFO (First Input First Output, first-in first-out) circuits, which may be used for data transfer with external request sources in a handshake manner. Thus, the space management requests from the external request source can be classified and stored, so that the space allocation requests and the space reclamation requests can be simultaneously transferred to the later modules, namely, the space allocation module and the space reclamation module, thereby further facilitating the 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 allocation requests and space reclamation requests, 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, due to the limited storage space of the queues implemented in, for example, FIFO circuits, a pre-fill threshold may be set for the first queue and the second queue. When the number of space allocation requests stored in the first queue reaches a corresponding pre-full threshold (or referred to as a first threshold), the first queue may perform a pre-full back pressure and no longer receive space allocation requests from external request sources; when the number of space reclamation requests stored in the second queue reaches a corresponding pre-full threshold (or referred to as a second threshold), the second queue may perform a pre-full back-pressure and no longer receive space reclamation requests from external request sources. Alternatively, the request classification module may back-pressure the pre-stage when the number of requests stored in either of the first and second queues reaches a respective pre-full threshold, i.e., when the number of space allocation requests in the first queue reaches a first threshold or the number of space reclamation requests in the second queue reaches a second threshold, no space management requests from external request sources are received anymore. By the backpressure mechanism, the request classification module 711 may be prevented from receiving space allocation requests and/or space reclamation requests that exceed its storage capacity, thereby avoiding processing errors.
The initialization module 712 may be configured to, upon powering up the device, write a plurality of memory cell indices in a first memory region of the memory space of the memory 720 via the bus 715, wherein each memory cell index is used to characterize one of the memory cells in a second memory region of the memory space having a preset size. For example, after a power-on reset of the hardware circuit, the initialization module 712 may first write the memory cell index into a first memory region of the memory 720, which may be a pre-specified region, and whose size and location may be adjusted as desired. When all the memory cell indexes are written, the space management module 710 may begin responding to the space management request from the previous stage circuit module, and thereafter the initialization module 712 may no longer operate until the hardware circuit is powered down and is started again after the next power-up. Illustratively, when the initialization module 712 completes the index write operation described above, the request classification module 711 may be signaled to the advanced circuit module to inform it that it may begin receiving space management requests.
Illustratively, fig. 8 shows a schematic diagram of a storage space 800. As shown, the storage space 800 may include a first storage area 810 and a second storage area 820. Optionally, the storage space 800 may also include other storage areas 830 reserved for other uses. The second storage area 820 may be divided into a plurality of storage units, and each storage unit may have a preset size, which may be set according to specific requirements, for example, to 4Kb, or to 2Kb, 8Kb, 16Kb, 32Kb, etc. The first storage area 810 may be written to a plurality of storage unit indexes, each of which may characterize one storage unit in the second storage area 820.
Space allocation module 713 and space reclamation module 714 may be used to process space allocation requests and space reclamation requests, respectively, in space management requests. Illustratively, the space allocation module 713 may be configured to read, via the second interface, the storage unit index from the first storage area according to the location pointed to by the first pointer based on the space allocation request; the space reclamation module 714 may be configured to write the storage unit index to the first storage region according to the location pointed to by the second pointer via the second interface based on the space reclamation request. Thus, the space allocation request and the space reclamation request can be managed by the separate space allocation module 713 and the space reclamation module 714, respectively, and the reading and writing of the memory cell index in the first memory area can be managed by the first pointer and the second pointer, respectively, so that the space allocation request and the space reclamation request from the external request source can be simultaneously processed by the parallel processing of the hardware circuit at the same time. Therefore, the storage space management efficiency is further improved.
Illustratively, FIG. 9 schematically illustrates an example scheme 900 of a read and write process in a first storage area by means of a first pointer and a second pointer management storage unit index. As shown in sub-graph a, when the device is powered up, the first pointer and the second pointer may be initialized to point to the same location in the first storage area 910, e.g., to both point to the minimum address of the first storage area 910, or to other locations as well. As shown in sub-graph B, when a space allocation request is processed by space allocation module 713, a number of memory cell indexes from first memory region 910 are read, at which point the first pointer will be shifted downward, e.g., to the location of the next readable memory cell index. As shown in Panel C, when a space reclamation request is processed by the space reclamation module 714, the corresponding storage unit index will be written to the first storage region 910, at which point the second pointer will be shifted downward, e.g., to the location of the next writable storage unit index. As shown in sub-graph D, when the first pointer and/or the second pointer are shifted to the maximum address of the first storage area 910, the first pointer will wrap around to the start position. The above description is merely exemplary, and the first pointer and the second pointer may also be offset in other ways with the reading and writing of the storage unit index.
Illustratively, the space allocation module 713 may be controlled by the state machine 1000 shown in FIG. 10. As shown in fig. 10, when no space allocation request is received, the state machine 1000 may be in an IDLE state, i.e., an IDLE state. When the space allocation request is received, whether the current available space meets the requirement of the space allocation request or not can be judged, namely, whether the current available space is larger than or equal to the space requested to be allocated by the space allocation request or not. If not, the information indicating the space allocation failure can be fed back to an external request source, and the IDLE state is skipped; if so, the storage unit index can be read from the memory, and the read storage unit index is stored in the local index queue. Then, in the case that the local index queue is not empty, the storage unit index may be allocated, that is, the storage unit index in the local index queue is fed back to the external request source until all the storage unit indexes are fed back, and the state is restored to the IDLE state again.
Illustratively, the space reclamation module 714 may be controlled by the state machine 1100 shown in FIG. 11. As shown in fig. 11, the state machine 1100 may be in the IDLE state when no space reclamation request is received. When a space reclamation request is received, a write operation to the storage unit index may be initiated. For example, the storage unit index to which the space reclamation request relates may be written to the local index queue first, and then the index write request may be generated based on the storage unit index in the local index queue. A write operation to the memory may then be initiated, i.e., the memory cell index in the local index queue is written to the first memory region in the memory by sending an index write operation until all the memory cell indices are written, and restored to the IDLE state again.
Bus 715 may be connected to initialization module 712, space allocation module 713, and space reclamation module 714 so that these modules may interconnect and interact data with memory 430. The bus 715 may be, for example, a standard NOC (Network on Chip) bus, or may be implemented using other types of buses. Further, bus 415 may optionally also connect other modules that are related or unrelated to the various modules described in the present disclosure.
In some embodiments of the present disclosure, a computing device is also provided that may include the apparatus for managing storage space described previously, such as apparatus 210, 310. Schematically, fig. 12 shows an example block diagram of a computing device 1200. As shown, computing device 1200 may include means 1210 for managing storage space, which may perform storage space management functions as described in the various embodiments above. The computing device 1200 may also include a processor or controller 1220, which may be implemented as a CPU, MCU or similar structure, and may be used to perform various processing or control operations. Computing device 1200 may also include memory 1230 that may be used to store data such as various program data required by processor or controller 1220 when executing applications or data used or generated during application execution, and the like. The memory 1230 is implemented as a single memory, for example, or may be implemented as a combination of two or more memories. For example, memory 1230 may include one or more internal memories, such as DDR memory or SDRAM memory or the like, used as memory. The device 1110, processor/controller 1220, and memory 1230 may be coupled together via communication lines 1240 and enable data transfer between each other. The communication lines 1240 may be, for example, buses (such as an AXI bus, 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. 13 shows an example flowchart of a method 1300.
As shown in fig. 13, at step 1310, a space management request may be received from at least two external request sources, the space management request for managing the storage space; in step 1320, when there are at least two space management requests from different external request sources at the same time, a space management request with the highest priority may be determined among the at least two space management requests; at step 1330, memory space may be managed based on the determined highest priority space management request.
The method 1300 may have the same or similar embodiments as the aforementioned means for managing storage space and may have the same or similar technical effects. For brevity, the description is omitted here.
In the description of the present disclosure, the azimuth or positional relationship indicated by the terms "upper", "lower", "left", "right", etc., are based on the azimuth or positional relationship shown in the drawings, and are merely for convenience of describing the present disclosure, not to require that the present disclosure must be constructed and operated in a specific azimuth, and thus should not be construed as limiting the present disclosure.
In the description of the present specification, reference to the term "one embodiment," "another embodiment," etc., means that a particular feature, structure, material, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. In this specification, schematic representations of the above terms are not necessarily directed 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. Furthermore, the different embodiments or examples described in this specification and the features of the different embodiments or examples may be combined and combined by those skilled in the art without contradiction. In addition, it should be noted that, in this specification, the terms "first" and "second" are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated.
Furthermore, the terms "first," "second," and the like, are used for descriptive purposes only and are not to be construed as indicating or implying a relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defining "a first" or "a second" may explicitly or implicitly include one or more such feature. In the description of the present disclosure, the meaning of "a plurality" is two or more, unless explicitly defined otherwise.
In the present disclosure, unless explicitly specified and limited otherwise, the terms "mounted," "connected," "secured," and the like are to be construed broadly, and may be, for example, fixedly connected, detachably connected, or integrally formed; the device can be mechanically connected, electrically connected and communicated; can be directly connected or indirectly connected through an intermediate medium, and can be communicated with the inside of two elements or the interaction relationship of the two elements. The specific meaning of the terms in this disclosure will be understood by those of ordinary skill in the art as the case may be.
The foregoing is merely a specific embodiment of the disclosure, but the scope of the disclosure is not limited thereto. Any changes or substitutions that would be readily apparent to one of ordinary skill in the art within the scope of the present disclosure are intended to be encompassed within the scope of the present disclosure. Therefore, the protection scope of the present disclosure shall be subject to the protection scope of the claims.
Claims (15)
1. An apparatus for managing storage space, comprising:
at least two first interfaces configured to receive space management requests from at least two external request sources, the space management requests for managing the storage space;
The second interface is connected with a memory, and the memory comprises the storage space;
a priority arbitration module configured to: when at least two space management requests received via different first interfaces exist at the same time, determining and outputting a space management request with highest priority among the at least two space management requests;
and a space management module configured to receive the space management request from the priority arbitration module and manage the storage space via the second interface based on the received space management request.
2. The apparatus of claim 1, wherein the space management request includes at least one of a request source identification and a preset priority level, and the determining and outputting the space management request with the highest priority level includes:
and determining and outputting the space management request with the highest priority based on at least one of the request source identification and the preset priority.
3. The apparatus of claim 1 or 2, wherein the priority arbitration module comprises:
at least two first arbiters, each configured to receive space management requests having the same preset priority level, and to determine and output one space management request based on a request source identification among the received space management requests;
And a second arbiter configured to receive the space management requests from the at least two first arbiters and output a space management request with a highest preset priority level.
4. The apparatus of claim 3, wherein each first arbiter is coupled to each of the at least two first interfaces.
5. The apparatus of claim 3, wherein said determining and outputting a space management request based on a request source identification comprises:
determining and outputting a space management request from an external request source with the forefront ordering based on the current ordering related to the request source identification;
and moving a request source identification corresponding to the output space management request to the last bit of the current ordering to update the current ordering.
6. The apparatus of claim 3, wherein the output preset highest priority spatial management request comprises at least one of:
determining and outputting a space management request with the highest priority based on the priority identification of the space management request;
a space management request from a first arbiter corresponding to a highest preset priority level is output.
7. The apparatus of claim 1, further comprising:
And a high water level threshold module configured to receive a space management request from the priority arbitration module in an idle state and to communicate the space management request to the space management module in response to the accumulated occupied storage space of an external request source corresponding to the received space management request not exceeding a preset threshold.
8. The apparatus of claim 7, wherein the high water threshold module is further configured to not output the space management request and to feed back request retransmission information to the corresponding external request source in response to the accumulated occupied storage space of the external request source corresponding to the received space management request exceeding a preset threshold.
9. The apparatus of claim 8, wherein the feeding back request retransmission information to the corresponding external request source comprises:
and adding one to the order retransmission times, and feeding back the retransmission times to the corresponding external request source.
10. The apparatus of claim 7 or 8, wherein the high water level threshold module is further configured to revert to the idle state in response to receiving a response to the output space management request or the fed back request to retransmit information.
11. The apparatus of claim 7, wherein the receiving a space management request from the priority arbitration module in an idle state comprises:
responding to the high water level threshold module in a threshold configuration stage, and feeding back request retransmission information to an external request source corresponding to the received space management request;
and determining whether the accumulated occupied storage space of an external request source corresponding to the received space management request exceeds a preset threshold value or not according to the fact that the high water level threshold module is not in a threshold configuration stage.
12. The apparatus of claim 11, wherein the feeding back request retransmission information to an external request source corresponding to the received space management request comprises:
and setting the retransmission times as a preset value indicating a threshold configuration stage, and feeding back the retransmission times to the corresponding external request source.
13. The apparatus of claim 7, further comprising:
a threshold register configured to store threshold modification data based on user input, and to send the threshold modification data to the high water level threshold module during a threshold configuration phase,
and wherein the high water level threshold module is further configured to update, in a threshold configuration phase, a preset threshold for at least a portion of the external request sources based on the received threshold modification data.
14. A computing device comprising the apparatus for managing storage space of claims 1-13.
15. A method for managing storage space, comprising:
receiving space management requests from at least two external request sources, the space management requests being used to manage the storage space;
when at least two space management requests from different external request sources exist at the same time, determining a space management request with highest priority among the at least two space management requests;
and managing the storage space based on the space management request with the highest determined priority.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210853749.5A CN117472793A (en) | 2022-07-20 | 2022-07-20 | Apparatus and method for managing storage space, and computing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210853749.5A CN117472793A (en) | 2022-07-20 | 2022-07-20 | Apparatus and method for managing storage space, and computing device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117472793A true CN117472793A (en) | 2024-01-30 |
Family
ID=89622525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210853749.5A Pending CN117472793A (en) | 2022-07-20 | 2022-07-20 | Apparatus and method for managing storage space, and computing device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472793A (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090144517A1 (en) * | 2007-11-29 | 2009-06-04 | Renesas Technology Corp. | Data processing apparatus and data processing system |
CN101887382A (en) * | 2010-06-28 | 2010-11-17 | 中兴通讯股份有限公司 | Method and device for arbitrating dynamic priority |
CN102783090A (en) * | 2009-12-23 | 2012-11-14 | 思杰系统有限公司 | Systems and methods for object rate limiting in a multi-core system |
CN104321758A (en) * | 2013-01-17 | 2015-01-28 | 英特尔公司 | Arbitrating memory accesses via a shared memory fabric |
CN110209610A (en) * | 2018-02-28 | 2019-09-06 | 畅想科技有限公司 | Memory interface |
US20200285420A1 (en) * | 2020-05-26 | 2020-09-10 | Intel Corporation | System, apparatus and method for persistently handling memory requests in a system |
-
2022
- 2022-07-20 CN CN202210853749.5A patent/CN117472793A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090144517A1 (en) * | 2007-11-29 | 2009-06-04 | Renesas Technology Corp. | Data processing apparatus and data processing system |
CN102783090A (en) * | 2009-12-23 | 2012-11-14 | 思杰系统有限公司 | Systems and methods for object rate limiting in a multi-core system |
CN101887382A (en) * | 2010-06-28 | 2010-11-17 | 中兴通讯股份有限公司 | Method and device for arbitrating dynamic priority |
CN104321758A (en) * | 2013-01-17 | 2015-01-28 | 英特尔公司 | Arbitrating memory accesses via a shared memory fabric |
CN110209610A (en) * | 2018-02-28 | 2019-09-06 | 畅想科技有限公司 | Memory interface |
US20200285420A1 (en) * | 2020-05-26 | 2020-09-10 | Intel Corporation | System, apparatus and method for persistently handling memory requests in a system |
Non-Patent Citations (1)
Title |
---|
MANI DEV GOMONY .ETC: "A Globally Arbitrated memory Tree for Mixed-Time-Criticality Systems", 《IEEE TRANSACTION ON COMPUTERS》, vol. 66, no. 2, 31 July 2016 (2016-07-31), pages 212 - 225, XP011638611, DOI: 10.1109/TC.2016.2595581 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10379903B2 (en) | Task queues | |
US11636014B2 (en) | Memory system and data processing system including the same | |
KR101876001B1 (en) | Resource allocation and deallocation for power management in devices | |
CN1128406C (en) | Interrupt architecture for non-uniform memory access (NUMA) data processing system | |
TWI463317B (en) | Memory device and control method thereof | |
US8250310B2 (en) | Assigning data to NVRAM of shared access hybrid hard drives | |
US11237756B2 (en) | System and method of writing to nonvolatile memory using write buffers | |
US20070255835A1 (en) | Resource reservation for massively parallel processing systems | |
US20190114116A1 (en) | Memory device managing data in accordance with command and non-transitory computer readable recording medium | |
EP3296836A1 (en) | Computer device and data read-write method for computer device | |
US20210286551A1 (en) | Data access ordering for writing-to or reading-from memory devices | |
WO2024036985A1 (en) | Storage system, computational storage processor and solid-state drive thereof, and data reading method and data writing method therefor | |
EP4064022A1 (en) | Cooperative storage architecture | |
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 | |
CN117472793A (en) | Apparatus and method for managing storage space, and computing device | |
EP4198728A1 (en) | Method and apparatus to perform workload management in a disaggregated computing system | |
US11748027B2 (en) | Storage system and method for avoiding clustering of reads during a program suspend | |
US11971771B2 (en) | Peer storage device messaging for power management | |
US20220147276A1 (en) | Memory system and method of controlling nonvolatile memory | |
JP2019175427A (en) | Computer system and method for operating the same | |
US11741025B2 (en) | Storage system and method for providing a dual-priority credit system | |
CN115617707B (en) | Device and method for managing storage space, computing equipment and chip | |
CN115658327B (en) | Device and method for managing storage space, computing device and chip | |
JP2011070470A (en) | Semiconductor memory 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 |