CN102439947A - Method and device for processing address request - Google Patents

Method and device for processing address request Download PDF

Info

Publication number
CN102439947A
CN102439947A CN2011800017878A CN201180001787A CN102439947A CN 102439947 A CN102439947 A CN 102439947A CN 2011800017878 A CN2011800017878 A CN 2011800017878A CN 201180001787 A CN201180001787 A CN 201180001787A CN 102439947 A CN102439947 A CN 102439947A
Authority
CN
China
Prior art keywords
request
address
field
addra
sign
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
CN2011800017878A
Other languages
Chinese (zh)
Other versions
CN102439947B (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.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102439947A publication Critical patent/CN102439947A/en
Application granted granted Critical
Publication of CN102439947B publication Critical patent/CN102439947B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The embodiment of the invention provides a method and a device for processing an address request, for improving resource utilization ratio. The method comprises the steps of obtaining the request of any node Nodel to an address Addra in a system; wherein, the request at least comprises the identification Nid of the node Nodel and the identification Tid of the request; storing the request of the address Addra at the position corresponding to the identification Nid and the identification Tid or storing the request of the address Addra at the position corresponding to the identification Nid and the identification Tid after replacing the request of the address Addra stored previously. By using the method provided by the embodiment of the invention, enough storage space can be guaranteed when all nodes send all requests to all addresses, and the most utilization of hardware storage resource also can be guaranteed, thereby improving the utilization ratio of the hardware resource.

Description

A kind of to address processing of request method and apparatus
Technical field
The present invention relates to the communications field, relate in particular to a kind of address processing of request method and apparatus.
Background technology
Along with the development of cloud computing technology, industry is further strengthened the demand of high-end fault-tolerant calculation.In the fault-tolerant computer framework that multiprocessor is formed, (Node Controller, NC) (Cache Coherence, CC) layer is most crucial technology to the buffer consistency in (also being a kind of interconnected chip) to Node Controller.So-called CC layer, be to multiprocessor fault-tolerant computer framework when the shared drive, be used for solving the general designation of the hardware cell of memory shared process address conflict problem.Internal memory in CC layer agency (Home Agent HA) need (Cache Agent, handle to each caching agent by the request of CA) initiating.In the NC design of fault-tolerant computer CC layer hardware designs, especially 32 nuclear (32P) and above systems, HA need carry out the ordering of serializing to what initiate from a plurality of nodes (being CA) to the request of same address.
Because first in first out (First-In-First-Out; FIFO) formation is a kind of technological comparative maturity and formation commonly used; In this field of high-end fault-tolerant calculation, to the request of initiating from a plurality of nodes to same address, prior art adopts fifo queue that it is carried out the serializing operation usually.Shown in accompanying drawing 1a, system gets into same fifo queue to the request of same address, and each request takies the container (Entry) in the formation.For example, all requests to address 0 get into FIFO (00)Formation, all requests to address 1 get into FIFO (01)Formation, all requests to address 2 get into FIFO (02)Formation ..., all requests to address n-1 get into FIFO (n-1)Formation; The 0th request to address 0 gets into FIFO (00)Container 0 (the Entry of formation 0) (use " Entry among the figure 0For Addr 0" expression, the rest may be inferred by analogy), the 1st request to address 0 gets into FIFO (00)Container 1 (the Entry of formation 1), the 2nd request to address 0 gets into FIFO (00)Container 2 (the Entry of formation 2) ...., m the request to address 0 gets into FIFO (00)Container m-1 (the Entry of formation M-1); The situation that the request of other addresses is got into fifo queue is similar.When this specific character of fifo queue has determined that follow-up resource obtains the request of these addresses, can only operate in strict accordance with the listed sequence of going into of these Address requests, for example, three orders that the request of address 0 is fallen in lines are: the 0th request to address 0 gets into FIFO (00)The container Entry of formation 0, secondly be that the 1st request to address 0 gets into FIFO (00)The container Entry of formation 1, be that the 2nd request to address 0 gets into FIFO at last (00)The container Entry of formation 2, so,, must wait until that the 0th request and the 1st request to address 0 to address 0 left FIFO in order if follow-up certain resource need obtain the 2nd request to address 0 (00)Formation afterwards.
Serializing management method through analyzing the fifo queue that above-mentioned prior art provides can be found; If the different number of addresses that can supply to ask are P; So; The fifo queue that needs also should be P, and the degree of depth of each fifo queue (also being the number of container in each fifo queue (Entry)) numerically must equate with the quantity to the parallel request of maximum of same address.For example, 10 nodes (CA) are arranged in the supposing the system, each node is 60 to the maximum number of the request of address; If this maximum number all is the request to same address; So, the fifo queue that needs adds up to 1, because the request of same address is got into same fifo queue; If this maximum number all is the request to different addresses, so, it is individual that the fifo queue that needs adds up to 600 (=10 * 60), because the request of different addresses is got into different fifo queues; Because having 10 nodes in the system possibly ask same address; Each node is 60 to the maximum number of the request of same address; Then the degree of depth of each fifo queue is 600=10 * 60; Because each node possibly asked with its 60 pairs of same addresses of largest request number that can carry out in 10 nodes, shown in accompanying drawing 1b.
Can learn that from accompanying drawing 1a and accompanying drawing 1b there is the defective that hardware spending is big, resource utilization is low at least in the serializing management method of the fifo queue that prior art provides.With accompanying drawing 1b is example, and what suppose each node request in 10 nodes is different address, for example; Be without loss of generality, suppose 59 nodes, 1 request address 60 to address 119, node 0 request address 0 to address, node 2 request address 120 to addresses 179; ..., node 9 request address 540 to addresses 599, so; Each fifo queue has only used a container (Entry) to hold the request of these 10 nodes, and other containers (Entry) of each fifo queue all are in idle condition; Another kind of egregious cases is to suppose that each node is with the identical address of its largest request number request, for example in 10 nodes; Suppose node 0, node 1, node 2; ..., separately to address 0 request 60 times, then all 10 nodes all get into formation FIFO to the request of address 0 to node 9 respectively (00), at this moment, formation FIFO (01)To formation FIFO (599)All idle.Therefore, that a kind of situation all can not make hardware utilization reach 100%.
Summary of the invention
It is a kind of to address processing of request method and apparatus that the embodiment of the invention provides, to improve resource utilization.
It is a kind of to address processing of request method that the embodiment of the invention provides, and said method comprises: arbitrary node Node1 is to the request of address Addra in the receiving system, and described request comprises the sign Nid of said node Node1 and the sign Tid of described request at least;
Said request to address Addra is stored in and said sign Nid and the corresponding position of said sign Tid, perhaps the change before the storage to after the request of address Addra said request to address Addra being stored in and said sign Nid and the corresponding position of said sign Tid.
It is a kind of to address processing of request device that the embodiment of the invention provides; Said device comprises: receiver module; Be used for the request of receiving system arbitrary node Node1 to address Addra, described request comprises the sign Nid of said node Node1 and the sign Tid of described request at least;
Memory module; Be used for the request to address Addra that said receiver module receives is stored in and said sign Nid and the corresponding position of said sign Tid, perhaps change store before to after the request of address Addra said request to address Addra being stored in and said sign Nid and the corresponding position of said sign Tid.
Can know from the invention described above embodiment, owing to be to be stored in and said node identification Nid and described request in strict accordance with the node identification Nid that carries in the request with described request sign Tid to identify the corresponding position of Tid the request of address Addra.Therefore, the method that the embodiment of the invention provides had both guaranteed when all nodes send all requests to all addresses enough memory spaces are arranged, and had guaranteed the maximum use to the hardware store resource again, had improved the utilance of hardware resource.
Description of drawings
In order to be illustrated more clearly in the technical scheme of the embodiment of the invention; To do to introduce simply to the accompanying drawing of required use in prior art or the embodiment description below; Obviously; Accompanying drawing in describing below only is some embodiments of the present invention, to those skilled in the art, can also obtain other accompanying drawing like these accompanying drawings.
Fig. 1 a is a kind of serializing management sketch map to Address requests of employing fifo queue to initiating from a plurality of nodes that prior art provides;
Fig. 1 b is the another kind of serializing management sketch map to Address requests of employing fifo queue to initiating from a plurality of nodes that prior art provides;
Fig. 2 be the embodiment of the invention provide a kind of to address processing of request method flow sketch map;
Fig. 3 is the content-based reference to storage storage sketch map to the request of address that the embodiment of the invention provides;
Fig. 4 a be the embodiment of the invention provide to the sketch map that identifies of field in the record;
Fig. 4 b be another embodiment of the present invention provide to the sketch map that identifies of field in the record;
Fig. 4 c be another embodiment of the present invention provide to the sketch map that identifies of field in the record;
Fig. 4 d be another embodiment of the present invention provide to the sketch map that identifies of field in the record;
Fig. 5 a is the sketch map that storage resources is reclaimed that the embodiment of the invention provides;
Fig. 5 b is the sketch map that storage resources is reclaimed that another embodiment of the present invention provides;
Fig. 5 c is the sketch map that storage resources is reclaimed that another embodiment of the present invention provides;
Fig. 5 d is the sketch map that storage resources is reclaimed that another embodiment of the present invention provides;
Fig. 6 be the embodiment of the invention provide to address processing of request method application scenarios sketch map;
Fig. 7 be another embodiment of the present invention provide to address processing of request method application scenarios sketch map;
Fig. 8 be the embodiment of the invention provide to address processing of request apparatus structure sketch map;
Fig. 9 be another embodiment of the present invention provide to address processing of request apparatus structure sketch map;
Figure 10 be another embodiment of the present invention provide to address processing of request apparatus structure sketch map;
Figure 11 be another embodiment of the present invention provide to address processing of request apparatus structure sketch map;
Figure 12 be another embodiment of the present invention provide to address processing of request apparatus structure sketch map;
Figure 13 be another embodiment of the present invention provide to address processing of request apparatus structure sketch map;
Figure 14 be another embodiment of the present invention provide to address processing of request apparatus structure sketch map.
Embodiment
It is a kind of to address processing of request method and apparatus that the embodiment of the invention provides, to improve resource utilization.
See also accompanying drawing 2, be the embodiment of the invention provide a kind of to address processing of request method flow sketch map, mainly comprise step
S201, arbitrary node Node1 is to the request of address Addra in the receiving system, and described request comprises the sign Nid of said node Node1 and the sign Tid of described request at least.
In embodiments of the present invention; Described system can be the fault-tolerant computer system of the multiprocessor in the cloud computing field; Node Node1 can be in the fault-tolerant computer system any caching agent (Cache Agent, CA), the sign Nid be used for node Node1 is identified.Because node Node1 can send a more than request to address Addra or other addresses; Therefore; In embodiments of the present invention; Can use sign Tid that the request to address Addra or other addresses that node Node1 sends is identified, be beneficial to distinguish each request that node Node1 sends.
S202; Said request to address Addra is stored in said sign Nid and the corresponding position of said sign Tid, perhaps before the change storage to will said request after the request of address Addra being stored in the position of said sign Nid and said sign Tid correspondence to address Addra.
In embodiments of the present invention; The reserved storage space of might asking that can send all addresses for all nodes in the system in advance; A request takies a unit of memory space, the call number sign that the request mark of the request that node identification in the unit using system of each memory space and said node send is converted into." institute might the ask " meaning here is, because a node can not only send a request, in order to store these requests; Must consider all requests that all nodes in the system send all addresses maybe, for example, have 10 nodes in the supposing the system; The Address requests that node can send is 60 at most; So, need and only need reserve these Address requests of unit storage of the individual memory space in 600 (=10 * 60), so for these 10 nodes; Both having guaranteed can have enough memory spaces when all nodes send all requests to all addresses, has guaranteed not waste the hardware store resource again.
In embodiments of the present invention, when the request of receiving first address Addra, then said request to address Addra is stored in said sign Nid and the corresponding position of said sign Tid; When not being the request of receiving first address Addra, then before the change storage to will said request after the request of address Addra being stored in the position of said sign Nid and said sign Tid correspondence to address Addra.
Can know from the invention described above embodiment, owing to be to be stored in and said node identification Nid and described request in strict accordance with the node identification Nid that carries in the request with described request sign Tid to identify the corresponding position of Tid the request of address Addra.Therefore, the method that the embodiment of the invention provides had both guaranteed when all nodes send all requests to all addresses enough memory spaces are arranged, and had guaranteed the maximum use to the hardware store resource again, had improved the utilance of hardware resource.
In embodiments of the present invention; Receiving also, the module of memory address request can be a buffer unit; Be used for of the request of temporary transient storage system node to the address; Therefore, in a way, this buffer unit is to sending the node and the follow-up a kind of coupling of resource processing module on access speed of said buffer unit of Address requests.
The serializing management method of the fifo queue that provides according to prior art; When follow-up resource processing module need obtain request when doing parallel processing from fifo queue; Such fifo queue has no idea to accomplish effective differentiation; And in follow-up resource processing module, the request of each address but is of equal value.With accompanying drawing 1b is example, supposes 4 requests of address A have been got into FIFO (00) formation, and 1 request of address B has been got into FIFO (01) formation, and 2 requests of address C have been got into FIFO (02) formation; What follow-up resource processing module 0 was handled is 4 requests to address A, and resource processing module 1 is handled is to 1 request of address B with to 2 requests of address C.If sometime 5 requests of address B have been got into FIFO (01) formation again, this structure of fifo queue is difficult to will switch to 2 requests of address C statically resource processing module 0 and handles when especially resource processing module 1 is to one in 2 requests of address C (if).Therefore, when this fifo queue changes in the face of dynamic request, be difficult to do efficiently and switch, promptly parallel processing capability is poor, does not support the QoS characteristic.And in embodiments of the present invention; Receive and the module of memory address request when receiving that the request to the address is read in the request of resource processing module; Be parallel request and request to said resource processing module of sending said to address Addra to being different from address Addra; So that said resource processing module is carried out corresponding operation according to said request of reading to the address, for example, reading of data perhaps writes data or the like to the pairing memory cell in address from the pairing memory cell in address.
Fifo queue need be different in strict accordance with the principle of " request is processed earlier earlier " in the processing mode of this parallel transmission Address requests of the embodiment of the invention and the prior art; Promptly; In the method that the embodiment of the invention provides; When receiving that the request to the address is read in the request of resource processing module; Can send request and request to said resource processing module simultaneously, and needn't arrive the sequencing of buffer unit, send Address requests one by one according to Address requests to being different from address Addra to address Addra.Particularly; Can adopt a linked list data structure to realize to the request of address Addra; Adopt another linked list data structure to realize to the request that is different from address Addra; Then, two chained lists are coupled together (for example, the tail with a chained list links to each other with the head of another chained list) transmission that can walk abreast to the request of address Addra with to being different from the request of address Addra.Obviously, this processing method has satisfied the requirement of the parallel processing of follow-up resource processing module.
Below can CAM (Content Addressable Memory CAM) is example, explains provided by the invention to address processing of request method.
Based on CAM to address processing of request method in; Step " is stored in said request to address Addra and said sign Nid and the corresponding position of said sign Tid ": with said request to address Addra with the stored in form that writes down in said sign Nid and the corresponding position of said sign Tid, record wherein comprises following field:
Valid: represent whether this record is effective;
Header: represent whether this record is first request to certain address;
Tail: represent whether this record is last request to certain address;
Addr: the address that identifies this request;
Entry0: identifying the particular content of this request, mainly is the data structure of this request;
Next: sign is for the next number of same Address requests; If the Tail field of this record has been changed to effectively; Ignore the Next field so; If the Tail field is invalid and the Valid field is effective, when handling current record, need operate next bar record so according to the value of Next field.Above-mentioned field can be through the characteristic of CAM, locatees efficiently and searches.
For field Valid, Header and Tail; Can use " 1 " of two-valued function represent respectively this record effectively, this record is to be last request to certain address to first request of certain address and this record, uses " 0 " of two-valued function to represent that respectively this protocol failure, this record are not that first request and this record to certain address is not last request to certain address; Also can use " 0 " of two-valued function represent respectively this record effectively, this record is to be last request to certain address to first request of certain address and this record; Use " 1 " of two-valued function to represent that respectively this protocol failure, this record are not that first request and this record to certain address is not last request to certain address; Certainly; Also have other method for expressing, the present invention does not limit this.
CAM whenever receives a request; For example, from the Address requests that CA in the fault-tolerant computer system of the multiprocessor in the cloud computing field sends, CAM all will with to the request of this address with the stored in form of record in corresponding position; Perhaps before the change storage to will be behind the record of the request of this address to the request of this address with the stored in form of record in corresponding position; In other words, CAM writes down once a request of an address, and each record takies the memory cell of CAM.Therefore, the present invention relates to " degree of depth " problem of CAM.The degree of depth of so-called CAM; In brief, be meant size or the number of wherein memory cell of the memory space of CAM, can be used for characterizing the storage capacity of CAM; It numerically must with all nodes in the system to all addresses send the number that might ask equate; For example, the number of node CA is 10 in the fault-tolerant computer system of the multiprocessor in the cloud computing field, and the maximum number to the request of address (being not necessarily same address) that each CA can initiate is 60; So, the degree of depth of the CAM of receiver address request must be 600 (=10 * 60).
The call number Index that can use the largest request number of the number of node and the address that each node can send to be converted into identifies the position of each memory cell of CAM; For example, if the number of node is 4, each node is 64 to the largest request number of address; Perhaps; Use 8 binary representation call number Index, available high 2 numbers of representing node represent that each node is to the largest request number of address in 4 nodes for low 6.With 4 node CA0, CA1, CA2 and CA3 in the fault-tolerant computer system of the multiprocessor in the cloud computing field is example; Shown in accompanying drawing 3 (call number Index all has been converted into the decimal system); The value of call number Index is that 0 to the 63 sign storage CA0 node Address requests of sending is (with the record form; The position of memory cell in CAM down together); The value of call number Index is the position of memory cell in CAM of the Address requests of 64 to 127 sign storage CA1 nodes transmissions; The value of call number Index is the position of memory cell in CAM of 128 to the 191 sign storage CA2 nodes Address requests of sending, and the value of call number Index is the position of memory cell in CAM of 192 to the 255 sign storage CA3 nodes Address requests of sending.Therefore; As long as the request mark (using Tid to represent in the embodiment of the invention) of the request of carrying the node identification (using Nid to represent in the embodiment of the invention) of the node of the request of transmission in the request and sending; CAM just can find the position of corresponding memory cell in CAM, with these requests of stored in form of record.
Can know from the call number Index of accompanying drawing 3 examples and the relation of node identification and request mark; With node (for example; CA) number be 4, each node to the largest request number of address is that the fault-tolerant computer system of the multiprocessor in 64 the cloud computing field is an example; The method that provides according to the embodiment of the invention; Only needing a degree of depth is that 64 * 4 CAM can satisfy all nodes with the parallel requirement of sending Address requests of its largest request number, and according to the FIFO sequencing method that provides in the background technology, and then needing 64 * 4 degree of depth is that 64 * 4 fifo queue could satisfy all nodes with the parallel requirement of sending Address requests of its largest request number; It is thus clear that; The method that the embodiment of the invention provides had both guaranteed when all nodes send all requests to all addresses enough memory spaces are arranged, and had guaranteed the maximum use to the hardware store resource again, had improved the utilance of hardware resource.
With aforementioned request to address Addra embodiment illustrated in fig. 2 is example.For the convenience that says something; In the method that the embodiment of the invention provides; Field Valid, Header and Tail use " 1 " of two-valued function represent respectively this record effectively, this record is to be last request to certain address to first request of certain address and this record, uses " 0 " of two-valued function to represent that respectively this protocol failure, this record are not that first request and this record to certain address is not last request to certain address.
Owing to carried sign Tid in the request to address Addra to the node identification Nid of the node of the request of address Addra and said request to address Addra; Therefore; Will to the request of address Addra with the stored in form of record when the corresponding position of said sign Nid and said sign Tid; Can be at said sign Nid and the corresponding position of said sign Tid identifies field Valid, field Header and field Tail respectively and respectively to field Addr, fill to said field Entry0 with to said next number field Next; Wherein, Filling to next number field Next needs to carry out according to the result that field Tail is identified; That is, if the result that field Tail is identified for said record is not last request to address Addra, then adopts the corresponding sign filling of memory location institute of next bar record of the request of the address Addra next number field Next to the request of address Addra.
For example, suppose that node CA0 initiates the 0th request (this request is cached in CAM, down together) to address Addra to HA, at this moment, the Nid of node CA0 is designated 0, and request mark Tid is 0.CAM through retrieval Addr field, seeks whether there is effective record to address Addra after the request of receiving.Owing to do not exist,, 0 memory cell with the stored in form that writes down with CA0 in Index to the 0th request of address Addra according to the conversion regular (rule is seen the example of accompanying drawing 3) of call number Index and node identification and request mark; And field Valid, Header and Tail are designated " 1 " respectively, note { Valid, Header; Tail}={1; 1,1} is shown in accompanying drawing 4a.
For another example, suppose that at node CA0 node CA1 initiates the 1st request to address Addra to HA after HA initiates the 0th request to address Addra, at this moment, the Nid of node CA1 is designated 1, and request mark Tid is 1.CAM through retrieval Addr field, seeks whether there is effective record to address Addra after the request of receiving.Owing to there is effectively the record to address Addra, the record to address Addra of storage before the change then promptly, is that the Tail field is changed to 0 in 0 the memory cell with Index; According to the conversion rule of the call number Index of accompanying drawing 3 examples and node identification and request mark, the request mark Tid that node CA1 initiates be 1 request should to be stored in call number Index be 65 memory cell, therefore; Should be that the Next field is changed to 65 in 0 the memory cell with Index also, next expression should handle call number Index be 65 memory cell, promptly; 's 65 memory cell with the stored in form of record with CA1 in Index to the 1st request of address Addra; And field Valid and Tail are designated " 1 " respectively, note { Valid, Tail}={1; 1} is shown in accompanying drawing 4b.
Also as, suppose at node CA1 that after HA initiates the 1st request to address Addra node CA2 is to 2nd request of HA initiation to address Addra, at this moment, the Nid of node CA2 is designated 2, request mark Tid is 2.CAM through retrieval Addr field, seeks whether there is effective record to address Addra after the request of receiving.Owing to there is effectively the record to address Addra, the record to address Addra of storage before the change then promptly, is that the Tail field is changed to 0 in 65 the memory cell with Index; According to the conversion rule of the call number Index of accompanying drawing 3 examples and node identification and request mark, the request mark Tid that node CA2 initiates be 2 request should to be stored in call number Index be 130 memory cell, therefore; Should be that the Next field is changed to 130 in 65 the memory cell with Index also, next expression should handle call number Index be 130 memory cell, promptly; 's 130 memory cell with the stored in form of record with CA2 in Index to the 2nd request of address Addra; And field Valid and Tail are designated " 1 " respectively, note { Valid, Tail}={1; 1} is shown in accompanying drawing 4c.
Likewise, suppose that node CA0 initiates the 1st request to address Addrb to HA, at this moment, the Nid of node CA0 is designated 0, and request mark Tid is 1.CAM through retrieval Addr field, seeks whether there is effective record to address Addrb after the request of receiving.Owing to do not exist,, 1 memory cell with the stored in form that writes down with CA0 in Index to the 1st request of address Addrb according to the conversion regular (rule is seen the example of accompanying drawing 3) of call number Index and node identification and request mark; And field Valid, Header and Tail are designated " 1 " respectively, note { Valid, Header; Tail}={1; 1,1} is shown in accompanying drawing 4d.
Need to prove; For filling to the next number field Next of the request of address Addra; If the result that field Tail is identified is last request to address Addra for corresponding record, then the next number field Next of the request of address Addra is filled an invalid value and perhaps do not fill any value.For example; Receive node CA0 after HA initiates the 0th request to address Addra, node CA1 is before HA initiates the 1st request to address Addra; What CAM thought current record is last request to address Addra; Therefore, CAM is that the Next field is filled an invalid value or do not filled any value in 65 the memory cell with Index temporarily, as using the X sign among the accompanying drawing 4b; For another example; Receive node CA1 after HA initiates the 1st request to address Addra, node CA2 is before HA initiates the 2nd request to address Addra; What CAM thought current record is last request to address Addra; Therefore, CAM is that the Next field is filled an invalid value or do not filled any value in 130 the memory cell with Index temporarily, as using the X sign among the accompanying drawing 4c.
The record case corresponding for accompanying drawing 4d example to the request of address Addra; If follow-up resource module need read from CAM to the request of address Addra with to the request of address Addrb simultaneously; Can be in 0,65 and 130 the memory cell to be that in 1 the memory cell request of address Addrb to be sent to follow-up resource module in the lump like this then, can improve the parallel processing capability of system call number Index to the request of address Addra and to call number Index.
When receiving that the request to the address is read in the request of resource processing module; CAM is parallel to be sent to the request of address Addra with to the asking to the resource processing module of address Addrb, can reclaim to the request of address Addra with to the shared storage resources of the request of address Addrb what be read.Resource recycling method can be to identify with " denying " respectively to the request of address Addra with to field Valid, field Header and field Tail in the corresponding record of the request of address Addrb what be read, according to the agreement of the embodiment of the invention; It can be " 0 " sign with two-valued function; Note { Valid, Header, Tail}={1; 1,1}.Need to prove; If the value of field Tail shows that said what be read is not last request to said address Addra to the corresponding record of the request of address Addra; The shared storage resources of next bar record that continue to reclaim then that said field Next points to the request of address Addra; Otherwise resource reclaims and leaves it at that.
For example, suppose that call number Index is that the request to address Addra is read in 0 the memory cell, then put call number Index and be record in 0 the memory cell Valid, Header, Tail}={0,0,0}, shown in accompanying drawing 5a, the result of recovery is shown in accompanying drawing 5b.(see that Index among the accompanying drawing 4b is shown in 0 the memory cell) because before resource reclaims; The value of field Tail shows that what be read is not last request to address Addra to the corresponding record of the request of address Addra; Continue to reclaim then that field Next points to next bar record of the request of address Addra (promptly; Index is the record in 65 the memory cell) shared storage resources is that the field Header that writes down in 65 the memory cell is changed to { Header}={1} with Index.
Put call number Index and be record in 65 the memory cell Valid, Header, Tail}={0,0,0}, shown in accompanying drawing 5b, the result of recovery is shown in accompanying drawing 5c.(see that Index among the accompanying drawing 4c is shown in 65 the memory cell) because before resource reclaims; The value of field Tail shows that what be read is not last request to address Addra to the corresponding record of the request of address Addra; Continue to reclaim then that field Next points to next bar record of the request of address Addra (promptly; Index is the record in 130 the memory cell) shared storage resources is that the field Header that writes down in 130 the memory cell is changed to { Header}={1} with Index.
Put call number Index and be record in 130 the memory cell Valid, Header, Tail}={0,0,0} is shown in accompanying drawing 5d.(see that Index among the accompanying drawing 4c is shown in 130 the memory cell) because before resource reclaims; The value of field Tail shows that what be read is last request to address Addra to the corresponding record of the request of address Addra, then finishes to reclaim the storage resources shared to the request of address Addra.
Likewise, suppose that call number Index is that the request to address Addrb is read in 1 the memory cell, then put call number Index and be record { Valid in 1 the memory cell; Header, Tail}={0,0; 0}, shown in accompanying drawing 5c, the result of recovery is shown in accompanying drawing 5d.(see that Index among the accompanying drawing 4d is shown in 1 the memory cell) because before resource reclaims; The value of field Tail shows that what be read is last request to address Addrb to the corresponding record of the request of address Addrb, then finishes to reclaim the storage resources shared to the request of address Addrb.
For the method for explaining that more particularly the above embodiment of the present invention provides, below provide two application scenarioss of the method that the embodiment of the invention provides.
Application scenarios one: in the fault-tolerant computer system of the multiprocessor in the cloud computing field; The passage of hardware requests can walk abreast exist a plurality of; Shown in accompanying drawing 6; There is M (can think that a request channel is corresponding with a node) in the request channel, that is, request channel 0 (Req Ch0), request channel 1 (Req Ch1) ..., request channel M-1 (Req Ch M-1).The request channel of Fig. 6 example can be the passage of CA to the Address requests of HA transmission; The resource processing module can be N, that is, resource processing module 0 (Proc Engine0), resource processing module 1 (Proc Engine1) ..., resource processing module N-1 (Proc Engine N-1); The resource processing module can require parallel processing to be stored among the CAM request to the address; M and N can equate, also can not wait, and so structure has increased the flexibility of Hardware Design.While is based on this processing of request method to same address of CAM; Can expand, safeguard the configuration of different request channel numbers and resource processing number of modules at an easy rate; And this structure can guarantee that again spending of hardware is minimum; The autgmentability of raising system, its principle can be with reference to foregoing embodiment.
Application scenarios two: because there is uncertainty in the conflict of request, so the request conflict of some address of CA request is big, the request conflict of some address is little.The address little for a plurality of conflicts can connect with a single chained list; That is, the request to the little address of a plurality of conflicts of adopting the chained list ways of connecting will use a plurality of chained lists to realize connects into a chained list, so; A chained list is managed a plurality of single request address; Shown in accompanying drawing 7, chained list 1 management is to the single request of address C and address B, and chained list 2 management are to the single request of address G, address F, address E and address D.So, the stand-by period of resource processing module can be very short, and the efficient of resource processing module can be very high.Address for medium conflict; Also can adopt same treatment method, connect, promptly use a chained list to manage several original " little chained list " with a single chained list for the little address of a plurality of conflicts; So; The stand-by period of resource processing module can be compromise relatively, can realize the QoS of the request of handling, and effectively promotes overall systematic function.
See also accompanying drawing 8, the embodiment of the invention provide to address processing of request apparatus structure sketch map.For the ease of explanation, only show the part relevant with the embodiment of the invention.The processing of request device to same address of accompanying drawing 8 examples comprises receiver module 801 and memory module 802, wherein:
Receiver module 801 is used for the request of receiving system arbitrary node Node1 to address Addra, and described request comprises the sign Nid of said node Node1 and the sign Tid of described request at least.
In the present invention; Described system can be the fault-tolerant computer system of the multiprocessor in the cloud computing field; Node Node1 can be in the fault-tolerant computer system any caching agent (Cache Agent, CA), the sign Nid be used for node Node1 is identified.Because node Node1 can send a more than request to address Addra or other addresses; Therefore; In the present embodiment, can use sign Tid that the request to address Addra or other addresses that node Node1 sends is identified, be beneficial to distinguish each request that node Node1 sends.
Memory module 802; Be used for the request to address Addra that said receiver module 801 receives is stored in and said sign Nid and the corresponding position of said sign Tid, perhaps change store before to after the request of address Addra said request to address Addra being stored in and said sign Nid and the corresponding position of said sign Tid.
In the present embodiment; The reserved storage space of might asking that can send all addresses for all nodes in the system in advance; A request takies a unit of memory space, the call number sign that the request mark of the request that node identification in the unit using system of each memory space and said node send is converted into." institute might the ask " meaning here is, because a node can not only send a request, in order to store these requests; Must consider all requests that all nodes in the system send all addresses maybe, for example, have 10 nodes in the supposing the system; The Address requests that node can send is 60 at most, so, needs and only need be the unit that these 10 nodes are reserved the individual memory spaces in 600 (=10 * 60); Memory module 802 these Address requests of storage; So, both having guaranteed can have enough memory spaces when all nodes send all requests to all addresses, has guaranteed not waste the hardware store resource again.
In the present embodiment, when receiver module 801 was received the request to address Addra first, then memory module 802 was stored in said request to address Addra and said sign Nid and the corresponding position of said sign Tid; When receiver module 801 is not the request of receiving first address Addra, then before memory module 802 changes storage to after the request of address Addra said request to address Addra being stored in and said sign Nid and the corresponding position of said sign Tid.
Need to prove; More than in the execution mode to address processing of request device, the division of each functional module only illustrates, can be as required in the practical application; For example the facility of the realization of the configuration requirement of corresponding hardware or software is considered; Accomplish and above-mentioned functions distributed by different functional, the internal structure that is about to said processing of request device to same address is divided into different functional, to accomplish all or part of function of above description.And in the practical application, the corresponding functional modules in the present embodiment can be to be realized by relevant hardware; Also can carry out corresponding software by relevant hardware accomplishes; For example, aforesaid receiver module can be to have to carry out in the aforementioned receiving system arbitrary node Node1 to the hardware of the request of address Addra; Receiver for example, thus also can be to carry out general processor or other hardware devices that the corresponding computer program is accomplished aforementioned functional; Aforesaid for another example memory module; Can be have carry out the aforementioned request that said receiver module (or receiver) is received to address Addra be stored in storage before corresponding position of said sign Nid and said sign Tid or the change to will said request after the request of address Addra being stored in the hardware of the position functions of said sign Nid and said sign Tid correspondence to address Addra; Memory for example, thus also can be to carry out general processor or other hardware devices (each embodiment that this specification provides can use the foregoing description principle) that the corresponding computer program is accomplished aforementioned functional.
With CAM (Content Addressable Memory; CAM) be example; Memory module 802 specifically be used for said receiver module 801 receive to the request of address Addra with the stored in form of record in said sign Nid and the corresponding position of said sign Tid, perhaps before the change storage to will be said after the request of address Addra to the request of address Addra with the stored in form of record in the position of said sign Nid and said sign Tid correspondence.Memory module 802 performed " with said request to address Addra with the stored in form of record in said sign Nid and the corresponding position of said sign Tid " record in the step comprises following field:
Valid: represent whether this record is effective;
Header: represent whether this record is first request to certain address;
Tail: represent whether this record is last request to certain address;
Addr: the address that identifies this request;
Entry0: identifying the particular content of this request, mainly is the data structure of this request;
Next: sign is for the next number of same Address requests; If the Tail field of this record has been changed to effectively; Ignore the Next field so; If the Tail field is invalid and the Valid field is effective, when handling current record, need operate next bar record so according to the value of Next field.
Above-mentioned field can be through the characteristic of CAM, locatees efficiently and searches.
For field Valid, Header and Tail; Can use " 1 " of two-valued function represent respectively this record effectively, this record is to be last request to certain address to first request of certain address and this record, uses " 0 " of two-valued function to represent that respectively this protocol failure, this record are not that first request and this record to certain address is not last request to certain address; Also can use " 0 " of two-valued function represent respectively this record effectively, this record is to be last request to certain address to first request of certain address and this record; Use " 1 " of two-valued function to represent that respectively this protocol failure, this record are not that first request and this record to certain address is not last request to certain address; Certainly; Also have other method for expressing, the present invention does not limit this.
So; The memory module 802 of accompanying drawing 8 examples can comprise field processing sub 901; Be used at said sign Nid and the corresponding position of said sign Tid identifies said field Valid, field Header and field Tail respectively and respectively to said field Addr, fill to said field Entry0 with to said next number field Next, another embodiment of the present invention provides shown in accompanying drawing 9 to address processing of request device.
Receiver module 801 is whenever received a request; For example; Address requests from CA transmission in the fault-tolerant computer system of the multiprocessor in the cloud computing field; Memory module 802 all will with to the request of this address with the stored in form of record in corresponding position, perhaps before the change storage to will be behind the record of the request of this address to the request of this address with the stored in form of record in corresponding position, in other words; A request of 802 pairs of addresses of memory module is write down once, and each record takies the memory cell of CAM.Therefore, the present invention relates to " degree of depth " problem of CAM.The degree of depth of so-called CAM; In brief, be meant size or the number of wherein memory cell of the memory space of CAM, can be used for characterizing the storage capacity of CAM; It numerically must with all nodes in the system to all addresses send the number that might ask equate; For example, the number of node CA is 10 in the fault-tolerant computer system of the multiprocessor in the cloud computing field, and the maximum number to the request of address (being not necessarily same address) that each CA can initiate is 60; So, the degree of depth of the CAM of receiver address request must be 600 (=10 * 60).
The call number Index that can use the largest request number of the number of node and the address that each node can send to be converted into identifies the position of each memory cell of CAM; For example, if the number of node is 4, each node is 64 to the largest request number of address; Perhaps; Use 8 binary representation call number Index, available high 2 numbers of representing node represent that each node is to the largest request number of address in 4 nodes for low 6.With 4 node CA0, CA1, CA2 and CA3 in the fault-tolerant computer system of the multiprocessor in the cloud computing field is example; Shown in accompanying drawing 3 (call number Index all has been converted into the decimal system); The value of call number Index is that 0 to the 63 sign storage CA0 node Address requests of sending is (with the record form; The position of memory cell in CAM down together); The value of call number Index is the position of memory cell in CAM of the Address requests of 64 to 127 sign storage CA1 nodes transmissions; The value of call number Index is the position of memory cell in CAM of 128 to the 191 sign storage CA2 nodes Address requests of sending, and the value of call number Index is the position of memory cell in CAM of 192 to the 255 sign storage CA3 nodes Address requests of sending.Therefore; As long as the request mark (using Tid to represent in the embodiment of the invention) of the request of carrying the node identification (using Nid to represent in the embodiment of the invention) of the node of the request of transmission in the request and sending; Memory module 802 just can find the position of corresponding memory cell in CAM, with these requests of stored in form of record.
Can know from the call number Index of accompanying drawing 3 examples and the relation of node identification and request mark; With node (for example; CA) number be 4, each node to the largest request number of address is that the fault-tolerant computer system of the multiprocessor in 64 the cloud computing field is an example; The method that provides according to the embodiment of the invention; Only needing a degree of depth is that 64 * 4 CAM can satisfy all nodes with the parallel requirement of sending Address requests of its largest request number, and according to the FIFO sequencing method that provides in the background technology, and then needing 64 * 4 degree of depth is that 64 * 4 fifo queue could satisfy all nodes with the parallel requirement of sending Address requests of its largest request number; It is thus clear that; The method that the embodiment of the invention provides had both guaranteed when all nodes send all requests to all addresses enough memory spaces are arranged, and had guaranteed the maximum use to the hardware store resource again, had improved the utilance of hardware resource.
With aforementioned request to address Addra embodiment illustrated in fig. 2 is example.For the convenience that says something; In the method that the embodiment of the invention provides; Field Valid, Header and Tail use " 1 " of two-valued function represent respectively this record effectively, this record is to be last request to certain address to first request of certain address and this record, uses " 0 " of two-valued function to represent that respectively this protocol failure, this record are not that first request and this record to certain address is not last request to certain address.
Carried sign Tid in the request to address Addra to the node identification Nid of the node of the request of address Addra and said request to address Addra; Therefore; Memory module 802 will to the request of address Addra with the stored in form of record when the corresponding position of said sign Nid and said sign Tid; Can be field processing sub 901 at said sign Nid and the corresponding position of said sign Tid identifies field Valid, field Header and field Tail respectively and respectively to field Addr, fill to said field Entry0 with to said next number field Next; Wherein, the filling to next number field Next needs to carry out according to the result that field Tail is identified.
Because the filling of 901 pairs of next number fields of field processing sub Next needs to carry out according to the result that field Tail is identified; Therefore; Field processing sub 901 may further include first filler cells 1001, and another embodiment of the present invention provides shown in accompanying drawing 10 to address processing of request device.First filler cells 1001 is used for if the result that identifies of 901 couples of field Tail of field processing sub, then adopts the next number field Next to the request of the said address Addra of the corresponding sign filling of memory location institute of next bar record of the request of address Addra for said record is not last request to said address Addra.
For example, suppose that node CA0 initiates the 0th request (this request is cached in CAM, down together) to address Addra to HA, at this moment, the Nid of node CA0 is designated 0, and request mark Tid is 0.Receiver module 801 through retrieval Addr field, seeks whether there is effective record to address Addra after the request of receiving.Owing to do not exist, according to the conversion regular (rule is seen the example of accompanying drawing 3) of call number Index and node identification and request mark, memory module 802 is 0 memory cell in Index with the stored in form that writes down to the 0th request of address Addra with CA0; And field processing sub 901 is designated " 1 " respectively with field Valid, Header and Tail, note { Valid, Header; Tail}={1; 1,1} is shown in accompanying drawing 4a.
For another example, suppose that at node CA0 node CA1 initiates the 1st request to address Addra to HA after HA initiates the 0th request to address Addra, at this moment, the Nid of node CA1 is designated 1, and request mark Tid is 1.Receiver module 801 through retrieval Addr field, seeks whether there is effective record to address Addra after the request of receiving.Owing to there is effectively the record to address Addra, the record to address Addra of storage before memory module 802 changes then promptly, is that the Tail field is changed to 0 in 0 the memory cell with Index; Conversion rule according to the call number Index of accompanying drawing 3 examples and node identification and request mark; The request mark Tid that node CA1 initiates be 1 request should to be stored in call number Index be 65 memory cell, therefore, first filler cells 1001 should be that the Next field is changed to 65 in 0 the memory cell with Index also; Next expression should handle call number Index is 65 memory cell; That is, memory module 802 is 65 memory cell with the stored in form of record in Index to the 1st request of address Addra with CA1, and field processing sub 901 is designated " 1 " respectively with field Valid and Tail; Note { Valid; Tail}={1,1} is shown in accompanying drawing 4b (among the figure).
Also as, suppose at node CA1 that after HA initiates the 1st request to address Addra node CA2 is to 2nd request of HA initiation to address Addra, at this moment, the Nid of node CA2 is designated 2, request mark Tid is 2.Receiver module 801 through retrieval Addr field, seeks whether there is effective record to address Addra after the request of receiving.Owing to there is effectively the record to address Addra, the record to address Addra of storage before memory module 802 changes then promptly, is that the Tail field is changed to 0 in 65 the memory cell with Index; Conversion rule according to the call number Index of accompanying drawing 3 examples and node identification and request mark; The request mark Tid that node CA2 initiates be 2 request should to be stored in call number Index be 130 memory cell, therefore, first filler cells 1001 should be that the Next field is changed to 130 in 65 the memory cell with Index also; Next expression should handle call number Index is 130 memory cell; That is, memory module 802 is 130 memory cell with the stored in form of record in Index to the 2nd request of address Addra with CA2, and field processing sub 901 is designated " 1 " respectively with field Valid and Tail; Note { Valid; Tail}={1,1} is shown in accompanying drawing 4c.
Likewise, suppose that node CA0 initiates the 1st request to address Addrb to HA, at this moment, the Nid of node CA0 is designated 0, and request mark Tid is 1.Receiver module 801 through retrieval Addr field, seeks whether there is effective record to address Addrb after the request of receiving.Owing to do not exist, according to the conversion regular (rule is seen the example of accompanying drawing 3) of call number Index and node identification and request mark, memory module 802 is 1 memory cell in Index with the stored in form that writes down to the 1st request of address Addrb with CA0; And field processing sub 901 is designated " 1 " respectively with field Valid, Header and Tail, note { Valid, Header; Tail}={1; 1,1} is shown in accompanying drawing 4d.
Because the filling of 901 pairs of next number fields of field processing sub Next needs to carry out according to the result that field Tail is identified; Therefore; Field processing sub 901 may further include second filler cells 1101, and another embodiment of the present invention provides shown in accompanying drawing 11 to address processing of request device.Second filler cells 1101 is used for if the result that identifies of 901 couples of field Tail of field processing sub is last request to said address Addra for said record, and then the next number field Next to the request of said address Addra fills an invalid value or do not fill any value.For example; Receiver module 801 receive node CA0 after HA initiates the 0th request to address Addra, node CA1 is before HA initiates the 1st request to address Addra; What CAM thought current record is last request to address Addra; Therefore, second filler cells 1101 is that the Next field is filled an invalid value or do not filled any value in 65 the memory cell with Index temporarily, as using the X sign among the accompanying drawing 4b; For another example; Receiver module 801 receive node CA1 after HA initiates the 1st request to address Addra, node CA2 is before HA initiates the 2nd request to address Addra; What CAM thought current record is last request to address Addra; Therefore, second filler cells 1101 is that the Next field is filled an invalid value or do not filled any value in 130 the memory cell with Index temporarily, as using the X sign among the accompanying drawing 4c.
The processing of request device to same address of accompanying drawing 8 to accompanying drawing 11 arbitrary examples can also comprise resource sending module 1201, and another embodiment of the present invention provides shown in accompanying drawing 12 to address processing of request device.Sending module 1201 is used for when receiving that the request to the address is read in the request of resource processing module; Parallel request and request to said resource processing module of sending said to address Addra to being different from address Addra; So that said resource processing module is carried out corresponding operation (for example, reading of data perhaps writes data or the like to the pairing memory cell in address from the pairing memory cell in address) according to said request of reading to the address.Particularly; Can adopt a linked list data structure to realize to the request of address Addra; Adopt another linked list data structure to realize to the request that is different from address Addra; Then, two chained lists are coupled together (for example, the tail with a chained list links to each other with the head of another chained list) transmission that can walk abreast to the request of address Addra with to being different from the request of address Addra.Obviously, this processing method has satisfied the requirement of the parallel processing of follow-up resource processing module.
Accompanying drawing 8 to accompanying drawing 12 arbitrary examples can also comprise resource recycling module 1301 to address processing of request device, another embodiment of the present invention provides shown in accompanying drawing 13 to address processing of request device.
Resource recycling module 1301 is used for when CAM receives that the request to the address is read in the request of resource processing module; Sending module 1201 is parallel to be sent to the request of address Addra with to being different from the asking to the resource processing module of address Addra, and the shared storage resources of the request to the address that is read is reclaimed.
The resource recycling module 1301 of accompanying drawing 13 examples can also comprise identify unit 1401, and another embodiment of the present invention provides shown in accompanying drawing 14 to address processing of request device.Identify unit 1401 is used for said be read the request of address Addra corresponding record field Valid, field Header and field Tail are identified with " denying " respectively; According to the agreement of the embodiment of the invention, can be " 0 " sign with two-valued function, note { Valid; Header; Tail}={1,1,1}.Need to prove; If the value of field Tail shows that said what be read is not last request to said address Addra to the corresponding record of the request of address Addra, resource recycling module 1301 is used to also to continue to reclaim that said field Next points to the shared storage resources of next bar record of the request of address Addra.
For example, suppose that call number Index is that the request to address Addra is read in 0 the memory cell, then to put call number Index be record { Valid in 0 the memory cell to identify unit 1401; Header, Tail}={0,0; 0}, shown in accompanying drawing 5a, the result of recovery is shown in accompanying drawing 5b.(see that Index among the accompanying drawing 4b is shown in 0 the memory cell) because before resource reclaims; The value of field Tail shows that what be read is not last request to address Addra to the corresponding record of the request of address Addra; Then resource recycling module 1201 continue to reclaim field Next point to next bar record of the request of address Addra (promptly; Index is the record in 65 the memory cell) shared storage resources is that the field Header that writes down in 65 the memory cell is changed to { Header}={1} with Index.
Identify unit 1401 put call number Index be record in 65 the memory cell Valid, Header, Tail}={0,0,0}, shown in accompanying drawing 5b, the result of recovery is shown in accompanying drawing 5c.(see that Index among the accompanying drawing 4c is shown in 65 the memory cell) because before resource reclaims; The value of field Tail shows that what be read is not last request to address Addra to the corresponding record of the request of address Addra; Then the resource recycling module continue to reclaim that field Next points to next bar record of the request of address Addra (promptly; Index is the record in 130 the memory cell) shared storage resources is that the field Header that writes down in 130 the memory cell is changed to { Header}={1} with Index.
Identify unit 1401 put call number Index be record in 130 the memory cell Valid, Header, Tail}={0,0,0} is shown in accompanying drawing 5d.(see that Index among the accompanying drawing 4c is shown in 130 the memory cell) because before resource reclaims; The value of field Tail shows that what be read is last request to address Addra to the corresponding record of the request of address Addra, and then resource recycling module 1301 finishes to reclaim the storage resources shared to the request of address Addra.
Likewise, suppose that call number Index is that the request to address Addrb is read in 1 the memory cell, then to put call number Index be record { Valid in 1 the memory cell to identify unit 1401; Header, Tail}={0,0; 0}, shown in accompanying drawing 5c, the result of recovery is shown in accompanying drawing 5d.(see that Index among the accompanying drawing 4d is shown in 1 the memory cell) because before resource reclaims; The value of field Tail shows that what be read is last request to address Addrb to the corresponding record of the request of address Addrb, and then resource recycling module 1301 finishes to reclaim the storage resources shared to the request of address Addrb.
Need to prove, accompanying drawing 13 and accompanying drawing 14 examples to address processing of request device in, the number of node can equate with the number of said resource processing module in the system, also can be unequal.What the embodiment of the invention provided can be based on field programmable gate array (Field Programmable GateArray to address processing of request device; FPGA) or application-specific integrated circuit (ASIC) (Application Specific Integrated Circuit ASIC) realizes.
Need to prove; Contents such as the information interaction between each module/unit of said apparatus, implementation; Since with the inventive method embodiment based on same design; Its technique effect that brings is identical with the inventive method embodiment, and particular content can repeat no more referring to the narration among the inventive method embodiment here.
One of ordinary skill in the art will appreciate that all or part of step in the whole bag of tricks of the foregoing description is to instruct relevant hardware to accomplish through program, such as following the whole bag of tricks one or more or all:
Arbitrary node Node1 is to the request of address Addra in the receiving system, and described request comprises the sign Nid of said node Node1 and the sign Tid of described request at least;
Said request to address Addra is stored in and said sign Nid and the corresponding position of said sign Tid, perhaps the change before the storage to after the request of address Addra said request to address Addra being stored in and said sign Nid and the corresponding position of said sign Tid.
This program can be stored in the computer-readable recording medium, and storage medium can comprise: read-only memory (ROM, Read Only Memory), random access memory (RAM, Random Access Memory), disk or CD etc.
More than to what the embodiment of the invention provided address processing of request method and apparatus has been carried out detailed introduction; Used concrete example among this paper principle of the present invention and execution mode are set forth, the explanation of above embodiment just is used for helping to understand method of the present invention and core concept thereof; Simultaneously, for one of ordinary skill in the art, according to thought of the present invention, the part that on embodiment and range of application, all can change, in sum, this description should not be construed as limitation of the present invention.

Claims (17)

1. one kind to address processing of request method, it is characterized in that said method comprises:
Arbitrary node Node1 is to the request of address Addra in the receiving system, and described request comprises the sign Nid of said node Node1 and the sign Tid of described request at least;
Said request to address Addra is stored in and said sign Nid and the corresponding position of said sign Tid, perhaps the change before the storage to after the request of address Addra said request to address Addra being stored in and said sign Nid and the corresponding position of said sign Tid.
2. the method for claim 1; It is characterized in that; Said said request to address Addra is stored in and said sign Nid and the corresponding position of said sign Tid; Perhaps being specially of storage before the change to will said request after the request of address Addra being stored in said sign Nid and the corresponding position of said sign Tid to address Addra: will be said to the request of address Addra with the stored in form of record in said sign Nid and the corresponding position of said sign Tid, perhaps change store before to after the request of address Addra with said request to address Addra with the stored in form that writes down in said sign Nid and the corresponding position of said sign Tid;
Said record comprise said record whether effectively field Valid, said record whether be the field Header to first request of said address Addra, said record whether be the value field Addr of the field Tail to last request of said address Addra, said address Addra, to the particular content field Entry0 of the request of said address Addra with to the next number field Next of the request of said address Addra, the next number field Next of said request to address Addra points to next the bar record to the request of address Addra;
Said the stored in form of said request to address Addra with record comprised in said sign Nid and the corresponding position of said sign Tid: at said sign Nid with the corresponding position of said sign Tid identifies said field Valid, field Header and field Tail respectively and respectively to said field Addr, fill to said field Entry0 with to said next number field Next.
3. method as claimed in claim 2 is characterized in that, the next number field Next of said request to said address Addra fills and comprises:
If the result that said field Tail is identified is last request to said address Addra for said record, then the next number field Next to the request of said address Addra fills an invalid value or does not fill any value;
If the result that said field Tail is identified, then adopts the next number field Next to the request of the said address Addra of the corresponding sign filling of memory location institute of next bar record of the request of address Addra for said record is not last request to said address Addra.
4. the method for claim 1; It is characterized in that; Said said request to address Addra is stored in and said sign Nid and the corresponding position of said sign Tid, perhaps further the comprising afterwards of storage before the change will said request after the request of address Addra being stored in the position corresponding with said sign Nid and said sign Tid to address Addra:
When receiving that the request to the address is read in the request of resource processing module; Parallel request and request to the said resource processing module to being different from address Addra of sending said to address Addra is so that said resource processing module is carried out corresponding operation according to said request of reading to the address.
5. method as claimed in claim 5 is characterized in that, said parallel transmission is said to the request of address Addra with to also comprising after request to the said resource processing module that is different from address Addra:
The said shared storage resources of the request to the address that is read is reclaimed.
6. method as claimed in claim 5 is characterized in that, the said said shared storage resources of the request to the address that is read is reclaimed comprises:
With said be read field Valid, field Header and field Tail in the corresponding record of the request of address are identified with " denying " respectively.
7. method as claimed in claim 6; It is characterized in that; If the value of said field Tail shows that said what be read is not last request to said address to the corresponding record of the request of address, continue then to reclaim that said field Next points to the shared storage resources of next bar record of the request of said address.
8. like any described method of claim 1 to 7, it is characterized in that the number of node equates with the number of said resource processing module or unequal in the said system.
9. one kind to address processing of request device, it is characterized in that said device comprises:
Receiver module is used for the request of receiving system arbitrary node Node1 to address Addra, and described request comprises the sign Nid of said node Node1 and the sign Tid of described request at least;
Memory module; Be used for the request to address Addra that said receiver module receives is stored in said sign Nid and the corresponding position of said sign Tid, perhaps before the change storage to will said request after the request of address Addra being stored in the position of said sign Nid and said sign Tid correspondence to address Addra.
10. device as claimed in claim 9; It is characterized in that; Said memory module specifically be used for said receiver module receive to the request of address Addra with the stored in form of record in said sign Nid and the corresponding position of said sign Tid, perhaps before the change storage to will be said after the request of address Addra to the request of address Addra with the stored in form of record in the position of said sign Nid and said sign Tid correspondence;
Said record comprise said record whether effectively field Valid, said record whether be the field Header to first request of said address Addra, said record whether be the value field Addr of the field Tail to last request of said address Addra, said address Addra, to the particular content field Entry0 of the request of said address Addra with to the next number field Next of the request of said address Addra, the next number field Next of said request to address Addra points to next the bar record to the request of address Addra;
Said memory module comprises:
The field processing sub is used at said sign Nid and the corresponding position of said sign Tid identifies said field Valid, field Header and field Tail respectively and respectively to said field Addr, fill to said field Entry0 with to said next number field Next.
11. device as claimed in claim 10 is characterized in that, said field processing sub comprises:
First filler cells; Be used for if the result that said field Tail is identified, then adopts the next number field Next to the request of the said address Addra of the corresponding sign filling of memory location institute of next bar record of the request of address Addra for said record is not last request to said address Addra;
Second filler cells; Be used for if the result that said field Tail is identified is last request to said address Addra for said record, then the next number field Next to the request of said address Addra fills an invalid value or does not fill any value.
12. device as claimed in claim 10 is characterized in that, said device also comprises:
Sending module; Be used for when receiving that the request to the address is read in the request of resource processing module; Parallel request and request to the said resource processing module to being different from address Addra of sending said to address Addra is so that said resource processing module is carried out corresponding operation according to said request of reading to the address.
13. device as claimed in claim 12 is characterized in that, said device also comprises:
The resource recycling module is used for the shared storage resources of the request to the address that is read said.
14. device as claimed in claim 13 is characterized in that, said resource recycling module comprises:
Identify unit is used for said be read the request of address corresponding record field Valid, field Header and field Tail are identified with " denying " respectively.
15. like any described device of claim 14; It is characterized in that; Said resource recycling module also be used for if the value of said field Tail show said be read the corresponding record of the request of address is not last request to said address the time, continue to reclaim that said field Next points to that the shared storage resources of next bar record of the request of said address is reclaimed.
16., it is characterized in that the number of node equates with the number of said resource processing module or unequal in the said system like any described device of claim 9 to 14.
17., it is characterized in that said device is realized based on on-site programmable gate array FPGA or application-specific integrated circuit ASIC like any described device of claim 9 to 14.
CN201180001787.8A 2011-08-01 2011-08-01 Method and device for processing address request Active CN102439947B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/077869 WO2012109869A1 (en) 2011-08-01 2011-08-01 Method and device for processing address request

Publications (2)

Publication Number Publication Date
CN102439947A true CN102439947A (en) 2012-05-02
CN102439947B CN102439947B (en) 2014-02-19

Family

ID=45986278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180001787.8A Active CN102439947B (en) 2011-08-01 2011-08-01 Method and device for processing address request

Country Status (2)

Country Link
CN (1) CN102439947B (en)
WO (1) WO2012109869A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104571934A (en) * 2013-10-18 2015-04-29 华为技术有限公司 Memory access method, equipment and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1620651A (en) * 2002-01-09 2005-05-25 国际商业机器公司 Method and apparatus for using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
CN101252536A (en) * 2008-03-31 2008-08-27 清华大学 Router multi-queue data pack buffer management and output queue scheduling system
CN102014076A (en) * 2010-12-24 2011-04-13 北京航天测控技术开发公司 PCIe retry buffer area and realization method thereof
WO2011075170A1 (en) * 2009-12-15 2011-06-23 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1620651A (en) * 2002-01-09 2005-05-25 国际商业机器公司 Method and apparatus for using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
CN101252536A (en) * 2008-03-31 2008-08-27 清华大学 Router multi-queue data pack buffer management and output queue scheduling system
WO2011075170A1 (en) * 2009-12-15 2011-06-23 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
CN102014076A (en) * 2010-12-24 2011-04-13 北京航天测控技术开发公司 PCIe retry buffer area and realization method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104571934A (en) * 2013-10-18 2015-04-29 华为技术有限公司 Memory access method, equipment and system
CN104571934B (en) * 2013-10-18 2018-02-06 华为技术有限公司 A kind of method, apparatus and system of internal storage access

Also Published As

Publication number Publication date
CN102439947B (en) 2014-02-19
WO2012109869A1 (en) 2012-08-23

Similar Documents

Publication Publication Date Title
US8381230B2 (en) Message passing with queues and channels
CN102446139B (en) Method and device for data storage
US10740006B2 (en) System and method for enabling high read rates to data element lists
CN109388590B (en) Dynamic cache block management method and device for improving multichannel DMA (direct memory access) access performance
US9086920B2 (en) Device for managing data buffers in a memory space divided into a plurality of memory elements
CN104102693A (en) Object processing method and device
CN103647850B (en) Data processing method, device and system of distributed version control system
CN104394096A (en) Multi-core processor based message processing method and multi-core processor
CN108924187B (en) Task processing method and device based on machine learning and terminal equipment
US7111289B2 (en) Method for implementing dual link list structure to enable fast link-list pointer updates
CN115129621B (en) Memory management method, device, medium and memory management module
WO2020253407A1 (en) Method and device for executing write operation and read operation
US8543722B2 (en) Message passing with queues and channels
CN101783814A (en) Metadata storing method for mass storage system
CN101976229A (en) Data reading method, system and device for peripheral equipment of system
CN102439947B (en) Method and device for processing address request
CN116155828B (en) Message order keeping method and device for multiple virtual queues, storage medium and electronic equipment
CN110543362B (en) Graphics processor management method and device and server
CN112948298A (en) Message processing method and device
US9037805B2 (en) Managing a region cache
CN104598390A (en) Data storage method and device
CN110764707A (en) Data processing method and device
CN112559164A (en) Resource sharing method and device
CN104199895A (en) Big data real-time sorting processor based on two-memory system
CN112035383B (en) Data scheduling method, device and system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211223

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right