CN107315694A - A kind of buffer consistency management method and Node Controller - Google Patents

A kind of buffer consistency management method and Node Controller Download PDF

Info

Publication number
CN107315694A
CN107315694A CN201610256865.3A CN201610256865A CN107315694A CN 107315694 A CN107315694 A CN 107315694A CN 201610256865 A CN201610256865 A CN 201610256865A CN 107315694 A CN107315694 A CN 107315694A
Authority
CN
China
Prior art keywords
list
field
list item
data
node
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
CN201610256865.3A
Other languages
Chinese (zh)
Other versions
CN107315694B (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.)
Huawei 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
Priority to CN201610256865.3A priority Critical patent/CN107315694B/en
Priority to PCT/CN2017/080311 priority patent/WO2017181895A1/en
Publication of CN107315694A publication Critical patent/CN107315694A/en
Priority to US16/165,709 priority patent/US10691601B2/en
Application granted granted Critical
Publication of CN107315694B publication Critical patent/CN107315694B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0824Distributed directories, e.g. linked lists of caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0826Limited pointers directories; State-only directories without pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

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

Abstract

The embodiment of the invention discloses a kind of buffer consistency management method and Node Controller, this method is applied to multicomputer system, the multicomputer system, which is included, includes at least one processor in the first list, the second list and at least two nodes, each node, this method includes:According to the address information of data, the first list item corresponding with address information is determined in the first list, the first list item includes the first field and the second field, and the first field is used for the seizure condition of record data, if the first field is exclusive state, the second field is used for the node for indicating exclusive data;If the first field is shared state, according to the address information of data and the second field, determine to include the 3rd field in the second list item, the second list item in the second list, the 3rd field is used for the node for indicating shared data.The embodiment of the present invention is compressed in the case where not influenceing directory precision to the capacity of catalogue, so as to reduce query time, improves search efficiency.

Description

A kind of buffer consistency management method and Node Controller
Technical field
The present invention relates to multicomputer system technical field, more particularly to a kind of buffer consistency management method And Node Controller.
Background technology
Multicomputer system refers to include between two or the close processor of many functions, processor each other Data, all processor sharing internal memories, I/O equipment, controller, and external equipment can be exchanged, it is whole Individual hardware system is controlled by unified operating system, realized between processor and program operation, task, At different levels comprehensive parallel of program, array extremely element.
The storage of most of commercial cache coherent non-uniform accesses (Cache-Coherent Non-Uniform Memory Access, CC-NUMA) multiple processor system use the height based on catalogue Fast Cache coherency protocol, the memory of CC-NUMA multiple processor systems is physically distribution, All local memories constitute shared global address space.CC-NUMA multiple processor systems are most Significant advantage is that programmer need not clearly distribute data on node, and the hardware and software of system can be certainly Move and distribute data on each node.In program operation process, cache-coherence hardware can be automatically Data are moved into its place of needs.
Configuration diagrams of 1, the Fig. 1 for CC-NUMA multicomputer systems in the prior art is referred to, The system by multiple nodes (such as:Node0, Node1, Node2 ... NodeN) network interconnection is constituted, often Individual node includes:Node Controller is (such as:The NC2 in NC0 and Node2 in Node0) and extremely A few processor is (such as:CPU0 ... CPUn), each processor includes:Internal memory (Dual-Inline-Memory-Modules, DIMM) and three-level cache L3.
In CC-NUMA multicomputer systems, the L3 total capacities in each node in hundreds of MB or so, And total amount of memory is generally in tens TB or so.Normally, the data of processor cache are mostly position In internal memory, only a small number of data are located in L3, and data buffer storage in the L3 of cross-node then Less.Can be set in order to record the data of cross-node caching, on Node Controller catalogue (Directory, DIR), for storing the situation that data are cached by other modal processors in this node.Such as:In Node2 Data by the CPU0 in Node0 L3 cache, then can record this data in the corresponding catalogues of NC2 Cached by Node0, and it is exclusive or shared to record its buffer status.
Referring to Fig. 2, knots of the Fig. 2 for the catalogue in CC-NUMA multicomputer systems in the prior art Structure schematic diagram, the catalogue is using caching cache structures, and it includes:By j groups group (such as:group0、 Group1, group2, group3 ... groupj-2 and groupj-1) m roads wag is (such as:wag0、 Wag1 ... wagm-2 and wagm-1) tag entry tag entry composition label matrix tag array and by j Group is (such as:Group0, group1, group2, group3 ... groupj-2 and groupj-1) m roads are (such as: Wag0, wag1 ... wagm-2 and wagm-1) vector entries vector entry composition vector matrix vector array.Wherein, m, j are natural number, tag entry and vector entry be it is one-to-one, each Tag entry include:Label tag fields and seizure condition state fields, tag fields to be visited for system The high address for the corresponding memory address of data asked, state fields include exclusive state and shared state, Each vector entry include:Significance bit V fields and shared vector share vector fields, the share Vector fields are used for the node for indicating exclusive or shared data.
System is when accessing cross-node data, and Node Controller can exist according to the corresponding memory address of the data Inquired about in catalogue, if inquire the memory address corresponding node, being extracted from the node should Data.Memory address includes:Tag fields, index index fields and skew offset fields, specifically, Node Controller can determine the first packet according to index fields in tag array first, and according to index Field determines second packet in vector array, and all tag entry are corresponding during then first is grouped Tag fields are sent to comparator compare tag fields corresponding with memory address and are compared, if hit, The corresponding tag entry of memory address are determined in being then grouped first.Due to tag entry and vector entry It is one-to-one, so can determine that memory address is corresponding in second packet according to the tag entry vector entry.Final node controller is from the vector entry indicate the exclusive or node of shared data Extract the corresponding data of memory address.
Above-mentioned catalogue, tag entry and vector entry are one-to-one, in the lookup of data, should The precision of catalogue is highest, but the capacity of catalogue is also maximum.The capacity of catalogue is bigger, area Power consumption is also bigger, and query time is also longer, and search efficiency is also lower.
The content of the invention
The embodiments of the invention provide a kind of buffer consistency management method and Node Controller, do not influenceing In the case of directory precision, the capacity of catalogue is compressed, so as to reduce query time, improved Search efficiency.
The first aspect of the embodiment of the present invention provides a kind of buffer consistency management method, methods described application In multicomputer system, the multicomputer system includes the first list, the second list and at least two sections At least one processor is included in point, each described node, methods described includes:
According to the address information of data, corresponding with the address information the is determined in first list One list item, first list item includes the first field and the second field, and first field is used to record institute The seizure condition of data is stated, if first field is exclusive state, second field is used to indicate Monopolize the node of the data;
If first field is shared state, according to the address information of the data and second word Section, determines to include the 3rd field in the second list item, second list item in second list, described 3rd field is used for the node for indicating to share the data.
By two kinds of inquiry mechanisms of exclusive state and shared state, catalogue is carried out from two paths respectively Inquiry, thus monopolize or shared data node, the embodiment of the present invention do not influenceing directory smart In the case of degree, the capacity of catalogue is compressed, so as to reduce query time, search efficiency is improved.
With reference to the embodiment of the present invention in a first aspect, the first reality of the first aspect in the embodiment of the present invention In existing mode, the address information includes label tag fields and index index fields;
According to the address information of data, corresponding with the address information the is determined in first list One list item includes:
Corresponding with the address information first is determined in first list according to the index fields Packet, and determine corresponding with the address information first in the described first packet according to the tag fields List item;
The address information and second field according to the data, is determined in second list Second list item includes:
Second packet is determined in second list according to the index fields, and according to second word Section determines second list item in the second packet.
Index fields are to be used to determine that first is grouped in first list, and for described second Second packet is determined in list, tag fields are to be used to determine the first list item in being grouped first, if first The first field in list item is exclusive state, then the second field in the first list item is owner fields, should Owner fields are used for the node for indicating to monopolize the data;If the first field is shared state, the second word Section is ptr pointers, and the ptr pointers can determine the 3rd in the second list item, the second list item in second packet Field is used for the node for indicating to share the data.
With reference to the first implementation of the first aspect of the embodiment of the present invention, the of the embodiment of the present invention In second of implementation of one side, the index fields include M information, wherein M for more than 1 positive integer;
It is described to determine that second packet includes in second list according to the index fields:
N position information in the index fields determines second packet in second list, its Middle N is the positive integer more than 0 and less than M.
The second list is compressed from longitudinal direction in order to realize, Node Controller is according to index fields the When the first packet is determined in one list and second packet is determined in the second list, the index words used Section is slightly different.Node Controller is determined during second packet in the second list in used index fields Binary address digit than in the first list determine first be grouped when used index fields in Binary address digit will be lacked.The line number in the second list can be so set to make very big compression.
The first of the first aspect of first aspect, the embodiment of the present invention with reference to the embodiment of the present invention is to Any one in two kinds of implementations, in the third implementation of the first aspect of the embodiment of the present invention In, according to the address information of data, corresponding with the address information the is determined in first list Before one list item, methods described also includes:
When first node at least two node caches the data, according to the data in institute State and first list item is created in the first list, first field is set to exclusive state, and by institute State the second field and be set to indicate that the first node.
When the data in this node are cached by the first node in cross-node for the first time, the data are by first Node is monopolized.Therefore, Node Controller can be created in the first list of catalogue records the first of the data List item, and the first field in the first list item is set to exclusive state, also by second in the first list item Field is set to indicate that the owner pointers of the first node.Because the data are monopolized by first node, institute With now without creating the second list item in the second list of catalogue.
With reference to the third implementation of the first aspect of the embodiment of the present invention, the of the embodiment of the present invention In 4th kind of implementation of one side, described is being created in first list according to the data After one list item, methods described also includes:
When Section Point at least two node caches the data, according to the address information First list item is determined in first list;
If first field is exclusive state, first field is set to shared state, and root Second packet is determined in second list according to the address information, and is created in the second packet Second list item, sets the instruction of the first node and the Section Point in the 3rd field Information, and second field is set according to positional information of second list item in second list;
If first field is shared state, according to the address information and second field in institute State and second list item is determined in the second list, and the Section Point is added in the 3rd field Configured information.
After above-mentioned data are monopolized by first node, when thering is the Section Point to cache the data again, then the number According to shared state will be changed into from exclusive state, then now Node Controller can corresponding to the data first List item is modified, such as:The first field in first list item is revised as shared state, and by the first table The second field in is revised as ptr pointers.Node Controller is also by the address information according to the data simultaneously Create the second list item in the second list, and set in the 3rd field in the second list item first node and The configured information of Section Point.
If before Section Point caches the data, the exclusive data of first node have been modified to share State, then now Node Controller can change the 3rd field in corresponding second list item of the data, i.e., Add the configured information of Section Point.Certainly, Node Controller can not also change the content of the second list item, But created in addition in the second list and the is set in the 4th list item, and the 4th field in the 4th list item The configured information of two nodes.Do not limit herein specifically.
With reference to the third implementation of the first aspect of the embodiment of the present invention, the of the embodiment of the present invention In 5th kind of implementation of one side, described is being created in first list according to the data After one list item, methods described also includes:
When Section Point at least two node caches the data, according to the address information First list item is determined in first list;
If first field is exclusive state, first field is set to shared state, and root Second packet is determined in second list according to the address information, and is searched in the second packet Threeth list item of the configured information comprising the first node and the Section Point, and by the 3rd list item It is defined as second list item, and is set according to positional information of second list item in second list Put second field.
, now can not also be in the second list when the data that first node is monopolized are shared by Section Point The second list item is created, but has been searched whether according to the address information of data in the second list comprising first 3rd list item of node and Section Point configured information, if so, so in order to avoid the second list occurs Redundancy, Node Controller may not necessarily be created and the 3rd the second list item of list item identical in the second list, But by the 3rd list item as the second list item, and believed according to position of the 3rd list item in the second list Breath sets the second field of the first list item.So the second list can also be compressed to a certain extent, So as to reduce the capacity of whole catalogue.
The first of the first aspect of first aspect, the embodiment of the present invention with reference to the embodiment of the present invention is to Any one in two kinds of implementations, in the 6th kind of implementation of the first aspect of the embodiment of the present invention In, according to the address information of data, corresponding with the address information the is determined in first list Before one list item, methods described also includes:
When first node at least two node caches the data, according to the data in institute State and first list item is created in the first list, first field is set to shared state, and according to The address information determines second packet in second list, and searches and refer in the second packet Show that packet contains the 3rd list item of the first node, and the 3rd list item is defined as second table , and second field is set according to positional information of second list item in second list.
Data are when caching first time, it is also possible to be with shared state cache, then Node Controller is needed To be the list item of data creation first in the first list, but can not be eager to create in the second list Second list item, but the 3rd table comprising first node configured information is first searched whether in the second list , if so, the 3rd list item can be so shared according to the method described above, so as to avoid the second list from going out Existing redundancy.Certainly, searched in the second list less than the 3rd list item comprising first node configured information In the case of, then need to create the second list item in the second list.
The first of the first aspect of first aspect, the embodiment of the present invention with reference to the embodiment of the present invention is to Any one in two kinds of implementations, in the 7th kind of implementation of the first aspect of the embodiment of the present invention In, in first list before determination the first list item corresponding with the address information, methods described Also include:
When first node at least two node caches the data, according to the data in institute State and first list item is created in the first list, first field is set to shared state, and according to The address information determines second packet in second list, and creates in the second packet institute The second list item is stated, the configured information of the first node is set in the 3rd field, and according to described Positional information of second list item in second list sets second field.
When the data in this node are cached by the first node in cross-node for the first time, the data can also Shared by first node.It is somebody's turn to do therefore, Node Controller can create record in the first list of catalogue First list item of data, and the first field in the first list item is set to shared state, will also be in catalogue The second list in create the second list item, and the finger of first node is set in the 3rd field of the second list item Show information, while setting the second of the first list item always according to positional information of second list item in the second list Field, second field uses ptr pointers.
With reference to the 6th kind of implementation or the 7th kind of implementation of the first aspect of the embodiment of the present invention, In 8th kind of implementation of the first aspect of the embodiment of the present invention, according to the data described first Created in list after first list item, methods described also includes:
When Section Point at least two node caches the data, according to the address information First list item is determined in first list, according to the address information of the data and described second Field, determines the second list item, and add described second in the 3rd field in second list The configured information of node.
When the data that first node is shared are shared by Section Point again, Node Controller can be to this The 3rd field in corresponding second list item of data is modified, that is, adds the configured information of Section Point. Certainly, Node Controller can not also change the content of the second list item, but be created in addition in the second list Build the 4th list item, and the configured information of Section Point is set in the 4th field in the 4th list item.Specifically Do not limit herein.
Second aspect of the embodiment of the present invention provides a kind of Node Controller, applied to multicomputer system, The multicomputer system includes the first list, the second list and at least two nodes, each described section At least one processor is included in point, the Node Controller includes:
First determining module, for the address information according to data, is determined and institute in first list Corresponding first list item of address information is stated, first list item includes the first field and the second field, described First field is used for the seizure condition for recording the data, when first field is exclusive state, then Second field is used for the node for indicating to monopolize the data;
Second determining module, for when first field is shared state, according to the ground of the data Location information and second field, are determined in second list in the second list item, second list item Comprising the 3rd field, the 3rd field is used for the node for indicating to share the data.
With reference to the second aspect of the embodiment of the present invention, in the first reality of the second aspect of the embodiment of the present invention In existing mode, the address information includes tag fields and index fields;
First determining module is used for according to the address informations of data, determined in first list with Corresponding first list item of the address information includes:
First determining module according to the index fields in first list for determining and describedly Corresponding first packet of location information, and determine in being grouped according to the tag fields described first with it is described Corresponding first list item of location information;
Second determining module is used for when first field is shared state, according to the data Address information and second field, determine that the second list item includes in second list:
Second determining module is used to determine second packet in second list according to the index fields, And second list item is determined in the second packet according to second field.
With reference to the first implementation of the second aspect of the embodiment of the present invention, the of the embodiment of the present invention In second of implementation of two aspects, the index fields include M information, wherein M for more than 1 positive integer;
Second determining module is used to determine second packet in second list according to the index fields, And determine that second list item includes in the second packet according to second field:
The N position information that second determining module is used in the index fields is in second list Second packet is determined, wherein N is the positive integer more than 0 and less than M.
The first of the second aspect of second aspect, the embodiment of the present invention with reference to the embodiment of the present invention is to Any one in two kinds of implementations, in the third implementation of the second aspect of the embodiment of the present invention In, the Node Controller also includes:Creation module and setup module;
First determining module according to the address informations of data, determined in first list with it is described Before corresponding first list item of address information, the creation module is used at least two node When first node caches the data, first table is created in first list according to the data , the setup module is used to first field being set to exclusive state, and by second field It is set to indicate that the first node.
With reference to the third implementation of the second aspect of the embodiment of the present invention, the of the embodiment of the present invention In 4th kind of implementation of two aspects, the creation module is according to the data in first list Create after first list item, first determining module is additionally operable at least two node When Section Point caches the data, described the is determined in first list according to the address information One list item;
If first field is exclusive state, the setup module is additionally operable to set first field Shared state is set to, second determining module is additionally operable to according to the address information in second list Middle determination second packet, the creation module is additionally operable to create second list item in the second packet, The setup module is additionally operable to set the first node and the Section Point in the 3rd field Configured information, and set described second according to positional information of second list item in second list Field;
If first field is shared state, second determining module is additionally operable to according to the address Information and second field determine second list item in second list, and the setup module is also Configured information for adding the Section Point in the 3rd field.
With reference to the third implementation of the second aspect of the embodiment of the present invention, the of the embodiment of the present invention In 5th kind of implementation of two aspects, the Node Controller also includes:Searching modul;
The creation module is created according to the data in first list after first list item, When the Section Point that first determining module is additionally operable at least two node caches the data, root First list item is determined in first list according to the address information;
If first field is exclusive state, the setup module is additionally operable to set first field Shared state is set to, second determining module is additionally operable to according to the address information in second list Middle determination second packet, the searching modul is used for the lookup configured information in the second packet and includes institute The 3rd list item of first node and the Section Point is stated, second determining module is additionally operable to described Three list items are defined as second list item, and the setup module is additionally operable to according to second list item described Positional information in second list sets second field.
The first of the second aspect of second aspect, the embodiment of the present invention with reference to the embodiment of the present invention is to Any one in two kinds of implementations, in the 6th kind of implementation of the second aspect of the embodiment of the present invention In, the Node Controller also includes:Creation module, setup module and searching modul;
First determining module according to the address informations of data, determined in first list with it is described Before corresponding first list item of address information, the creation module is used at least two node When first node caches the data, first table is created in first list according to the data , the setup module is used to first field being set to shared state, second determining module It is additionally operable to determine second packet in second list according to the address information, the searching modul is used The 3rd list item of the first node, described second are included in searching configured information in the second packet Determining module is additionally operable to the 3rd list item being defined as second list item, and the setup module is additionally operable to Second field is set according to positional information of second list item in second list.
The first of the second aspect of second aspect, the embodiment of the present invention with reference to the embodiment of the present invention is to Any one in two kinds of implementations, in the 7th kind of implementation of the second aspect of the embodiment of the present invention In, the Node Controller also includes:Creation module and setup module;
First determining module according to the address informations of data, determined in first list with it is described Before corresponding first list item of address information, the creation module is used at least two node When first node caches the data, first table is created in first list according to the data , the setup module is used to first field being set to shared state, second determining module It is additionally operable to determine second packet in second list according to the address information, the creation module is also For creating second list item in the second packet, the setup module is additionally operable to the described 3rd The configured information of the first node is set in field, and according to second list item in second list In positional information second field is set.
With reference to the 6th kind of implementation or the 7th kind of implementation of the second aspect of the embodiment of the present invention, In 8th kind of implementation of the second aspect of the embodiment of the present invention, the creation module is according to the data Created in first list after first list item, first determining module is additionally operable to described When Section Point at least two nodes caches the data, according to the address information described first First list item is determined in list;Second determining module is additionally operable to be believed according to the address of the data Breath and second field, determine the second list item, the setup module is additionally operable in second list The configured information of the Section Point is added in the 3rd field.
The third aspect of the embodiment of the present invention provides a kind of Node Controller, including:Processor, memory And bus;
The memory is used to store execute instruction, and the processor passes through the bus with the memory Connection, when the memory is run, the execution of memory storage described in the computing device refers to Order, so that the Node Controller performs the first aspect such as the embodiment of the present invention to the 8th of first aspect Plant the method described in any one in implementation.
In technical scheme provided in an embodiment of the present invention, by two kinds of mechanism of exclusive state and shared state, Catalogue is inquired about from two paths respectively, thus monopolized or shared data node, therefore Relative to prior art, the embodiment of the present invention is not in the case where influenceing directory precision, to catalogue Capacity is compressed, so as to reduce query time, improves search efficiency.
Brief description of the drawings
Fig. 1 is the configuration diagram of CC-NUMA multicomputer systems in the prior art;
Fig. 2 for the catalogue in CC-NUMA multicomputer systems in the prior art structural representation;
Fig. 3 is the structure of the catalogue after improving in CC-NUMA multicomputer systems in the embodiment of the present invention Schematic diagram;
Fig. 4 is the step flow chart of buffer consistency management method one embodiment in the embodiment of the present invention;
Fig. 5 is the module frame chart of inventive embodiments interior joint controller one embodiment;
Fig. 6 is the hardware architecture diagram of interior joint controller one embodiment of the embodiment of the present invention.
Embodiment
Below in conjunction with the accompanying drawing in the embodiment of the present invention, the technical scheme in the embodiment of the present invention is carried out Clearly and completely describe, it is clear that described embodiment is only a part of embodiment of the invention, and The embodiment being not all of.Based on the embodiment in the present invention, those skilled in the art are not making wound The every other embodiment obtained under the premise of the property made work, belongs to the scope of protection of the invention.
Term " first ", " second " in description and claims of this specification and above-mentioned accompanying drawing, " The (if present)s such as three " " four " are for distinguishing similar object, without specific for describing Order or precedence.It should be appreciated that the data so used can be exchanged in the appropriate case, so as to this In the embodiment that describes can be implemented with the order in addition to the content for illustrating or describing herein.In addition, Term " comprising " and " having " and their any deformation, it is intended that covering is non-exclusive to be included, For example, the process, method, system, product or the equipment that contain series of steps or unit are not necessarily limited to Those steps or unit clearly listed, but may include not list clearly or for these mistakes The intrinsic other steps of journey, method, product or equipment or unit.
In a multi-processor system, the catalogue set on Node Controller design when, can face capacity and The select permeability of precision, directory capacity is big, then precision is high, but area power consumption is big;Directory capacity is small, Then precision is low or catalogue spilling is more, and catalogue, which will be overflowed, to cause remote data invalid, can have a strong impact on system Performance.
Pass through and the data analysis of catalogue found, although whole multicomputer system can with shared data, but It is to have the data of significant proportion within a bit of time in exclusive state, about 90%, that is, Say, this data of only one of which nodal cache.Further, since the locality of routine access, application program is total It is continuously to access certain a bit of address, that is to say, that the catalogue of continuous a bit of address greatly may It is identical, i.e., by same nodal cache.
As can be seen from the above analysis, there is the waste in redundancy and space in directory entry.Therefore, of the invention Embodiment is optimized in the case where not influenceing directory precision in terms of two to catalogue, and one is logical Two kinds of inquiry mechanisms of exclusive state and shared state are crossed, catalogue is inquired about from two paths respectively, So as to avoid the waste of directory space;Two be that can share same mesh for content identical directory entry List item is recorded, so as to reduce the redundancy of directory entry.
Referring to Fig. 3, Fig. 3 is the mesh after being improved in CC-NUMA multicomputer systems in the embodiment of the present invention The structural representation of record, the catalogue still uses cache structures, and existing catalogue unlike, of the invention Embodiment is respectively adopted two different paths for the data of exclusive state and shared state and inquired about, So as to largely carry out the compression of capacity to the vector array in catalogue so that the overall appearance of catalogue Amount reduces.
Specifically, the catalogue includes:Tag array and vector array, wherein, tag array by j groups (such as: Group0, group1, group2, group3 ... groupj-2 and groupj-1) m roads are (such as:wag0、wag1… Wagm-2 and wagm-1) tag entry compositions;Vector array by k groups (such as:group0、group1、 Group2, group3 ... groupk-2 and groupk-1) n roads are (such as:Wag0, wag1 ... wagn-2 and wagn-1) Vector entry are constituted, and j is more than k, and m is more than n.
From the above, it is seen that vector array are compressed in transverse direction and longitudinal direction, i.e., Vector array way is reduced, and vector array group number is decreased.Certainly, the present invention is real Apply example can also only vector array laterally or longitudinally on be compressed, do not limit herein specifically.
More specifically, each tag entry include:Tag fields, state fields and pointer (owner/ptr) Field.Each vector entry include:V fields, share vector fields and counting cnt fields.
According to the different buffer status of data, the pointer field employed in tag entry is also different, such as: For the data of exclusive state, the pointer field in tag entry is indicated using owner pointers, and the owner Pointer may be used to indicate the node of the exclusive data;Pointer in data for sharing state, tag entry Field is indicated using ptr pointers, and the index fields in the ptr pointer combination memory address can determine that vector Some vector entry in array, and share vector fields in the vector entry may be used to indicate Share the node of the data.
Alternatively, cnt fields can also be added in vector entry, are corresponded to for counting tag entry Vector entry number.Such as:When newly increasing a tag entry corresponding to the vector entry, then will The value of cnt in the vector entry adds 1;When corresponding to the vector entry tag entry overflow, reject or During replacement, then the value of the cnt in vector entry is subtracted 1;When the value of the cnt in the vector entry is kept to 0 When, then illustrate that none of tag entry correspond to the vector entry, the vector entry are corresponding Data may be changed into exclusive state from shared state, then do not need the share vector fields in vector entry To indicate the node for sharing the data, then can now delete the vector entry.
Using a system address as 40, exemplified by the multicomputer system of 16 nodes, to existing multiprocessing Directory capacity in device system is carried out with the directory capacity after being improved in multicomputer system of the embodiment of the present invention The Cache designs that catalogue in contrast, the multicomputer system is connected using 16 tunnel groups, it is described in detail below:
Existing directory capacity is calculated as follows:
Assuming that index fields are 10bit, tag fields are 30bit, and state fields are 2bit, share vector fields For 16bit;
Then tag array capacity is:(30+2)×16×210=512Kbit, wherein, each tag entry For (30+2)=32bit, 16 tunnels are multiplied by, 2 are multiplied by10Group (the i.e. index fields correspondence 2 of 10bit10Group).
Vector Array capacity is:16×16×210=256Kbit.
The directory capacity of the embodiment of the present invention is calculated as follows:
Assuming that index fields are 10bit, tag fields are 30bit, and state fields are 2bit, pointer (owner/ptr) Field is 4bit, and share vector fields are 16bit, and cnt fields are 3bit;
Then tag array capacity is:(30+2+4)×16×210=576Kbit.
If 1) vector array depth-compressions 1/4, depth size is 28, then vector array capacity is (16+3) ×16×28=76Kbit;
Catalogue is compressed to:(576+76)/(512+256)=84.9%;
If 2) vector array depth-compressions 1/8, depth size is 27, then vector array capacity is (16+3) ×16×27=38Kbit;
Catalogue is compressed to:(576+38)/(512+256)=80%.
The embodiment of the present invention is can be seen that from above-mentioned contrast to have carried out largely vector array capacity On compression so that catalogue whole volume reduce, and compression after catalogue again using it is a set of newly Rule searching so that the catalogue after improvement is not affected in inquiry precision, simultaneously because using only Two kinds of inquiry mechanisms of state and shared state are accounted for, the query time of catalogue is also reduced, inquiry effect is improved Rate.
Above to the bibliographic structure after improvement in the CC-NUMA multicomputer systems in the embodiment of the present invention It is described, the buffer consistency management method in the embodiment of the present invention is described below.
Referring to Fig. 4, Fig. 4 is the step of buffer consistency management method one embodiment in the embodiment of the present invention Rapid flow chart, this method is applied to multicomputer system, and the multicomputer system includes the first list (i.e. Above-mentioned tag array), the second list (i.e. above-mentioned vector array) and at least two nodes, each node In include at least one processor.This method includes:
401st, according to the address information of data, the first table corresponding with address information is determined in the first list ;
System can send the address corresponding to the data to Node Controller and believe when accessing cross-node data Breath, such as:Memory address, the address information includes:Tag fields, index fields and offset fields.Node Controller is received after the address information, the catalogue that can be set according to the address information on Node Controller It is middle to be inquired about, to obtain node that is exclusive or sharing the data.
Specifically, Node Controller can be determined first and address information pair according to index fields in the first list The first packet answered, the first list item corresponding with address information is determined in being grouped further according to tag fields first. First list item (i.e. above-mentioned tag entry) includes the first field (i.e. above-mentioned state fields) and the second field (i.e. above-mentioned pointer field), first field is used for the seizure condition of record data, such as:Exclusive state and Shared state.
If the 402, the first field in the first list item is exclusive state, pass through the second word in the first list item Section indicates the node of exclusive data;
If the 403, the first field in the first list item is shared state, according to the address information of data and the Two fields, determine the second list item in the second list;
404th, the node of shared data is indicated by the 3rd field in the second list item.
Node Controller is after the first list item is determined, and the first field that can be in the first list item is come really Determining the data corresponding to address information is monopolized or is shared by other nodes.
It should be noted that the information of the first field carrying is different, and accordingly, the letter of the second field carrying Breath is also by difference.Such as:When the first field is exclusive state, then the second field is owner pointers, the owner Pointer is used for the node for indicating to monopolize the data;When the first field is shared state, then the second field is Index fields in ptr pointers, the ptr pointer combination memory address may be used to indicate a certain in the second list The 3rd field (i.e. above-mentioned share vector fields), the 3rd are included in individual second list item, second list item Field is used for the node for indicating to share the data.
Alternatively, the second list is compressed from longitudinal direction in order to realize, Node Controller is according to index When field determines the first packet in the first list and determines second packet in the second list, used Index fields be slightly different.
Specifically, index fields include M information, and wherein M is the positive integer more than 1, such as:M positions two System address.When the embodiment of the present invention determines the first packet in the first list, Node Controller can be used M positions information in index fields, the i.e. full location information of index fields;And is determined in the second list During two packets, Node Controller can use the N positions information in index fields, and N is more than 0 and less than M The part position information of positive integer, i.e. index fields.That is, Node Controller is true in the second list Binary address digit ratio when determining second packet in used index fields determines in the first list Binary address digit during one packet in used index fields will be lacked.
For example:Index fields include triad address, and Node Controller determines the in the first list During one packet, using the triad address of index fields, such as:000 or 100, then this three two are entered Address processed corresponds respectively to the 0th group or the 4th group of the first list;Node Controller is determined in the second list During second packet, using low two binary addresses of index fields, such as:Corresponding to above-mentioned 000 or 100 Low two binary addresses, as 00, then two binary addresses correspond to the second list in the 0th Group.Correspond in the first list 8 groups of the triad address of index fields, and the two of index fields Then correspond in the second list 4 groups of position binary address, the line number in the second list is than in the first list Line number reduces half.
Certainly, when Node Controller determines second packet in the second list, except index words can be used The part low-order information of section, can also use the high-order information in part of index fields;Except that can use The continuous position information in part of index fields, can also use the discontinuous position information in part of index fields, tool Body is not limited herein.In addition, Node Controller can use how many information of index fields in the second table Second packet is determined in list, is not also limited herein specifically.
Alternatively, according to the address information of data, corresponding with address information the is determined in the first list Before one list item, this method can also include:
When first node at least two nodes is data cached, created according to data in the first list First list item, is set to exclusive state, and the second field is set to indicate that into first node by the first field.
When the data in this node are cached by the first node in cross-node for the first time, the data are by first Node is monopolized.Therefore, Node Controller can be created in the first list of catalogue records the first of the data List item, and the first field in the first list item is set to exclusive state, also by second in the first list item Field is set to indicate that the owner pointers of the first node.Because the data are monopolized by first node, so Now without creating the second list item in the second list of catalogue.
Alternatively, after the first list item is created in the first list according to data, this method also includes:
When Section Point at least two nodes is data cached, according to address information in the first list Determine the first list item;
If the first field is exclusive state, the first field is set to shared state, and believe according to address Breath determines second packet in the second list, and creates the second list item in second packet, in the 3rd field The configured information of middle setting first node and Section Point, and the position according to the second list item in the second list Confidence breath sets the second field;
If the first field is shared state, determined according to address information and the second field in the second list Second list item, and in the 3rd field add Section Point configured information.
After above-mentioned data are monopolized by first node, when thering is the Section Point to cache the data again, then the number According to shared state will be changed into from exclusive state, then now Node Controller can corresponding to the data first List item is modified, such as:The first field in first list item is revised as shared state, and by the first table The second field in is revised as ptr pointers.Node Controller is also by the address information according to the data simultaneously Second packet is determined in the second list, and the second list item is created in second packet, also in the second list item In the 3rd field in the configured information of first node and Section Point is set.
If before Section Point caches the data, the exclusive data of first node have been modified to share State, then now Node Controller can change the 3rd field in corresponding second list item of the data, i.e., Add the configured information of Section Point.Certainly, Node Controller can not also change the content of the second list item, But created in addition in the second list and the is set in the 4th list item, and the 4th field in the 4th list item The configured information of two nodes.Do not limit herein specifically.
Alternatively, after the first list item is created in the first list according to data, this method also includes:
When Section Point at least two nodes is data cached, according to address information in the first list Determine the first list item;
If the first field is exclusive state, the first field is set to shared state, and believe according to address Breath determines second packet in the second list, and lookup configured information includes first node in second packet With the 3rd list item of Section Point, and the 3rd list item is defined as the second list item, and existed according to the second list item Positional information in second list sets the second field.
, now can not also be in the second list when the data that first node is monopolized are shared by Section Point Create the second list item, but second packet is determined in the second list according to the address information of data, and The 3rd list item comprising first node and Section Point configured information is searched whether in second packet, if Have, then in order to avoid redundancy occurs in the second list, Node Controller may not necessarily be created in the second list Build with the 3rd the second list item of list item identical, but by the 3rd list item as the second list item, and according to this Positional information of 3rd list item in the second list sets the second field of the first list item.So can also be The second list is compressed to a certain extent, so as to reduce the capacity of whole catalogue.
Alternatively, according to the address information of data, corresponding with address information the is determined in the first list Before one list item, this method also includes:
When first node at least two nodes is data cached, created according to data in the first list First list item, is set to shared state, and determined in the second list according to address information by the first field Second packet, and search in second packet configured information and include the 3rd list item of first node, and by the Three list items are defined as the second list item, and set second according to positional information of second list item in the second list Field.
Data are when caching first time, it is also possible to be with shared state cache, then Node Controller is needed To be the list item of data creation first in the first list, but can not be eager what is determined in the second list The second list item is created in second packet, but has first been searched whether in the second packet that the second list is determined The 3rd list item comprising first node configured information, should if so, can so share according to the method described above 3rd list item, so as to avoid the second list from redundancy occur.Certainly, searched in the second list less than comprising In the case of 3rd list item of first node configured information, then need to create the second list item in the second list.
Alternatively, according to the address information of data, corresponding with address information the is determined in the first list Before one list item, this method also includes:
When first node at least two nodes is data cached, created according to data in the first list First list item, is set to shared state, and determined in the second list according to address information by the first field Second packet, and the second list item is created in second packet, the finger of first node is set in the 3rd field Show information, and the second field is set according to positional information of second list item in the second list.
When the data in this node are cached by the first node in cross-node for the first time, the data can also Shared by first node.It is somebody's turn to do therefore, Node Controller can create record in the first list of catalogue First list item of data, and the first field in the first list item is set to shared state, will also be in catalogue The second list in determine second packet, and create in second packet the second list item, and in the second list item The 3rd field in set first node configured information, while always according to the second list item in the second list Positional information set the first list item the second field, second field use ptr pointers.
Alternatively, after the first list item is created in the first list according to data, this method also includes:
When Section Point at least two nodes is data cached, according to address information in the first list The first list item is determined, according to the address information of data and the second field, the second table is determined in the second list , and in the 3rd field add Section Point configured information.
When the data that first node is shared are shared by Section Point again, Node Controller can be to this The 3rd field in corresponding second list item of data is modified, that is, adds the configured information of Section Point. Certainly, Node Controller can not also change the content of the second list item, but be created in addition in the second list Build the 4th list item, and the configured information of Section Point is set in the 4th field in the 4th list item.Specifically Do not limit herein.
The buffer consistency management method in the embodiment of the present invention is described above, below to this hair Node Controller in bright embodiment is described.
Referring to Fig. 5, Fig. 5 is the module frame chart of inventive embodiments interior joint controller one embodiment, should Node Controller is applied to multicomputer system, and the multicomputer system includes the first list, the second list With at least two nodes, at least one processor is included in each node, the Node Controller includes:
First determining module 501, for the address information according to data, is determined and address in the first list Corresponding first list item of information, the first list item includes the first field and the second field, and the first field is used to remember The seizure condition of data is recorded, when the first field is exclusive state, then the second field is used to indicate exclusive number According to node;
Second determining module 502, for when the first field is shared state, according to the address information of data With the second field, determine to include the 3rd field, the 3rd in the second list item, the second list item in the second list Field is used for the node for indicating shared data.
Alternatively, the address information includes tag fields and index fields;
First determining module 501 is used for the address information according to data, is determined and address in the first list Corresponding first list item of information can specifically include:
First determining module 501 is corresponding with address information for being determined according to index fields in the first list The first packet, and determine corresponding with address information the first list item in being grouped according to tag fields first;
Second determining module 502 is used for when the first field is shared state, according to the address information of data With the second field, determine that the second list item can specifically include in the second list:
Second determining module 502 is used to determine second packet in the second list according to index fields, and according to Second field determines the second list item in second packet.
Alternatively, the index fields include M information, wherein, M is the positive integer more than 1;
Second determining module 502 is used to determine second packet, and root in the second list according to index fields Determine that the second list item can specifically include in second packet according to the second field:
Second determining module 502 is used for N position information in index fields and the is determined in the second list Two packets, wherein N is the positive integer more than 0 and less than M.
Alternatively, the Node Controller can also include:Creation module 503 and setup module 504;
First determining module 501 is determined and address information according to the address information of data in the first list Before corresponding first list item, the first node caching that creation module 503 is used at least two nodes During data, the first list item is created in the first list according to data, setup module 504 is used for the first word Section is set to exclusive state, and the second field is set to indicate that into first node.
Alternatively, after creation module 503 creates the first list item according to data in the first list, first is true Cover half block 501 be additionally operable to Section Point at least two nodes it is data cached when, existed according to address information The first list item is determined in first list;
If the first field is exclusive state, setup module 504 is additionally operable to be set to share by the first field State, the second determining module 502 is additionally operable to determine second packet in the second list according to address information, Creation module 503 is additionally operable to create the second list item in second packet, and setup module 504 is additionally operable to The configured information of first node and Section Point is set in three fields, and according to the second list item in the second list In positional information set the second field;
If the first field is shared state, the second determining module 502 is additionally operable to according to address information and the Two fields determine the second list item in the second list, and setup module 504 is additionally operable to add in the 3rd field The configured information of Section Point.
Alternatively, the Node Controller can also include:Searching modul 505;
Creation module 503 is created according to data in the first list after the first list item, the first determining module 501 be additionally operable to Section Point at least two nodes it is data cached when, according to address information in the first table The first list item is determined in list;
If the first field is exclusive state, setup module 504 is additionally operable to be set to share by the first field State, the second determining module 502 is additionally operable to determine second packet in the second list according to address information, Searching modul 505 is used to searching the of configured information comprising first node and Section Point in second packet Three list items, the second determining module 502 is additionally operable to the 3rd list item being defined as the second list item, setup module 504 It is additionally operable to set the second field according to positional information of second list item in the second list.
Alternatively, the first determining module 501 is according to the address informations of data, determined in the first list with Before corresponding first list item of address information, creation module 503 is for first at least two nodes During nodal cache data, the first list item is created in the first list according to data, setup module 504 is used for First field is set to shared state, the second determining module 502 is additionally operable to according to address information second Determine second packet in list, searching modul 505 is used to searching configured information in second packet and includes the 3rd list item of one node, the second determining module 502 is additionally operable to the 3rd list item being defined as the second list item, Setup module 504 is additionally operable to set the second field according to positional information of second list item in the second list.
Alternatively, the first determining module 501 is according to the address informations of data, determined in the first list with Before corresponding first list item of address information, creation module 503 is for first at least two nodes During nodal cache data, the first list item is created in the first list according to data, setup module 504 is used for First field is set to shared state, the second determining module 502 is additionally operable to according to address information second Second packet is determined in list, creation module 503 is additionally operable to create the second list item in second packet, if The configured information that module 504 is additionally operable to set first node in the 3rd field is put, and according to the second list item Positional information in the second list sets the second field.
Alternatively, after creation module 503 creates the first list item according to data in the first list, first Determining module 501 be additionally operable to Section Point at least two nodes it is data cached when, believed according to address Breath determines the first list item in the first list;Second determining module 502 is additionally operable to be believed according to the address of data Breath and the second field, determine the second list item, setup module 504 is additionally operable in the 3rd word in the second list The configured information of Section Point is added in section.
Fig. 6 is the hardware architecture diagram of the Node Controller 600 according to one embodiment of the invention.Such as Fig. 6 institutes Show, Node Controller 600 connects including processor 602, memory 604, input/output interface 606, communication Mouth 608 and bus 610.Wherein, processor 602, memory 604, input/output interface 606 and communication connect Mouth 608 passes through the communication connection between the realization of bus 610.
Processor 602 can use general central processing unit (Central Processing Unit, CPU), Microprocessor, application specific integrated circuit (Application Specific Integrated Circuit, ASIC), Or one or more integrated circuits, for performing relative program, to realize that the embodiment of the present invention is provided Technical scheme.
Memory 604 can be read-only storage (Read Only Memory, ROM), and static storage is set It is standby, dynamic memory or random access memory (Random Access Memory, RAM).Deposit Reservoir 604 can store an operating system and other applications.This hair is being realized by software or firmware During the technical scheme that bright embodiment is provided, the program for realizing technical scheme provided in an embodiment of the present invention Code is preserved in the memory 604, and is performed by processor 602.
Input/output interface 606 is used for the data and information for receiving input, exports the data such as operating result.
Communication interface 608 uses the R-T unit of the such as, but not limited to class of transceiver one, to realize node control Communication between device 600 and other equipment or communication network.
Bus 610 may include a path, (such as processor 602, be deposited in all parts of Node Controller 600 Reservoir 604, input/output interface 606 and communication interface 608) between transmit information.
Although it should be noted that the Node Controller 600 shown in Fig. 6 illustrate only processor 602, memory 604th, input/output interface 606, communication interface 608 and bus 610, but during implementing, It should be apparent to a person skilled in the art that Node Controller 600 is also comprising realizing necessary to normal operation it His device.Meanwhile, according to specific needs, it should be apparent to a person skilled in the art that Node Controller 600 The hardware device for realizing other additional functions can also be included.In addition, it should be apparent to a person skilled in the art that Node Controller 600 also can be only comprising device necessary to the embodiment of the present invention be realized, without including figure Whole devices shown in 6.
Hardware configuration and foregoing description shown in Fig. 6 are applied to the various sections that the embodiment of the present invention is provided Base site controller and buffer consistency management system, it is adaptable to which perform that the embodiment of the present invention provided is various slow Deposit consistency management method.
It is apparent to those skilled in the art that, it is for convenience and simplicity of description, above-mentioned to retouch The specific work process for the system, apparatus, and unit stated, may be referred to the correspondence in preceding method embodiment Process, will not be repeated here.
In several embodiments provided herein, it should be understood that disclosed system, device and Method, can be realized by another way.For example, device embodiment described above is only to show Meaning property, for example, the division of the unit, only a kind of division of logic function can when actually realizing To there is other dividing mode, such as multiple units or component can combine or be desirably integrated into another System, or some features can be ignored, or not perform.It is another, it is shown or discussed each other Coupling or direct-coupling or communication connection can be the INDIRECT COUPLING of device or unit by some interfaces Or communication connection, can be electrical, machinery or other forms.
The unit illustrated as separating component can be or may not be it is physically separate, make It can be for the part that unit is shown or may not be physical location, you can with positioned at a place, Or can also be distributed on multiple NEs.Can select according to the actual needs part therein or Person's whole units realize the purpose of this embodiment scheme.
In addition, each functional unit in each embodiment of the invention can be integrated in a processing unit, Can also be that unit is individually physically present, can also two or more units be integrated in a list In member.Above-mentioned integrated unit can both be realized in the form of hardware, it would however also be possible to employ software function list The form of member is realized.
If the integrated unit is realized using in the form of SFU software functional unit and is used as independent production marketing Or in use, can be stored in a computer read/write memory medium.Understood based on such, this Part that the technical scheme of invention substantially contributes to prior art in other words or the technical scheme It can completely or partially be embodied in the form of software product, the computer software product is stored in one In storage medium, including some instructions to cause a computer equipment (can be personal computer, Server, or the network equipment etc.) perform all or part of step of each embodiment methods described of the invention Suddenly.And foregoing storage medium includes:USB flash disk, mobile hard disk, read-only storage (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disc or CD Etc. it is various can be with the medium of store program codes.
Described above, the above embodiments are merely illustrative of the technical solutions of the present invention, rather than its limitations; Although the present invention is described in detail with reference to the foregoing embodiments, one of ordinary skill in the art should Work as understanding:It can still modify to the technical scheme described in foregoing embodiments, or to it Middle some technical characteristics carry out equivalent substitution;And these modifications or replacement, do not make appropriate technical solution Essence depart from various embodiments of the present invention technical scheme spirit and scope.

Claims (19)

1. a kind of buffer consistency management method, it is characterised in that methods described is applied to multiprocessor system System, the multicomputer system includes the first list, the second list and at least two nodes, each institute State and at least one processor is included in node, methods described includes:
According to the address information of data, corresponding with the address information the is determined in first list One list item, first list item includes the first field and the second field, and first field is used to record institute The seizure condition of data is stated, if first field is exclusive state, second field is used to indicate Monopolize the node of the data;
If first field is shared state, according to the address information of the data and second word Section, determines to include the 3rd field in the second list item, second list item in second list, described 3rd field is used for the node for indicating to share the data.
2. according to the method described in claim 1, it is characterised in that the address information includes label tag Field and index index fields;
According to the address information of data, corresponding with the address information the is determined in first list One list item includes:
Corresponding with the address information first is determined in first list according to the index fields Packet, and determine corresponding with the address information first in the described first packet according to the tag fields List item;
The address information and second field according to the data, is determined in second list Second list item includes:
Second packet is determined in second list according to the index fields, and according to second word Section determines second list item in the second packet.
3. method according to claim 2, it is characterised in that the index fields include M Information, wherein M are the positive integer more than 1;
It is described to determine that second packet includes in second list according to the index fields:
N position information in the index fields determines second packet in second list, its Middle N is the positive integer more than 0 and less than M.
4. the method according to claim any one of 1-3, it is characterised in that according to the address of data Information, in first list before determination the first list item corresponding with the address information, the side Method also includes:
When first node at least two node caches the data, according to the data in institute State and first list item is created in the first list, first field is set to exclusive state, and by institute State the second field and be set to indicate that the first node.
5. method according to claim 4, it is characterised in that according to the data described Created in one list after first list item, methods described also includes:
When Section Point at least two node caches the data, according to the address information First list item is determined in first list;
If first field is exclusive state, first field is set to shared state, and root Second packet is determined in second list according to the address information, and is created in the second packet Second list item, sets the instruction of the first node and the Section Point in the 3rd field Information, and second field is set according to positional information of second list item in second list;
If first field is shared state, according to the address information and second field in institute State and second list item is determined in the second list, and the Section Point is added in the 3rd field Configured information.
6. method according to claim 4, it is characterised in that according to the data described Created in one list after first list item, methods described also includes:
When Section Point at least two node caches the data, according to the address information First list item is determined in first list;
If first field is exclusive state, first field is set to shared state, and root Second packet is determined in second list according to the address information, and is searched in the second packet Threeth list item of the configured information comprising the first node and the Section Point, and by the 3rd list item It is defined as second list item, and is set according to positional information of second list item in second list Put second field.
7. the method according to claim any one of 1-3, it is characterised in that according to the address of data Information, in first list before determination the first list item corresponding with the address information, the side Method also includes:
When first node at least two node caches the data, according to the data in institute State and first list item is created in the first list, first field is set to shared state, and according to The address information determines second packet in second list, and searches and refer in the second packet Show that packet contains the 3rd list item of the first node, and the 3rd list item is defined as second table , and second field is set according to positional information of second list item in second list.
8. the method according to claim any one of 1-3, it is characterised in that according to the address of data Information, in first list before determination the first list item corresponding with the address information, the side Method also includes:
When first node at least two node caches the data, according to the data in institute State and first list item is created in the first list, first field is set to shared state, and according to The address information determines second packet in second list, and creates in the second packet institute The second list item is stated, the configured information of the first node is set in the 3rd field, and according to described Positional information of second list item in second list sets second field.
9. the method according to claim 7 or 8, it is characterised in that according to the data in institute State after creating first list item in the first list, methods described also includes:
When Section Point at least two node caches the data, according to the address information First list item is determined in first list, according to the address information of the data and described second Field, determines the second list item, and add described second in the 3rd field in second list The configured information of node.
10. a kind of Node Controller, it is characterised in that applied to multicomputer system, the multiprocessing Device system is included in the first list, the second list and at least two nodes, each described node comprising extremely A few processor, the Node Controller includes:
First determining module, for the address information according to data, is determined and institute in first list Corresponding first list item of address information is stated, first list item includes the first field and the second field, described First field is used for the seizure condition for recording the data, when first field is exclusive state, then Second field is used for the node for indicating to monopolize the data;
Second determining module, for when first field is shared state, according to the ground of the data Location information and second field, are determined in second list in the second list item, second list item Comprising the 3rd field, the 3rd field is used for the node for indicating to share the data.
11. Node Controller according to claim 10, it is characterised in that the address information bag Field containing tag and index fields;
First determining module is used for according to the address informations of data, determined in first list with Corresponding first list item of the address information includes:
First determining module according to the index fields in first list for determining and describedly Corresponding first packet of location information, and determine in being grouped according to the tag fields described first with it is described Corresponding first list item of location information;
Second determining module is used for when first field is shared state, according to the data Address information and second field, determine that the second list item includes in second list:
Second determining module is used to determine second packet in second list according to the index fields, And second list item is determined in the second packet according to second field.
12. Node Controller according to claim 11, it is characterised in that the index fields Comprising M information, wherein M is the positive integer more than 1;
Second determining module is used to determine second packet in second list according to the index fields, And determine that second list item includes in the second packet according to second field:
The N position information that second determining module is used in the index fields is in second list Second packet is determined, wherein N is the positive integer more than 0 and less than M.
13. the Node Controller according to claim any one of 10-12, it is characterised in that the section Base site controller also includes:Creation module and setup module;
First determining module according to the address informations of data, determined in first list with it is described Before corresponding first list item of address information, the creation module is used at least two node When first node caches the data, first table is created in first list according to the data , the setup module is used to first field being set to exclusive state, and by second field It is set to indicate that the first node.
14. Node Controller according to claim 13, it is characterised in that the creation module root After creating first list item in first list according to the data, first determining module is also When caching the data for the Section Point at least two node, according to the address information First list item is determined in first list;
If first field is exclusive state, the setup module is additionally operable to set first field Shared state is set to, second determining module is additionally operable to according to the address information in second list Middle determination second packet, the creation module is additionally operable to create second list item in the second packet, The setup module is additionally operable to set the first node and the Section Point in the 3rd field Configured information, and set described second according to positional information of second list item in second list Field;
If first field is shared state, second determining module is additionally operable to according to the address Information and second field determine second list item in second list, and the setup module is also Configured information for adding the Section Point in the 3rd field.
15. Node Controller according to claim 13, it is characterised in that the Node Controller Also include:Searching modul;
The creation module is created according to the data in first list after first list item, When the Section Point that first determining module is additionally operable at least two node caches the data, root First list item is determined in first list according to the address information;
If first field is exclusive state, the setup module is additionally operable to set first field Shared state is set to, second determining module is additionally operable to according to the address information in second list Middle determination second packet, the searching modul is used for the lookup configured information in the second packet and includes institute The 3rd list item of first node and the Section Point is stated, second determining module is additionally operable to described Three list items are defined as second list item, and the setup module is additionally operable to according to second list item described Positional information in second list sets second field.
16. the Node Controller according to claim any one of 10-12, it is characterised in that the section Base site controller also includes:Creation module, setup module and searching modul;
First determining module according to the address informations of data, determined in first list with it is described Before corresponding first list item of address information, the creation module is used at least two node When first node caches the data, first table is created in first list according to the data , the setup module is used to first field being set to shared state, second determining module It is additionally operable to determine second packet in second list according to the address information, the searching modul is used The 3rd list item of the first node, described second are included in searching configured information in the second packet Determining module is additionally operable to the 3rd list item being defined as second list item, and the setup module is additionally operable to Second field is set according to positional information of second list item in second list.
17. the Node Controller according to claim any one of 10-12, it is characterised in that the section Base site controller also includes:Creation module and setup module;
First determining module according to the address informations of data, determined in first list with it is described Before corresponding first list item of address information, the creation module is used at least two node When first node caches the data, first table is created in first list according to the data , the setup module is used to first field being set to shared state, second determining module It is additionally operable to determine second packet in second list according to the address information, the creation module is also For creating second list item in the second packet, the setup module is additionally operable to the described 3rd The configured information of the first node is set in field, and according to second list item in second list In positional information second field is set.
18. the Node Controller according to claim 16 or 17, it is characterised in that the establishment Module is created according to the data in first list after first list item, and described first determines When module is additionally operable to Section Point at least two node and caches the data, according to described Location information determines first list item in first list;Second determining module is additionally operable to basis The address information of the data and second field, determine the second list item, institute in second list State the configured information that setup module is additionally operable to add the Section Point in the 3rd field.
19. a kind of Node Controller, it is characterised in that including:Processor, memory and bus; The memory is used to store execute instruction, and the processor is connected with the memory by the bus, When the memory is run, the execute instruction of memory storage described in the computing device, with The Node Controller is set to perform the method as described in claim any one of 1-9.
CN201610256865.3A 2016-04-22 2016-04-22 Cache consistency management method and node controller Active CN107315694B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610256865.3A CN107315694B (en) 2016-04-22 2016-04-22 Cache consistency management method and node controller
PCT/CN2017/080311 WO2017181895A1 (en) 2016-04-22 2017-04-12 Cache-coherence management method and node controller
US16/165,709 US10691601B2 (en) 2016-04-22 2018-10-19 Cache coherence management method and node controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610256865.3A CN107315694B (en) 2016-04-22 2016-04-22 Cache consistency management method and node controller

Publications (2)

Publication Number Publication Date
CN107315694A true CN107315694A (en) 2017-11-03
CN107315694B CN107315694B (en) 2020-12-15

Family

ID=60115626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610256865.3A Active CN107315694B (en) 2016-04-22 2016-04-22 Cache consistency management method and node controller

Country Status (3)

Country Link
US (1) US10691601B2 (en)
CN (1) CN107315694B (en)
WO (1) WO2017181895A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597776A (en) * 2017-09-30 2019-04-09 杭州华为数字技术有限公司 A kind of data manipulation method, Memory Controller Hub and multicomputer system
WO2019140885A1 (en) * 2018-01-19 2019-07-25 华为技术有限公司 Directory processing method and device, and storage system
CN112883696A (en) * 2021-02-03 2021-06-01 维沃移动通信有限公司 Form filling method, form sharing method, device, equipment and storage medium
CN115514772A (en) * 2022-11-15 2022-12-23 山东云海国创云计算装备产业创新中心有限公司 Method, device and equipment for realizing cache consistency and readable medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970213B2 (en) * 2019-04-30 2021-04-06 Hewlett Packard Enterprise Development Lp Selective disabling of hardware-based cache coherency and enforcement of software-based cache coherency
CN114036099A (en) * 2022-01-04 2022-02-11 苏州浪潮智能科技有限公司 Multiprocessor system creating method, device, equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020004A (en) * 2012-12-14 2013-04-03 杭州华为数字技术有限公司 Access method and device for cache coherent-non uniform memory access system
CN103294611A (en) * 2013-03-22 2013-09-11 浪潮电子信息产业股份有限公司 Server node data cache method based on limited data consistency state
CN104077375A (en) * 2014-06-24 2014-10-01 华为技术有限公司 Method for handling error catalogs of nodes in CC-NUMA system and nodes
CN104679669A (en) * 2014-11-27 2015-06-03 华为技术有限公司 High-speed cache storage system and method for accessing cache lines
CN104899160A (en) * 2015-05-30 2015-09-09 华为技术有限公司 Cache data control method, node controller and system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909698A (en) * 1997-03-17 1999-06-01 International Business Machines Corporation Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory
US6654858B1 (en) * 2000-08-31 2003-11-25 Hewlett-Packard Development Company, L.P. Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol
EP2343655A4 (en) * 2008-10-02 2012-08-22 Fujitsu Ltd Memory access method and information processing apparatus
US9075730B2 (en) * 2012-12-21 2015-07-07 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
US10042749B2 (en) * 2015-11-10 2018-08-07 International Business Machines Corporation Prefetch insensitive transactional memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020004A (en) * 2012-12-14 2013-04-03 杭州华为数字技术有限公司 Access method and device for cache coherent-non uniform memory access system
CN103294611A (en) * 2013-03-22 2013-09-11 浪潮电子信息产业股份有限公司 Server node data cache method based on limited data consistency state
CN104077375A (en) * 2014-06-24 2014-10-01 华为技术有限公司 Method for handling error catalogs of nodes in CC-NUMA system and nodes
CN104679669A (en) * 2014-11-27 2015-06-03 华为技术有限公司 High-speed cache storage system and method for accessing cache lines
CN104899160A (en) * 2015-05-30 2015-09-09 华为技术有限公司 Cache data control method, node controller and system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597776A (en) * 2017-09-30 2019-04-09 杭州华为数字技术有限公司 A kind of data manipulation method, Memory Controller Hub and multicomputer system
WO2019140885A1 (en) * 2018-01-19 2019-07-25 华为技术有限公司 Directory processing method and device, and storage system
US11372759B2 (en) 2018-01-19 2022-06-28 Huawei Technologies Co., Ltd. Directory processing method and apparatus, and storage system
CN112883696A (en) * 2021-02-03 2021-06-01 维沃移动通信有限公司 Form filling method, form sharing method, device, equipment and storage medium
CN115514772A (en) * 2022-11-15 2022-12-23 山东云海国创云计算装备产业创新中心有限公司 Method, device and equipment for realizing cache consistency and readable medium
CN115514772B (en) * 2022-11-15 2023-03-10 山东云海国创云计算装备产业创新中心有限公司 Method, device and equipment for realizing cache consistency and readable medium

Also Published As

Publication number Publication date
WO2017181895A1 (en) 2017-10-26
US20190057032A1 (en) 2019-02-21
US10691601B2 (en) 2020-06-23
CN107315694B (en) 2020-12-15

Similar Documents

Publication Publication Date Title
CN107315694A (en) A kind of buffer consistency management method and Node Controller
US9384134B2 (en) Persistent memory for processor main memory
US11681754B2 (en) Technologies for managing connected data on persistent memory-based systems
CN105550155B (en) Snoop filter for multicomputer system and related snoop filtering method
US20150019834A1 (en) Memory hierarchy using page-based compression
KR102575913B1 (en) Asymmetric set combined cache
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
CN105095116A (en) Cache replacing method, cache controller and processor
US7698512B2 (en) Compressing address communications between processors
US20090204769A1 (en) Method to Bypass Cache Levels in a Cache Coherent System
CN109947669A (en) The address conversion method and system of KV storage equipment
CN115033185A (en) Memory access processing method and device, storage device, chip, board card and electronic equipment
US11030714B2 (en) Wide key hash table for a graphics processing unit
CN107003932B (en) Cache directory processing method and directory controller of multi-core processor system
Hameed et al. Architecting on-chip DRAM cache for simultaneous miss rate and latency reduction
US20210165580A1 (en) Providing a dynamic random-access memory cache as second type memory
CN108459970B (en) Method and device for inquiring cache information
Wang et al. BBDL: A Wear-Leveling Algorithm of IoT Terminal PCRAM Application
Li et al. NDRec: A Near-Data Processing System for Training Large-Scale Recommendation Models
Nito et al. Large-scale BSP graph processing in distributed non-volatile memory
CN117632021A (en) Cache data management method, device and equipment
CN105359115A (en) Lookup of a data structure containing a mapping between a virtual address space and a physical address space
CN109165172A (en) Caching data processing method and relevant device
Aidong et al. Structure research in a sparse directory co-located with last-level cache

Legal Events

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