A method accelerates access of a multi-core system to its critical resources, which includes preparing to delete a critical node in a critical resource, separating the critical node from the critical resource, and deleting the critical node if the conditions for deleting the critical node are satisfied. An apparatus includes a confirmation module for the node to be deleted and a deletion module to accelerate access of a multi-core system to its critical resources.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: maintaining a critical resource record in computer-readable memory accessible by multiple processors of a multi-core system, wherein the critical resource record contains identifiers of one or more critical nodes; placing the identifier of a given critical node in a pending deletion queue to prepare the given critical node for deletion from a critical resource; removing the identifier of the given critical node from the critical resource record to enable access to the given critical node by a processor that is already accessing the critical node, and to deny access to a processor seeking to newly access the critical node; and deleting the given critical node from the critical resource upon a determination that one or more conditions for deleting the given critical node are satisfied.
2. The method of claim 1 , wherein placing the identifier of the given critical node in the pending deletion queue further comprises: obtaining a predefined deletion time of the identifier of the given critical node by adding a predefined deletion delay of the identifier of the given critical node to a current system time, wherein the one or more conditions for deleting the identifier of the given critical node are satisfied if the predefined deletion time is less than or equal to the current system time.
3. The method of claim 1 , further comprising: deleting the identifier of the given critical node from the pending deletion queue simultaneously with deleting the given critical node from the critical resource.
4. The method of claim 3 , further comprising: predefining a polling period and defining a number of critical nodes polled in each polling period for each of one or more pending deletion queues, including a current pending deletion queue; and, wherein deleting the given critical node from the critical resource further comprises: if the number of critical nodes polled in a current polling period for the current pending deletion queue equals the predefined number of critical nodes polled in each polling period for the current pending deletion queue, polling a next pending deletion queue; and if the number of critical nodes polled in a current polling period for the current pending deletion queue does not equal the predefined number of critical nodes polled in each polling period for the current pending deletion queue, continuing to poll a next critical node correlated to the current pending deletion queue.
5. The method of claim 1 , further comprising: predefining repeating polling periods and defining a number of critical nodes polled in each repeating polling period; wherein deleting the given critical node further comprises: if a number of critical nodes polled in a given repeating polling period equals the predefined number of critical nodes polled in each polling period, waiting for the next repeating polling period to start; and if a number of critical nodes polled in a given repeating polling period does not equal the predefined number of critical nodes polled in each polling period, continuing to poll a next critical node.
6. The method of claim 1 , wherein the pending deletion queue has a fixed amount of storage space, and wherein the one or more conditions for deleting the given critical node are satisfied when the pending deletion queue is full.
7. The method of claim 6 , wherein the pending deletion queue is a pending deletion queue for critical nodes of a same data structure; wherein placing the identifier of the given critical node in the pending deletion queue comprises: putting the identifier of the given critical node into the pending deletion queue correlated to the data structure according to a data structure of the given critical node.
8. The method of claim 3 , wherein the identifier of the given critical node is address information of the given critical node.
9. An apparatus comprising: a computer processor; memory; and computer-executable instructions stored in the memory and executable by the computer processor to implement a node to-be-deleted confirmation module and a deletion module, wherein: the node to-be-deleted confirmation module is to communicate an instruction to the deletion module that a core is preparing to delete a critical node from a critical resource, wherein the critical node has an identifier contained in a critical resource record; and the deletion module is to place the identifier of the critical node in a pending deletion queue to prepare the critical node for deletion from the critical resource, to remove the identifier of the critical node from the critical resource record to enable access to the given critical node by a processor that is already accessing the critical node, and to deny access to a processor seeking to newly access the critical node and to delete the critical node from the critical resource when a delete condition is satisfied.
10. The apparatus of claim 9 , wherein the deletion module comprises: a deletion time confirmation module and a deletion confirmation module, wherein: the deletion time confirmation module, according to a predefined deletion delay for the critical node, confirms a deletion time of the critical node identified by the critical node identification recorded on the node to-be-deleted confirmation module, and records the identification and deletion time of the critical node to the deletion confirmation module; the deletion confirmation module deletes the critical node to which the recorded deletion time points when the recorded deletion time is less than or equal to a current system time.
11. The apparatus of claim 10 , wherein the deletion confirmation module comprises: a pending deletion queue confirmation module and a deletion instruction sending module; wherein the pending deletion queue confirmation module identifies a pending deletion queue for the critical node with the critical node identification, and puts the critical node identification and the deletion time into the pending deletion queue on the pending deletion queue module; wherein the pending deletion queue module creates a pending deletion queue for each data structure, sends the deletion time of the critical node in the pending deletion queue to the deletion instruction sending module when requested to do so, deletes the deletion time and the critical node identification to which the deletion instruction points, and deletes the critical node; wherein the deletion instruction sending module sends a deletion instruction to the pending deletion queue when the critical node deletion time requested from the pending deletion queue module is less than or equal to the current system time.
12. The apparatus of claim 9 , wherein the deletion module further comprises: a storage space estimation module, which determines whether a storage space is full when the node to-be-deleted confirmation module is to record the critical node identification to the deletion module, wherein if the storage space is full, the storage space estimation module sends an instruction to the deletion module, asking for deleting the first critical node identification stored on the deletion module.
13. The apparatus of claim 9 , wherein the deletion module comprises: a pending deletion queue confirmation module; a pending deletion queue module; and a storage space estimation module; wherein the pending deletion queue confirmation module identifies the pending deletion queue for the recorded critical node identification, sends an insert request containing the critical node identification to the storage space estimation module, and, upon receiving an insert confirmation instruction from the storage space estimation module, records the critical node identification to the pending deletion queue; wherein the pending deletion queue module creates a pending deletion queue for each data structure, sends the change in storage space for each pending deletion queue to the storage space estimation module, deletes the critical node identification that is first put into the pending deletion queue according to the deletion instruction sent from the storage space estimation module, deletes the critical node, and sends a deletion completed instruction to the space storage estimation module; wherein the storage space estimation module receives the insert request, and based on the storage space change information determines whether the storage space for the pending deletion queue identified by the pending deletion queue identification contained in the insert request is full; and wherein, if the storage space is full, the storage space estimation module sends out a deletion instruction and upon receiving the deletion completed instruction sends out an insert confirmation instruction; otherwise, if the storage space is not full, it directly sends out an insert confirmation instruction.
14. In a multi-core system in which a critical resource contains at least one critical node, a method comprising: determining a given critical node to be deleted from the critical resource, wherein the given critical node comprises an identifier contained in a critical resource record; maintaining the given critical node to be deleted for a timing period during which cores of the multi-core system that are accessing the given critical node complete ongoing access tasks and access by cores of the multi-core system seeking new access to the given critical node is denied, by placing the identifier of the given critical node into a pending deletion queue and removing the identifier of the given critical node from the critical resource record; and deleting the given critical node from the critical resource when a timing period expires.
15. The method of claim 14 , wherein removing the identifier of the given critical node from the critical resource record comprises: deleting address information of the given critical node to ensure that no cores of the multi-core system is able to access the given critical node.
16. The method of claim 14 , further comprising: enabling a periodic timer to determine the timing period.
17. The method of claim 14 , further comprising: moving the identifier of the given critical node toward the front of the pending deletion queue as other identifiers of critical nodes are added to the pending deletion queue; and deleting the given critical node when at least one of: (i) the identifier of the given critical node is at the front of the queue, and (ii) the queue is full, and (iii) another identifier of a critical node is added to the queue.
18. A computer program, comprising several instructions and used by a computer to execute the methods recited in claim 14 .
19. A computer storage medium where the computer program of claim 18 is stored.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 26, 2007
May 29, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.