WO2014146424A1 - 一种基于有限数据一致性状态的服务器节点数据缓存方法 - Google Patents

一种基于有限数据一致性状态的服务器节点数据缓存方法 Download PDF

Info

Publication number
WO2014146424A1
WO2014146424A1 PCT/CN2013/085023 CN2013085023W WO2014146424A1 WO 2014146424 A1 WO2014146424 A1 WO 2014146424A1 CN 2013085023 W CN2013085023 W CN 2013085023W WO 2014146424 A1 WO2014146424 A1 WO 2014146424A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
data
cache
remote
local
Prior art date
Application number
PCT/CN2013/085023
Other languages
English (en)
French (fr)
Inventor
王恩东
胡雷钧
陈继承
甘小伟
公维锋
张峰
符云越
Original Assignee
浪潮电子信息产业股份有限公司
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 浪潮电子信息产业股份有限公司 filed Critical 浪潮电子信息产业股份有限公司
Publication of WO2014146424A1 publication Critical patent/WO2014146424A1/zh

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/0815Cache consistency protocols

Definitions

  • the present invention relates to the field of computer architecture, and in particular, to a server node data caching method based on a limited data consistency state.
  • a large-scale CC-NUMA computer system usually consists of a cluster of nodes (clump or node). unit.
  • Each node cluster consists of 2-4 server processors and 1-2 node controllers.
  • the node controllers are first interconnected with the various server processors to form a first-level interconnect domain and a cache-domain, and then the nodes.
  • the controllers are directly connected or interconnected by node routers to form a second-level interconnect domain and a cache-domain; the two-level domain can overcome the limitations of the processor itself to form a large-scale CC-NUMA computer system.
  • the interconnect bandwidth and efficiency of the intra-node domain is much higher than the inter-node interconnect bandwidth and efficiency.
  • each server processor integrates a memory controller and external memory, and manages a piece of cache-based memory space in the whole system space, thus becoming the root agent of the memory space.
  • the root agent records the access information and consistency status of each processor to the cache line data of the proxy based on the directory protocol. Therefore, the data access or consistency permission request for the segment space must be connected in the following manner: 1) Direct connection (if it is in the same node and cache-origin domain as the root processor that manages the segment-cache space); 2) or forward to the target processor through the node controller and node router (at this time) Requires cross-node and cross-cache domain access) root broker.
  • the node controller As the core device for maintaining the two-level domain cache-consistent, there are two main functions: First, as a remote proxy, proxying the access of the local node processor to the remote node (requires completion of the two-level cache- The domain controller needs to maintain the remote directory to record the access information and consistency status of the local processor to the remote cache line data. Second, as the local agent, the proxy remote node to the internal processor of the node.
  • the processor in the node performs remote data access in the local node controller (CPU ⁇ -> Local NO, and does not need to request the request). After multiple levels of jump Steps are sent to the remote root processor (CPU ⁇ ->Local NC ⁇ ->Network ⁇ -> emote Home NC ⁇ ->Home CPU), which significantly improves remote data access performance.
  • the remote node processor's access to the local root processor is completed within the local node controller without having to cross the cache at the local node. Reach the root processor, which reduces the number of access hops and eliminates the local node cross-cache coherency domain processing delay, improving the access performance of the remote processor to local data.
  • the data cache cached by the node controller has a certain impact on the performance of the node controller. If the cached data state is modified, if the processor in the node has the modified state data copy, it is likely to It is modified again, so that the data in the node data cache is not the latest value, which leads to the data invalidation problem. This aspect reduces the effectiveness of the node data cache, and on the other hand requires additional logic to determine the effectiveness of the cached modified state data. . In addition, due to the limited capacity of the node data cache, even if the modified state data of the node cache is the latest copy, it may be replaced.
  • the node controller needs to make a choice of the consistency state of the cached data, and it is especially important to select the appropriate cache-state data.
  • an object of the present invention is to provide a server node data caching method based on a limited data consistency state, which mainly provides a new solution to the existing high-delay problem of accessing memory across nodes.
  • Node CC-NUMA architecture server system has a good use effect.
  • a server node data caching method based on limited data consistency state includes the following steps:
  • step 2) according to the judgment result of step 1), read out the remote data or the local data of the consistent exclusive state, the shared state, and the forwarding state from the remote data cache of the node controller of the requested party or the local data cache of the node controller;
  • the node controller can not only mount the remote data cache and the local data cache at the same time, but also can separately mount the remote data cache or the local data cache.
  • the remote data cache or the local data cache cannot write the modified data, and after the data item life cycle ends, the new data item can directly override the replacement without affecting the global consistency of the server system.
  • the set of remote data caches of all node controllers is a true subset of all node controller local data cache sets, or equivalent thereto.
  • each node controller remote data cache and local data cache have address index information, and each The hierarchical node data cache address index information and the node directory information organization adopt a discrete mode.
  • the local node remote data cache and the remote node local data cache may be regarded as a degraded cache, thereby forming a two-level cache pair.
  • the server node data caching method based on the limited data consistency state can solve the problem of data space locality and temporal locality damage, effectively reduce the cross-node access frequency and eliminate the extra overhead caused by the node data cache replacement. Balanced control of redundancy and performance can be achieved to avoid crosstalk in a unified directory, which greatly improves server system performance.
  • Figure 1 Schematic diagram of the structure of a multi-node multiprocessor system
  • FIG. 2 is a schematic diagram of accessing a local node memory according to a first embodiment of the present invention
  • FIG. 3 is a schematic diagram of accessing a remote node memory according to a second embodiment of the present invention.
  • FIG. 4 is a schematic diagram of accessing a remote node memory according to a third embodiment of the present invention, wherein a remote data cache of the local node caches an S/E state at the LRDC;
  • FIG. 5 is a schematic diagram of accessing a remote node memory according to a fourth embodiment of the present invention, wherein a local data cache of the remote node caches an S/E state at the RLCD;
  • FIG. 6 is a schematic diagram of accessing a remote node memory according to a second embodiment of the present invention, wherein a remote data cache of a local node LRDC-a local data cache of a remote node caches an S/E state at a RLCD;
  • FIG. 7 is a schematic diagram of accessing a remote node memory according to a sixth embodiment of the present invention, wherein a remote data cache LRDC of a local node is called to cache data;
  • FIG. 8 is a schematic diagram of accessing a remote node memory according to a seventh embodiment of the present invention, wherein the local data cache of the remote node is called to cache data at the RLCD.
  • each node is composed of two processor CPUs and a node NC controller.
  • Each processor and node controller in the local node are in a cache-domain in the node, and each node controller passes through the system.
  • the interconnect network interconnects form an inter-node cache-to-node domain, and the processor can implement the processor memory access, cross-processor memory access within the node, and cross-node memory access operations through the node controller agent.
  • the processor CPU1 (103), the processor CPU2 (117), and the node NC (104) constitute a node domain.
  • the memory module attached to CPU1 (103) is Meml (102), and CPU2 (117) is connected to memory module Mem2 (118).
  • the node NC (104) controller is composed of a remote memory proxy engine RP (105), a local memory proxy engine LP (111), a remote node local data cache RLDC (115), and a local node remote data cache block LRDC (109). composition.
  • the remote memory proxy engine RP (105) is composed of a root broker HP (106) and a caching proxy CP (110), while the remote memory proxy engine RP (105) embeds a remote proxy directory RDIR (107) and a remote data cache. Address cable bow I RDCindex (108).
  • the basic process of accessing the local node memory is:
  • the processor CPU1 (103) misses the cache cache inside the processor when performing the memory access operation, and determines that its root memory is at the processor CPU2 (117) according to the access address, so the processor CPU1 (103) goes to the in-node processor.
  • CPU2 (117) directly sends a memory access request;
  • the processor CPU2 (117), after receiving the memory access request of the processor CPU1, finds that no processor has the data copy, and the processor CPU2 (117) reads the root memory Mem2 (118) data;
  • Memory Mem2 (118) returns data to CPU2 (117), and processor CPU2 (117) saves the fetch request information, including request type, memory access address, etc., and records the consistency status information of the requested data according to the request type;
  • the processor CPU2 (117) returns the data with the consistency status information and the access completion flag to the processor CPU1 (103), and the processor CPU1 (103) saves the memory access result according to the data return condition, and updates its cache proxy unit. The status of the read and write request.
  • the processor CPU1 (203) is located at the node where the controller NC1 (204) is located, and the root memory Mem2 (238) module is located at the processor CPU2 (237) of the node where the controller NC2 (224) is located.
  • Node NC1 (204) Controller node CPU1 (203) controller node NC2 (224) controller root memory Mem2 (238) access operation process is as follows:
  • Controller NC1 After the processor CPU1 (203) issues a memory access request operation, the local cache cache misses, and the cache agent unit stores relevant access information such as a memory access type, a memory access address, etc., and sends the memory access request to the local node. Controller NC1
  • the root agent HP (206) in the node NC1 (204) controller queries or updates the remote data cache directory RDIR (207) according to the memory access information, and determines whether other processors in the node have the data copy. Listening to other processors in the node; simultaneously querying the remote data cache block RDC (209) address index RDCindex (208) information; the remote data cache directory RDIR (207) and the address index RDCindex (208) are both missed In the case where the root agent HP (206) forwards the memory access request to the remote node caching agent CP (210);
  • Node NC1 (204)
  • the controller's remote memory agent RP (205)'s cache cache agent CP (210) receives the memory access request, saves the type of the memory access request, and fetches the cache cache agent CP (210). Address and other information, and maintain the state of the read and write request during processing, and determine that the root node is located at node NC2 (224) according to the memory access address, so the request is forwarded to the node NC2 (224) controller; 4)
  • the inter-domain interconnection network sends a request message from the node NCI (204) to the root node NC2 (224), and the root agent HP (232) of the memory agent LP (231) at the controller NC2 (224) receives the memory access Request message
  • Node NC2 The root agent HP (232) of the local agent LP (231) at the controller receives the memory access request message, and saves and updates the corresponding memory access information, such as the memory access type and the memory access address. Query the local proxy directory LDIR
  • Node NC2 (224)
  • the root proxy HP (232) of the local memory proxy LP (231) in the controller forwards the memory access information to the cache caching proxy CP (236), and the cache caching proxy CP (236) saves the fetch request Type, access address, and other information, and maintain the state of the read and write request during processing, and send the memory access request information to the root processor CPU2 (237) of the local node NC2 (224) according to the request address;
  • the root processor CPU2 (237) in the node NC2 (224) saves the information of the type of the memory access request, the memory access address, and the like, and maintains the state of the read/write request during processing, and the other processors in the confirmation node are not available.
  • the memory access operation is sent to the root memory Mem2 (238), and the return information (including the return data, the consistency status, etc.) is obtained;
  • the processor CPU2 (237) in the node NC2 (224) sends a return message to the local memory agent LP (231) cache caching proxy CP (236), and the cache caching agent CP (236) receives the return information. Sending a return message to the root broker HP (232) of the local memory agent LP (231);
  • Node NC2 (224)
  • the root agent HP (232) at the local memory agent LP (231) in the controller saves and updates the corresponding memory information, such as the memory access type, the memory access address, etc., and updates the local proxy directory LDIR. (234) ; If it is exclusive, shared or forwarded and is valid data, you can choose to write the data to the remote node local data cache LDC.
  • the remote node local data cache LDC (235) is not required to be written; The data information is written to the remote node local data cache LDC (235) and the remote node local data cache address index LDCindex (233) information is updated;
  • the inter-domain interconnection network returns the information returned by the node NC2 (224) controller's root agent HP (232) to the node NC1 (204) controller's cache caching agent CP (210), the cache caching agent CP (236) Forwarding to the root broker HP (206) after receiving the return message;
  • Node NC1 (204)
  • the remote root agent HP (206) in the remote memory agent RP (205) receives the return information and sends it to the processor CPU1 (203), while viewing the data status, if it is in the exclusive state, The shared state or the forwarding state is valid data, and the data may be written to the node remote data cache block RDC (209) and the remote data cache address index RDCindex (208) may be updated, if there is no valid data only for access authorization. There is no need to write to the remote data cache DC (209); in this example, the data information is not written to the remote data cache RDC (209) and the remote data cache address index RDCindex (208) is not updated. Referring to FIG.
  • the processor CPU1 (303) is located in the node where the controller NC1 (304) is located, and the memory Mem2 (338) module belongs to the processor CPU2 (337) in the node where the node NC2 (324) controller is located.
  • the process of fetching an address at the NC2 (324) node root memory Mem2 (338) in the NC1 (304) node CPU1 (304) is as follows:
  • the local cache cache misses, saves the access information such as the memory access type, the memory access address, etc., and sends the memory access request to the local node controller NC1 (304).
  • Node NC1 Node NC1 (304)
  • the root agent HP (306) in the controller saves the memory access information, queries or updates the remote data cache directory RDIR (307), and determines whether other processors in the node have the data copy. Whether to listen to other processors in the node; query local node remote data cache block LRDC ( 309 ) address index DCindex (308) information, both the remote data cache directory RDIR and the address index RDCindex (308) are missing In the case where the root agent HP (306) forwards the memory access request to the remote node caching agent CP (310) according to the access information;
  • Node NC1 (304)
  • the controller's remote memory agent RP (305)'s cache cache agent CP (310) receives the memory access request, saves the type of the memory access request, and fetches the cache cache agent CP (310). Address and other information, and maintain the state of the read and write request during processing, and determine that the root node is located at node NC2 (224) according to the memory access address, so forward the request to node NC2 (224);
  • the inter-domain interconnection network sends a request message sent by node NC1 (304) to destination node controller NC2 (324), node NC2 (324) root agent HP (332) of local memory agent LP (331) at controller Receiving a memory access request message;
  • Node NC2 The root agent HP (332) of the local agent LP (331) at the controller receives the memory access request message, and saves and updates the corresponding memory access information, such as the memory access type and the memory access address. Query the local proxy directory LDIR
  • Node NC2 (324)
  • the root agent HP (332) of the local memory agent LP (331) in the controller forwards the memory access information to the cache caching agent CP (336), and the cache caching agent CP (336) saves the fetch request Type, memory address and other information, and maintain the status of the read and write request during processing, and send the memory access request information to the local node, NC2 (324) inner root processor CPU2 (337) according to the request address;
  • the root processor CPU2 (337) in the node NC2 (324) saves the information of the type of the memory access request, the memory access address, and the like, and maintains the state of the read/write request during processing, and the other processors in the confirmation node are not available.
  • the memory is accessed to an address of the root memory Mem2 (338), and the returned information (including the returned data, the consistency status, etc.) is obtained;
  • Node NC2 (324) After receiving the return message, the root processor CPU2 (337) sends a return message to the cache cache agent CP (336) of the local memory agent LP (331) of the controller NC2 (324). The caching agent CP (336) receives the return message and then sends a return to the root agent HP (332) of the local memory agent LP (331) Information
  • Node NC2 (324)
  • the root agent HP (332) at the local memory agent LP (331) in the controller saves and updates the corresponding memory information, such as the memory access type, the memory access address, etc., and sends the data return information as Inter-domain interconnection network.
  • the inter-domain interconnection network returns the return information to the cache caching agent CP (310) of the node NC1 (304) controller, the cache caching agent CP (310) receives the return information and consistency, and sends the root agent HP (306) Forward
  • the root agent HP (306) in the remote memory proxy RP (305) in the node NC1 controller receives the return data and consistency, if it is in the exclusive state, the shared state or the forwarding state and is valid data, the data can be written.
  • the remote data buffer LRDC (309) is entered and the remote data cache address index RDCindex (308) is updated, and the return message is sent by the root agent HP (306) to the request processor CPU1 (303); in this example the data information is sent.
  • the processor CPU1 (403) is located at the node where the controller NC1 (404) is located, and the root memory Mem2 (438) module is located at the processor CPU2 (437) of the node where the controller NC2 (424) is located.
  • Node NC1 (404) processor CPU1 (403) to NC2 (424) node root memory Mem2 (438) access operation process is as follows:
  • the local cache cache misses, saves the access information such as the memory access type, the memory access address, etc., and sends the memory access request to the local node controller NC1 (404).
  • Node NC1 (404)
  • the root agent HP (406) in the controller controller saves the memory access information, queries or updates the remote data cache directory RDIR (407), and determines whether other processors in the node have the data. Copy, need to listen to other processors in the node; query local node remote data cache block LRDC (409) address index RDCindex (408) information, in the remote data cache directory RDIR (407) and address index RDCindex ( 408)
  • the root proxy HP (406) forwards the memory access request to the remote node caching proxy CP (410) according to the access information;
  • Node NC1 (404)
  • the controller's remote memory agent RP (405)'s cache cache agent CP (410) receives the memory access request, saves the type of the memory access request, and accesses the cache cache agent CP (410). Store the address and other information, and maintain the status of the read and write request during processing.
  • the local node NC2 (424) is the root processor CPU2.
  • the inter-domain interconnection network sends a request message from the node NC1 (404) controller to the destination node NC2 (424) controller, and the root agent HP of the local memory agent LP (431) at the node NC2 (424) controller 432) receiving a memory access request message; 5) Node NC2 (424) The root agent HP (432) of the local agent LP (431) at the controller receives the memory access request message, and saves and updates the corresponding memory access information, such as the memory access type and the memory access address. Query the local proxy directory LDIR
  • Node NC2 (424)
  • the root agent HP (432) of the local memory agent LP (431) in the controller forwards the memory access information to the cache caching agent CP (436), and the cache caching agent CP (436) saves the fetch request Type, memory address and other information, and maintain the status of the read and write request during processing, and send the memory access request information to the local node controller NC2 (424) root processor CPU 2 (437) according to the request address;
  • the root processor CPU2 (437) in the node NC2 (424) saves the information of the type of the memory access request, the memory access address, and the like, and maintains the state of the read/write request during processing, and the other processors in the confirmation node are not available.
  • the memory is accessed to the address of the root memory Mem2 (438), and the returned information (including the returned data, the consistency status, etc.) is obtained;
  • Node NC2 (424) After receiving the return message, the root processor CPU2 (437) sends a return message to the local memory agent LP (431) cache caching agent CP (436), and the cache buffer agent CP (436) receives the return message. Sending a return message to the root agent HP (432) of the local memory agent LP (431);
  • Node NC2 (424)
  • the root agent HP (432) at the local memory agent LP (431) in the controller receives the return information, the LDIR (434) directory is updated; if it is in the exclusive state, the shared state or the forwarding state and For valid data, the data and the consistency information are written into the remote node local data cache block (435), and the local data cache address index LDCindex (433) is recorded or updated. In this example, the data information is written to the far The end node local data cache LDC (435) does not update the remote node local data cache address index LDCindex (433);
  • the inter-domain interconnection network returns the information returned by the node NC2 (424) controller's root agent HP (432) to the node NC1 (404) controller's cache caching agent CP (410), the cache caching agent CP (436) Receive return information and consistency, and forward to the root broker HP (406);
  • the root agent HP (406) in the node NC1 controller receives the return data and consistency in the remote memory agent RP (405), if it is in the exclusive state, the shared state or the forwarding state and is valid data, the data can be written.
  • the remote data buffer block LRDC (409) is entered and the remote data cache address index RDCindex (408) is updated, while the return message is sent by the root broker HP (406) to the request processor CPU1 (403); this is not the case in this example.
  • Data information is written to the remote data cache RDC
  • the processor CPU1 (503) is located at the node where the controller NC1 (504) is located, and the root memory Mem2 (538) module is located at the processor CPU2 (537) of the node where the controller NC2 (524) is located.
  • Node NC1 (504) internal processor CPU1 (503) to node NC2 (524) root memory Mem2 (538) memory access operation process is as follows:
  • Node NCI The root agent HP (506) in the controller saves the memory access information, queries or updates the remote data cache directory RDIR (507), and determines whether other processors in the node have the data copy. Whether to listen to other processors in the node; query local node remote data cache block LRDC ( 509 ) address index DCindex (508) information, in the remote data cache directory RDIR (507) and address index RDCindex (508) In the case of a miss, the root agent HP (506) forwards the memory access request to the remote node caching agent CP (510) according to the access information;
  • Node NC1 (504)
  • the controller's remote memory agent RP (505)'s cache cache agent CP (510) receives the memory access request, saves the type of the memory access request, and accesses the cache cache agent CP (510). Store the address and other information, and maintain the status of the read and write request during processing.
  • the local node NC2 (524) is the root processor CPU2.
  • the inter-domain interconnection network sends a request message from the node NC1 (504) controller to the destination node NC2 (524) controller, and the root agent HP of the local memory agent LP (531) at the node NC2 (524) controller 532) receiving a memory access request message;
  • Node NC2 The root agent HP (532) of the local agent LP (531) at the controller receives the memory access request message, and saves and updates the corresponding memory access information, such as the memory access type and the memory access address. Query the local proxy directory LDIR
  • Node NC2 Node NC2 (524)
  • the root agent HP (532) of the local memory agent LP (531) in the controller forwards the memory access information to the cache caching agent CP (536), and the cache caching agent CP (536) saves the fetch request Type, memory address and other information, and maintain the status of the read and write request during processing, and send the memory access request information to the local node NC2 (524) root processor CPU2 (537) according to the request address;
  • the root processor CPU2 (537) in the node NC2 (524) saves the information of the type of the memory access request, the memory access address, and the like, and maintains the state of the read/write request during processing, and the other processors in the confirmation node are not available. After copying the data, perform a memory access operation to an address of Mem2 (538), and obtain return information (including return data, consistency status, etc.);
  • Node NC2 (424) After receiving the return message, the root processor CPU2 (537) sends a return message to the local memory agent LP (531) cache caching agent CP (536), and the cache caching agent CP (536) receives the return message. The return message is sent back to the root agent HP (532) of the local memory agent LP (531);
  • Node NC2 The root agent HP (532) at the local memory agent LP (531) in the controller receives the return information, the LDIR (534) directory is updated; if it is in the exclusive state, the shared state or the forwarding state and For valid data, the data and the consistency information are written into the remote node local data cache block RLDC (535) data block, and the remote node local data cache address index LDCindex (533) is recorded or updated, in this example The data information is written to the remote node local data cache RLDC (535) and the remote node local data cache address index LDCindex (533) is updated; 10)
  • the inter-domain interconnection network returns the information returned by the node NC2 (524) controller's root agent HP (532) to the node NC1 (504) controller's cache caching agent CP (510), the cache caching agent CP (536) Receive return information and consistency, and forward to the root broker HP (506);
  • the root agent HP (506) in the remote memory proxy RP (505) in the node NC1 controller receives the return data and consistency, if it is in the exclusive state, the shared state or the forwarding state and is valid data, the data can be Write to the remote data cache DC (509) and update the remote data cache address index RDCindex (508), while the root agent HP (506) sends a return message to the request processor CPU1 (503); in this example the data is Information is written to the remote data cache RDC (509) and the remote data cache address index RDCindex (508) is updated.
  • the processor CPU2 (617) is located at the node where the controller NC1 (604) is located, and the root memory Mem2 (638) module is located at the processor CPU2 (637) of the node where the controller NC2 (624) is located.
  • Node NC1 (604) processor CPU2 (617) to node NC2 (624) root memory Mem2 (638) access operation process is as follows:
  • the processor CPU2 (617) initiates a memory access request to the memory address Mem2 (638) at the node NC2 (624), and sends a memory access request to the node according to the memory access address information in the case of a cache miss at the CPU 2 (617).
  • Node NC1 The controller remote memory agent RP (606) saves the memory access information, such as the memory access type, the memory access address, etc., queries the remote memory agent directory RDIR (607), and finds the processor CPU1 in the node. (603) having the copy of the data, so the remote memory agent RP (606) listens to the local processor CPU1 (603);
  • the processor CPU1 receives the listening message sent by the root agent HP (606), and after performing the corresponding consistency state maintenance, returns a listening response to the root agent HP (606);
  • the root agent HP finds that the processor CPU1 (603) has no copy of the data (cache automatic replacement) or the data copy consistency authority is degraded according to the listening response returned by the processor CPU1 (603) (eg from exclusive) Degraded to a shared state) causes the copy of the data to be unavailable;
  • the root proxy HP queries the local node remote data cache address index RDCindex (608) and finds that the address index RDCindex (608) hits, so the remote memory proxy RP (606) caches the local node remote data cache LRDC (609). ) initiate a memory access operation;
  • Root Agent HP finds the local node remote data cache LRDC (609) returns a copy of the data information available and the consistency permissions meet the requirements, then returns to the processor CPU2 (617) the remote data cache from the local node LRDC
  • the processor CPU1 (703) is located at the node where the controller NC1 (704) is located, and the root memory is
  • the Mem2 (738) module is located at the processor CPU2 (737) of the node where the controller NC2 (724) is located, and the processor CPU1 (703) in node NC1 (704) is accessed by the node NC2 (724) root memory Mem2 (738).
  • the operation process is as follows:
  • the processor CPU1 (703) initiates a memory access request to the memory address Mem2 (738) at the node NC2 (724), and sends a memory access request according to the memory access address information when the processor CPU1 (703) fails the cache.
  • the node NC1 The processor CPU1 (703) initiates a memory access request to the memory address Mem2 (738) at the node NC2 (724), and sends a memory access request according to the memory access address information when the processor CPU1 (703) fails the cache.
  • Node NC1 The controller remote memory agent RP (706) saves the memory access information, such as the memory access type, the memory access address, etc., queries the remote memory agent directory RDIR (707), and finds the processor CPU2 in the node. ( 717) A copy of the data is available, so the remote memory agent RP (706) listens to the local processor CPU 2 (717);
  • the processor CPU2 (717) receives the listening message sent by the root agent HP (706), and after performing the corresponding consistency state maintenance, returns a listening response to the root agent HP (706);
  • the root agent HP receives the consistency response information returned by the processor CPU2 (717), and finds that the processor CPU2 (717) has no copy of the data (cache automatic replacement) or the data copy consistency authority is degraded (eg Degrading from exclusive state to shared state) causes the copy of the data to be unavailable;
  • the root proxy HP queries the local remote data cache address index RDCindex (708), and finds that the address index DCindex (708) misses, and then saves the memory access information and maintains the consistency state, and then forwards the memory access request to the cache.
  • Cache proxy CP (710);
  • the inter-domain interconnection network (720) forwards the fetch request message sent by the node NC1 (704) controller remote memory agent RP (705) cache caching agent CP (710) to the local node of the node NC2 (724) controller Root Agent HP (732) of Memory Agent LP (731);
  • Node NC2 (724)
  • the root agent HP (732) of the controller local memory agent LP (731) receives the memory access information, saves the memory access information (memory type, memory access address, etc.), maintains the consistency status, and queries Node NC2 (724) controller local node remote data cache address index LDCindex (733), and finds a hit to initiate a memory access operation to the remote node local data cache block RLDC (735);
  • the root agent HP After receiving the data information and consistency status returned by the remote node local data cache block RLDC (735), the root agent HP (732) finds that the data information copy is available and the consistency authority meets the requirement, then the data information is passed.
  • the inter-domain interconnection network (720) sends a cache caching agent CP (710) to the remote memory agent RP (705) of the node NC1 controller;
  • the Cache Cache Agent CP (710) receives the return data and the consistency status information and sends it to the Root Agent HP (706).
  • the root proxy HP (706) updates the corresponding remote memory proxy directory RDIR (707) directory according to the return data and the consistency information, writes the data information to the local node remote data cache LRDC (709) and updates the local node far.
  • the end data caches the address index RDCindex (708), and then sends the return data information to the fetch requester CPU 1 (703).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种基于有限数据一致性状态的服务器节点数据缓存方法,包括如下步骤:1)发出访存信息,判断访存地址索引匹配是否正确,且数据一致性权限是否满足访问要求;2)从被请求方的节点控制器远端数据缓存或节点控制器本地数据缓存读出一致性独占态、共享态、转发态的远端数据或本地数据;3)仅将一致性独占态、共享态、转发态的远端数据或本地数据写入请求方的节点控制器远端数据缓存或本地数据缓存。本发明可有效降低跨节点访问频度并消除节点数据缓存替换带来的额外开销,此外,可以实现冗余度和性能的均衡控制,避免在统一目录下的替换串扰,从而大大提高了服务器系统性能。

Description

一种基于有限数据一致性状态的服务器节点数据缓存方法
技术领域
本发明涉及计算机体系结构领域, 尤其涉及一种基于有限数据一致性状态的服务器节点 数据缓存方法。
背景技术
由于服务器处理器的互连端口数量限制, 通过处理器直连的方式很难构建大规模的 CC-NUMA计算机系统; 因此大规模 CC-NUMA计算机系统通常以节点簇 (clump或 node) 为基本组成单位。 每个节点簇由 2-4个服务器处理器和 1-2个节点控制器组成, 节点控制器 首先与各个服务器处理器互连, 组成第一级互连域和 cache—致性域, 然后节点控制器之间 直连或通过节点路由器互连构成第二级互连域和 cache—致性域; 通过两级域的方式可以克 服处理器本身限制, 从而组成大规模 CC-NUMA计算机系统。 另外, 由于物理尺寸和硬件规 模的限制, 对于两级域组成的 CC-NUMA服务器系统, 节点内域的互连带宽和效率远高于节 点间互连带宽和效率。
对于基于点到点互连方式的服务器系统, 每个服务器处理器都集成内存控制器并外接内 存, 都在全系统空间上管理一段 cache—致性内存空间, 从而成为这段内存空间的根代理。 根代理基于目录协议,通过目录的方式记录各个处理器对所代理的 cache line数据的访问信息 和一致性状态; 因此对该段空间的数据访问或一致性权限请求,都必须通过以下方式连接: 1 ) 直连(如果和管理该段 cache—致性空间的根处理器处于同一节点和 cache—致性域)方式访 问; 2) 或通过节点控制器、 节点路由器转发到目标处理器 (此时需要跨节点和跨 cache—致 性域访问) 根代理。 显然, 后一种方式将导致多级跳步访问并需要两级 cache—致性域逻辑 转换, 大大增加了访问的延迟。 尤其是对远端 cacheline数据的访问可能需要多次一致性操作 才能完成, 从而进一步降低跨节点访问的效率。
对于节点控制器, 作为维护两级域 cache—致性的核心装置, 主要有两个功能: 一是作 为远端代理,代理本节点处理器对远端节点的访问(需要完成两级 cache—致性域转换逻辑), 此时节点控制器需要维护远端目录来记录本地处理器对远端 cache line数据的访问信息和一 致性状态; 二是作为本地代理, 代理远端节点对本节点内处理器的数据访问 (需要完成两级 cache 一致性域转换逻辑), 此时节点控制器同样需要维护本地目录来记录远端节点对本地 cache line数据的访问信息和一致性状态, 因此如果能在节点控制器缓存部分内存数据则可以 有效降低跨节点访问的频率或访问跳步的次数,从而提升 CC-NUMA架构服务器系统的性能。
对于远端代理单元, 如果节点控制器芯片支持远端数据缓存机制, 使本节点内处理器对 远端数据访问在本地节点控制器内完成 (CPU<-> Local NO, 而不需要将该请求经过多级跳 步发往远端根处理器 (CPU<->Local NC<->Network<-> emote Home NC<->Home CPU), 从 而显著提升远端数据访问性能。 而对于本地代理单元, 如果节点控制器芯片支持本地数据缓 存机制, 从而使远端节点处理器对本地根处理器的访问在本地节点控制器内完成而不需要在 本地节点跨越 cache —致性域到达根处理器, 从而降低访问跳步数并消除本地节点跨 cache 一致性域处理延迟, 提升远端处理器对本地数据的访问性能。
同时, 节点控制器缓存的数据 cache —致性状态情况对节点控制器性能有一定的影响, 若缓存的数据状态为修改状态, 如果节点内处理器有该修改状态数据副本, 则很可能还会再 次被修改, 从而使得节点数据缓存中该数据不是最新值, 导致数据失效问题, 这一方面降低 节点数据缓存的有效性,另一方面则要求增加额外的逻辑判断缓存的修改状态数据的实效性。 另外, 由于节点数据缓存容量有限, 即使节点缓存的修改状态数据是最新副本, 也可能被替 换, 在替换过程中需要复杂的逻辑确保该修改状态数据被写回根处理器, 同时确保新数据被 正确写入, 此时系统逻辑很可能需要串行执行, 从而降低系统的效率。 因此, 节点控制器需 要对缓存数据的一致性状态做出选择, 选择合适的 cache—致性状态的数据尤为重要。
发明内容
为解决上述问题, 本发明的目的在于提供一种基于有限数据一致性状态的服务器节点数 据缓存方法, 其主要是针对现有跨节点访问内存高延迟问题, 提供一种新的解决方案, 在多 节点 CC-NUMA架构服务器系统的应用中有较好的使用效果。
为实现上述目的, 本发明的技术方案为:
一种基于有限数据一致性状态的服务器节点数据缓存方法, 包括如下步骤:
1 )发出访存信息,判断访存地址索引匹配是否正确且数据一致性权限是否满足访问要求;
2) 根据步骤 1 ) 的判断结果, 从被请求方的节点控制器远端数据缓存或节点控制器本地 数据缓存读出一致性独占态、 共享态、 转发态的远端数据或本地数据;
3 )仅将一致性独占态、 共享态、转发态的远端数据或本地数据写入请求方的节点控制器 远端数据缓存或本地数据缓存。
进一步地, 所述的节点控制器不但可以同时挂接远端数据缓存和本地数据缓存, 而且也 可以单独挂接远端数据缓存或本地数据缓存。
进一步地, 远端数据缓存或本地数据缓存不能写入修改态的数据, 而且其中数据项生命 周期结束后, 新数据项可以直接覆盖替换而不影响服务器系统全局一致性。
进一步地, 所有节点控制器远端数据缓存组成的集合是所有节点控制器本地数据缓存集 合的一个真子集, 或者与其等价。
进一步地, 各级节点控制器远端数据缓存和本地数据缓存均具有地址索引信息, 并且各 级节点数据缓存地址索引信息和节点目录信息组织均采用分立模式。
进一步地, 在访存过程中, 可以把本地节点远端数据缓存与远端节点本地数据缓存视为 降级的 cache, 从而组成两级 cache对。
本发明基于有限数据一致性状态的服务器节点数据缓存方法可以解决数据空间局部性和 时间局部性受损的问题,有效降低跨节点访问频度并消除节点数据缓存替换带来的额外开销, 此外, 可以实现冗余度和性能的均衡控制, 避免在统一目录下的替换串扰, 从而大大提高了 服务器系统性能。
附图说明
图 1 多节点多处理器系统结构示意图;
图 2 是根据本发明第一实施例的访问本地节点内存示意图
图 3 是根据本发明第二实施例的访问远端节点内存示意图
图 4 是根据本发明第三实施例的访问远端节点内存示意图 , 其中本地节点的远端数据缓 存 LRDC处缓存 S/E态;
图 5 是根据本发明第四实施例的访问远端节点内存示意图, 其中远端节点的本地数据缓 存 RLCD处缓存 S/E态;
图 6是根据本发明第唔实施例的访问远端节点内存示意图, 其中本地节点的远端数据缓 存 LRDC-远端节点的本地数据缓存 RLCD处缓存 S/E态;
图 7 是根据本发明第六实施例的访问远端节点内存示意图, 其中调用本地节点的远端数 据缓存 LRDC处缓存数据;
图 8 是根据本发明第七实施例的访问远端节点内存示意图, 其中调用远端节点的本地数 据缓存 RLCD处缓存数据。
具体实施方式
为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对本发 明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并不用 于限定本发明。
请参照图 1所示, 每个节点由 2个处理器 CPU和节点 NC控制器构成, 本地节点内的各 个处理器和节点控制器处于节点内 cache—致性域, 而各节点控制器通过系统互连网络互连 组成节点间 cache—致性域, 处理器可实施本处理器内存访问、 节点内跨处理器内存访问以 及通过节点控制器代理实现跨节点内存访问操作。 请参照图 2所示, 处理器 CPU1 (103)、 处理器 CPU2 (117) 和节点 NC (104) 构成一 个节点域。 CPU1 (103)挂接的内存模块为 Meml (102), CPU2 (117)挂接内存模块 Mem2 (118)。节点 NC( 104)控制器内由远端内存代理引擎 RP( 105)、本地内存代理引擎 LP( 111)、 远端节点本地数据缓存 RLDC (115) 和本地节点远端数据缓存块 LRDC (109) 组成。 远端 内存代理引擎 RP (105) 由根代理 HP (106) 和缓存代理 CP (110) 构成, 同时远端内存 代理引擎 RP ( 105 )内嵌远端代理目录 RDIR (107)和远端数据缓存地址索弓 I RDCindex (108)。 访问本地节点内存基本处理过程为:
1) 处理器 CPU1 (103) 执行访存操作时在处理器内部未命中 cache缓存,根据访问地址 确定其根内存在处理器 CPU2 ( 117 )处,因此处理器 CPU1 ( 103 )向节点内处理器 CPU2 (117) 直接发送访存请求;
2)处理器 CPU2 (117)在接收处理器 CPU1的访存请求后,发现无处理器有该数据副本, 于是处理器 CPU2 (117) 读取根内存 Mem2 (118) 数据;
3) 内存 Mem2 (118) 向 CPU2 (117) 返回数据, 处理器 CPU2 (117) 保存访存请求信 息, 包括请求类型、 访存地址等, 并按请求类型记录被请求数据的一致性状态信息;
4) 处理器 CPU2 (117) 向处理器 CPU1 (103) 返回带一致性状态信息的数据和访问完 成标志等, 处理器 CPU1 (103) 根据数据返回情况保存访存结果, 并更新其缓存代理单元读 写请求的状态。
请参照图 3所示, 处理器 CPU1 (203) 位于节点 NC1 (204) 控制器所在节点, 根内存 Mem2 (238)模块位于节点 NC2 (224)控制器所在节点的处理器 CPU2 (237)处, 节点 NC1 (204) 控制器节点内处理器 CPU1 (203) 对节点 NC2 (224) 控制器根内存 Mem2 (238) 的访存操作过程如下:
1)处理器 CPU1 (203)发出访存请求操作后, 在本地 cache缓存未命中, 在其缓存代理 单元保存相关访问信息如访存类型、 访存地址等, 并将访存请求发送至本地节点控制器 NC1
(204) 的远端内存代理 RP (205) 的根代理 HP (206) 处;
2)节点 NC1 (204)控制器内的根代理 HP (206)根据访存信息对远端数据缓存目录 RDIR (207)进行查询或更新, 判断节点内其他处理器是否有该数据副本, 是否需要对节点内其他 处理器进行侦听操作; 同时查询远端数据缓存块 RDC (209) 地址索引 RDCindex (208) 信 息; 在远端数据缓存目录 RDIR (207) 和地址索引 RDCindex (208) 均未命中情况下根代 理 HP (206) 向远端节点缓存代理 CP (210) 转发访存请求;
3) 节点 NC1 (204) 控制器远端内存代理 RP (205) 的 cache缓存代理 CP (210) 接收 到访存请求, 在 cache缓存代理 CP (210) 内部保存该访存请求的类型、 访存地址等信息, 并维护读写请求在处理过程中的状态, 同时根据访存地址确定其根节点位于节点 NC2 (224) 处, 故向节点 NC2 (224) 控制器转发请求; 4) 域间互连网络将节点 NCI (204) 发出的请求消息发送到根节点 NC2 (224), 节点 NC2 (224) 控制器处内存代理 LP (231 ) 的根代理 HP (232) 接收访存请求消息;
5 ) 节点 NC2 (224) 控制器处本地代理 LP (231 ) 的根代理 HP (232) 接收访存请求消 息后,进行相应访存信息保存和更新,如访存类型、访存地址等,通过查询本地代理目录 LDIR
( 234 ) 确认是否对其他节点发出侦听操作, 并通过查询远端节点本地数据缓存地址索引 LDCindex (233 )确认是否调用远端节点本地数据缓存块 RLDC (235 )等,在本示例中查询结 果表明无需执行该类操作;
6) 节点 NC2 (224) 控制器内本地内存代理 LP (231 ) 的根代理 HP (232) 转发访存信 息给 cache缓存代理 CP (236), cache缓存代理 CP (236) 保存该访存请求的类型、 访存地 址等信息, 并维护读写请求在处理过程中的状态, 根据请求地址向本地节点 NC2 (224) 内根 处理器 CPU2(237)发出访存请求信息;
7) 节点 NC2 (224) 内的根处理器 CPU2 (237) 保存该访存请求的类型、 访存地址等 信息, 并维护读写请求在处理过程中的状态, 在确认节点内其他处理器无该数据副本后, 向 根内存 Mem2 (238)某地址发出访存操作,并得到返回信息(包括返回数据、一致性状态等);
8)节点 NC2 (224)内处理器 CPU2 (237)接收到返回信息后, 向本地内存代理 LP (231 ) cache缓存代理 CP (236) 发送返回信息, cache缓存代理 CP (236) 接收返回信息后向本地 内存代理 LP (231 ) 的根代理 HP (232) 发送返回信息;
9) 节点 NC2 (224) 控制器中本地内存代理 LP (231 ) 处的根代理 HP (232) 进行相应 访存信息保存和更新, 如访存类型、 访存地址等, 并更新本地代理目录 LDIR (234) ; 若为 独占态、 共享态或转发态并为有效数据, 可以选择将该数据写入远端节点本地数据缓存 LDC
(235 ) 并更新远端节点本地数据缓存地址索引 LDCindex (233 ), 若仅为访问权限授权而无 有效数据则不需要写入远端节点本地数据缓存 LDC (235 ); 在本示例中未将该数据信息写入 远端节点本地数据缓存 LDC (235 ) 和更新远端节点本地数据缓存地址索引 LDCindex (233 ) 信息;
10) 域间互连网络将返回信息由节点 NC2 (224) 控制器的根代理 HP (232) 返回到节 点 NC1 (204)控制器的 cache 缓存代理 CP (210), cache缓存代理 CP (236)接收返回信息 后向根代理 HP (206) 转发;
11 )节点 NC1 (204)控制器内远端内存代理 RP (205 ) 中根代理 HP (206)接收到返回 信息后将其发送到处理器 CPU1 (203 ),同时查看数据状态, 若为独占态、 共享态或转发态并 为有效数据, 可以选择将该数据写入节点远端数据缓存块 RDC (209) 并更新远端数据缓存 地址索引 RDCindex (208 ) ,若仅为访问权限授权而无有效数据则不需要写入远端数据缓存 DC (209);在本示例中未将该数据信息写入远端数据缓存 RDC (209)并未更新远端数据缓 存地址索引 RDCindex (208)。 请参照图 4所示, 处理器 CPU1 (303 ) 位于节点 NC1 (304) 控制器所在节点内, 内存 Mem2 (338)模块属于节点 NC2 (324)控制器所在节点内处理器 CPU2 (337)处, 节点 NC1 (304) 内处理器 CPU1 (303 ) 对 NC2 (324) 节点根内存 Mem2 (338) 处某地址的访存操 作过程如下:
1 )处理器 CPU1 (303 )发出访存请求操作后, 在本地 cache缓存未命中, 保存访问信息 如访存类型、 访存地址等, 将访存请求发送至本地节点控制器 NC1 (304) 的远端内存代理 P (305 ) 的根代理 HP (306) 处;
2) 节点 NC1 (304) 控制器内的根代理 HP (306) 将访存信息进行保存, 对远端数据缓 存目录 RDIR (307) 查询或更新, 判断节点内其他处理器是否有该数据副本, 是否需要对节 点内其他处理器进行侦听操作; 查询本地节点远端数据缓存块 LRDC ( 309 ) 地址索引 DCindex (308) 信息, 在远端数据缓存目录 RDIR和地址索引 RDCindex (308) 均未命中 情况下根代理 HP (306) 根据访信息将向远端节点缓存代理 CP(310)转发访存请求;
3 ) 节点 NC1 (304) 控制器远端内存代理 RP (305 ) 的 cache缓存代理 CP (310) 接收 到访存请求, 在 cache缓存代理 CP (310) 内部保存该访存请求的类型、 访存地址等信息, 并维护读写请求在处理过程中的状态, 同时根据访存地址确定其根节点位于节点 NC2 (224) 处, 故向节点 NC2 (224) 转发请求;
4)域间互连网络将节点 NC1 (304)发出的请求消息发送到目的节点控制器 NC2 (324), 节点 NC2 (324) 控制器处本地内存代理 LP (331 ) 的根代理 HP (332) 接收访存请求消息;
5 ) 节点 NC2 (324) 控制器处本地代理 LP (331 ) 的根代理 HP (332) 接收访存请求消 息后,进行相应访存信息保存和更新,如访存类型、访存地址等,通过查询本地代理目录 LDIR
( 334 ) 确认是否对其他节点发出侦听操作, 并通过查询远端节点本地数据缓存地址索引 LDCindex (333 ) 确认是否调用远端节点本地数据缓存块 RLDC (335 ) 等, 在本示例中查询 结果表明无需执行该类操作;
6) 节点 NC2 (324) 控制器内本地内存代理 LP (331 ) 的根代理 HP (332) 转发访存信 息给 cache缓存代理 CP (336), cache缓存代理 CP (336) 保存该访存请求的类型、 访存地 址等信息, 并维护读写请求在处理过程中的状态, 根据请求地址向本地节点、 NC2 (324) 内 根处理器 CPU2 (337) 发出访存请求信息;
7) 节点 NC2 (324) 内的根处理器 CPU2 ( 337)保存该访存请求的类型、 访存地址等信 息, 并维护读写请求在处理过程中的状态, 在确认节点内其他处理器无该数据副本后, 向根 内存 Mem2 (338)某地址进行访存操作, 并得到返回信息 (包括返回数据、 一致性状态等);
8) 节点 NC2 (324) 内根处理器 CPU2 (337) 接收到返回信息后, 向节点 NC2 (324) 控制器的本地内存代理 LP (331 ) 的 cache缓存代理 CP (336) 发送返回信息, cache缓存代 理 CP (336) 接收返回信息, 然后向本地内存代理 LP (331 ) 的根代理 HP (332) 发送返回 信息;
9) 节点 NC2 (324) 控制器中本地内存代理 LP (331 ) 处的根代理 HP (332) 进行相应 访存信息保存和更新, 如访存类型、 访存地址等, 将数据返回信息发送为域间互连网络。 并 更新本地代理目录 LDIR (334) ; 若为独占态、 共享态或转发态并为有效数据, 可以选择将 该数据写入远端节点本地数据缓存 LDC( 335 )并更新远端数据缓存地址索引 RDCindeX( 333 ), 若仅为访问权限授权而无有效数据则不需要写入远端节点本地数据缓存 LDC (335 ); 在本示 例中未将该数据信息写入远端节点本地数据缓存 LDC (335 ) 和更新远端节点本地数据缓存 地址索引 LDCindex (333 ) 信息;
10)域间互连网络将返回信息返回到节点 NC1 (304)控制器的 cache 缓存代理 CP (310), cache缓存代理 CP (310) 接收返回信息和一致性, 并向根代理 HP (306) 转发;
11 )节点 NC1控制器内远端内存代理 RP (305 ) 中根代理 HP (306)接收到返回数据和 一致性后, 若为独占态、 共享态或转发态并为有效数据, 可以将该数据写入远端数据缓存 LRDC (309) 并更新远端数据缓存地址索引 RDCindex (308),另外由根代理 HP (306) 发送 返回信息到请求处理器 CPU1 (303 );在本示例中将该数据信息写入远端数据缓存 RDC (309) 并更新远端数据缓存地址索引 RDCindex (308)。
请参照图 5所示, 处理器 CPU1 (403 ) 位于节点 NC1 (404) 控制器所在节点, 根内存 Mem2 (438)模块位于节点 NC2 (424)控制器所在节点的处理器 CPU2 (437)处, 节点 NC1 (404) 内处理器 CPU1 (403 ) 对 NC2 (424) 节点根内存 Mem2 (438) 访存操作过程如下:
1 )处理器 CPU1 (403 )发出访存请求操作后, 在本地 cache缓存未命中, 保存访问信息 如访存类型、 访存地址等, 将访存请求发送至本地节点控制器 NC1 (404) 的远端内存代理 P (405 ) 的根代理 HP (406) 处;
2) 节点 NC1 (404) 控制器控制器内的根代理 HP (406) 将访存信息进行保存, 对远端 数据缓存目录 RDIR (407) 查询或更新, 判断节点内其他处理器是否有该数据副本, 是否需 要对节点内其他处理器进行侦听操作; 查询本地节点远端数据缓存块 LRDC (409)地址索引 RDCindex (408) 信息, 在远端数据缓存目录 RDIR (407) 和地址索引 RDCindex (408) 均 未命中情况下根代理 HP (406)根据访信息将向远端节点缓存代理 CP (410)转发访存请求;
3 ) 节点 NC1 (404) 控制器的远端内存代理 RP (405 ) 的 cache缓存代理 CP (410) 接 收到访存请求, 在 cache缓存代理 CP (410) 内部保存该访存请求的类型、 访存地址等信息, 并维护读写请求在处理过程中的状态,根据请求地址向本地节点 NC2 (424)内根处理器 CPU2
(437) 发出访存请求信息;
4) 域间互连网络将节点 NC1 (404) 控制器发出的请求消息发送到目的节点 NC2 (424) 控制器, 节点 NC2 (424)控制器处本地内存代理 LP (431 ) 的根代理 HP (432)接收访存请 求消息; 5 ) 节点 NC2 (424) 控制器处本地代理 LP (431 ) 的根代理 HP (432) 接收访存请求消 息后,进行相应访存信息保存和更新,如访存类型、访存地址等,通过查询本地代理目录 LDIR
( 434 ) 确认是否对其他节点发出侦听操作, 并通过查询远端节点本地数据缓存地址索引 LDCindex (433 ) 确认是否调用远端节点本地数据缓存块 RLDC (435 ) 等, 在本示例中查询 结果表明无需执行该类操作;
6) 节点 NC2 (424) 控制器内本地内存代理 LP (431 ) 的根代理 HP (432) 转发访存信 息给 cache缓存代理 CP (436), cache缓存代理 CP (436) 保存该访存请求的类型、 访存地 址等信息,并维护读写请求在处理过程中的状态,根据请求地址向本地节点控制器 NC2 (424) 内根处理器 CPU2(437)发出访存请求信息;
7) 节点 NC2 (424) 内的根处理器 CPU2 (437)保存该访存请求的类型、 访存地址等信 息, 并维护读写请求在处理过程中的状态, 在确认节点内其他处理器无该数据副本后, 向根 内存 Mem2 (438)某地址进行访存操作, 并得到返回信息 (包括返回数据、 一致性状态等);
8) 节点 NC2 (424) 内根处理器 CPU2 (437) 接收到返回信息后, 向本地内存代理 LP (431 ) cache缓存代理 CP (436) 发送返回信息, cache缓存代理 CP (436)接收返回信息后 向本地内存代理 LP (431 ) 的根代理 HP (432) 发送返回信息;
9) 节点 NC2 (424) 控制器中本地内存代理 LP (431 ) 处的根代理 HP (432) 接收到返 回信息后, LDIR (434) 目录更新; 若为独占态、 共享态或转发态并为有效数据, 则将该数 据及一致性信息写入远端节点本地数据缓存块 (435 ) 中,并记录或更新本地数据缓存地址索 引 LDCindex (433 ) ,在本示例中将该数据信息写入远端节点本地数据缓存 LDC (435 ) 并未 更新远端节点本地数据缓存地址索引 LDCindex (433 );
10) 域间互连网络将返回信息由节点 NC2 (424) 控制器的根代理 HP (432) 返回到节 点 NC1 (404)控制器的 cache 缓存代理 CP (410), cache缓存代理 CP (436)接收返回信息 和一致性, 并向根代理 HP (406) 转发;
11 )节点 NC1控制器内远端内存代理 RP (405 ) 中根代理 HP (406)接收到返回数据和 一致性后, 若为独占态、 共享态或转发态并为有效数据, 可以将该数据写入远端数据缓存块 LRDC (409) 并更新远端数据缓存地址索引 RDCindex (408), 同时由根代理 HP (406) 发 送返回信息到请求处理器 CPU1 (403 ); 在本示例中未将该数据信息写入远端数据缓存 RDC
(409) 并未更新远端数据缓存地址索引 RDCindex (408)。
请参照图 6所示, 处理器 CPU1 (503 ) 位于节点 NC1 (504) 控制器所在节点, 根内存 Mem2 (538)模块位于节点 NC2 (524)控制器所在节点的处理器 CPU2 (537)处, 节点 NC1 (504) 内处理器 CPU1 (503 ) 对节点 NC2 (524) 根内存 Mem2 (538) 访存操作过程如下:
1 )处理器 CPU1 (503 )发出访存请求操作后, 在本地 cache缓存未命中, 保存访问信息 如访存类型、 访存地址等, 将访存请求发送至本地节点控制器 NC1 (504) 的远端内存代理 P (505 ) 的根代理 HP (506) 处;
2) 节点 NCI (504) 控制器内的根代理 HP (506) 将访存信息进行保存, 对远端数据缓 存目录 RDIR (507) 查询或更新, 判断节点内其他处理器是否有该数据副本, 是否需要对节 点内其他处理器进行侦听操作; 查询本地节点远端数据缓存块 LRDC ( 509 ) 地址索引 DCindex (508) 信息, 在远端数据缓存目录 RDIR (507) 和地址索引 RDCindex (508) 均 未命中情况下根代理 HP (506)根据访信息将向远端节点缓存代理 CP (510)转发访存请求;
3 ) 节点 NC1 (504) 控制器的远端内存代理 RP (505 ) 的 cache缓存代理 CP (510) 接 收到访存请求, 在 cache缓存代理 CP (510) 内部保存该访存请求的类型、 访存地址等信息, 并维护读写请求在处理过程中的状态,根据请求地址向本地节点 NC2 (524)内根处理器 CPU2
(537) 发出访存请求信息;
4) 域间互连网络将节点 NC1 (504) 控制器发出的请求消息发送到目的节点 NC2 (524) 控制器, 节点 NC2 (524)控制器处本地内存代理 LP (531 ) 的根代理 HP (532)接收访存请 求消息;
5 ) 节点 NC2 (524) 控制器处本地代理 LP (531 ) 的根代理 HP (532) 接收访存请求消 息后,进行相应访存信息保存和更新,如访存类型、访存地址等,通过查询本地代理目录 LDIR
( 534 ) 确认是否对其他节点发出侦听操作, 并通过查询远端节点本地数据缓存地址索引 LDCindex (533 ) 确认是否调用远端节点本地数据缓存块 RLDC (535 ) 等, 在本示例中查询 结果表明无需执行该类操作;
6) 节点 NC2 (524) 控制器内本地内存代理 LP (531 ) 的根代理 HP (532) 转发访存信 息给 cache缓存代理 CP (536), cache缓存代理 CP (536) 保存该访存请求的类型、 访存地 址等信息, 并维护读写请求在处理过程中的状态, 根据请求地址向本地节点 NC2 (524) 内根 处理器 CPU2 (537) 发出访存请求信息;
7) 节点 NC2 (524) 内的根处理器 CPU2 (537) 保存该访存请求的类型、 访存地址等 信息, 并维护读写请求在处理过程中的状态, 在确认节点内其他处理器无该数据副本后, 向 Mem2 (538) 某地址进行访存操作, 并得到返回信息 (包括返回数据、 一致性状态等);
8)节点 NC2(424) 内根处理器 CPU2 (537)接收到返回信息后,向本地内存代理 LP (531 ) cache缓存代理 CP (536) 发送返回信息, cache缓存代理 CP (536) 接收返回信息后向本地 内存代理 LP (531 ) 的根代理 HP (532) 发送返回信息;
9) 节点 NC2 (524) 控制器中本地内存代理 LP (531 ) 处的根代理 HP (532) 接收到返 回信息后, LDIR (534) 目录更新; 若为独占态、 共享态或转发态并为有效数据, 则将该数 据及一致性信息写入远端节点本地数据缓存块 RLDC (535 ) 数据块中, 并记录或更新远端 节点本地数据缓存地址索引 LDCindex (533 ), 在本示例中将该数据信息写入远端节点本地数 据缓存 RLDC (535 ) 并更新远端节点本地数据缓存地址索引 LDCindex (533 ); 10) 域间互连网络将返回信息由节点 NC2 (524) 控制器的根代理 HP (532) 返回到节 点 NC1 (504)控制器的 cache 缓存代理 CP (510), cache缓存代理 CP (536)接收返回信息 和一致性, 并向根代理 HP (506) 转发;
11 )节点 NC1控制器内远端内存代理 RP (505 ) 中根代理 HP (506)接收到返回数据和 一致性后, 若为为独占态、 共享态或转发态并为有效数据, 可以将该数据写入远端数据缓存 DC (509) 并更新远端数据缓存地址索引 RDCindex (508), 同时由根代理 HP (506) 发送 返回信息到请求处理器 CPU1 (503 );在本示例中将该数据信息写入远端数据缓存 RDC (509) 并更新远端数据缓存地址索引 RDCindex (508)。
请参照图 7所示, 处理器 CPU2 (617) 位于节点 NC1 (604) 控制器所在节点, 根内存 Mem2 (638)模块位于节点 NC2 (624)控制器所在节点的处理器 CPU2 (637)处, 节点 NC1 (604) 内处理器 CPU2 (617) 对节点 NC2 (624) 根内存 Mem2 (638) 访存操作过程如下:
1 ) 处理器 CPU2 (617) 向节点 NC2 (624) 处内存地址 Mem2 (638) 处发起访存请求, 在 CPU2 (617) 处 cache未命中情况下根据访存地址信息, 发送访存请求给节点 NC1 (604) 处的远端内存代理 RP (606);
2) 节点 NC1 (604) 控制器远端内存代理 RP (606) 保存访存信息, 如访存类型、 访存 地址等, 查询远端内存代理目录 RDIR (607), 发现本节点内处理器 CPU1 ( 603 ) 有该数据 副本, 故远端内存代理 RP (606) 向本地处理器 CPU1 (603 ) 进行侦听消息;
3 ) 处理器 CPU1 (603 ) 收到根代理 HP (606) 发送的侦听消息后, 进行相应一致性状 态维护后, 返回侦听响应给根代理 HP (606);
4)根代理 HP (606)根据处理器 CPU1 (603 )返回的侦听响应, 发现处理器 CPU1 (603 ) 已无该数据副本(cache自动更替)或该数据副本一致性权限降级(如从独占态降级为共享态) 导致该数据副本不可用;
5 ) 根代理 HP (606) 查询本地节点远端数据缓存地址索引 RDCindex (608), 发现地址 索引 RDCindex (608)命中,故远端内存代理 RP (606)向本地节点远端数据缓存 LRDC (609) 发起访存操作;
6) 本地节点远端数据缓存 LRDC (609) 收到根代理 HP (606) 发送的访存操作后, 返 回该数据信息 (包含一致性状态和数据) 给根代理 HP (606);
7) 根代理 HP (606) 发现本地节点远端数据缓存 LRDC (609) 返回的数据信息副本可 用而且一致性权限满足需求, 则向处理器 CPU2 (617) 返回从本地节点远端数据缓存 LRDC
(609) 得到的数据信息并同时更新远端内存代理目录 RDIR (607), 而不需要将访问请求发 往节点 NC2 (624) 内根处理器 CPU2 (637)。
请参照图 8所示, 处理器 CPU1 (703 ) 位于节点 NC1 (704) 控制器所在节点, 根内存 Mem2 (738)模块位于节点 NC2 (724)控制器所在节点的处理器 CPU2 (737)处, 节点 NC1 (704) 内处理器 CPU1 (703 ) 对节点 NC2 (724) 根内存 Mem2 (738) 访存操作过程如下:
1 ) 处理器 CPU1 (703 ) 向节点 NC2 (724) 处内存地址 Mem2 (738) 处发起访存请求, 在处理器 CPU1 (703 ) 处 cache未命中情况下根据访存地址信息, 发送访存请求给节点 NC1
(704) 处的远端内存代理 RP (706);
2) 节点 NC1 (704) 控制器远端内存代理 RP (706) 保存访存信息, 如访存类型、 访存 地址等, 查询远端内存代理目录 RDIR (707), 发现本节点内处理器 CPU2 ( 717) 有该数据 副本, 故远端内存代理 RP (706) 向本地处理器 CPU2 (717) 进行侦听消息;
3 ) 处理器 CPU2 (717) 收到根代理 HP (706) 发送的侦听消息后, 进行相应一致性状 态维护后, 返回侦听响应给根代理 HP (706);
4)根代理 HP (706)收到处理器 CPU2 (717)返回的一致性响应信息,发现处理器 CPU2 (717) 已无该数据副本 (cache 自动更替) 或该数据副本一致性权限降级 (如从独占态降级 为共享态) 导致该数据副本不可用;
5 ) 根代理 HP (706) 查询本地远端数据缓存地址索引 RDCindex (708), 发现地址索引 DCindex ( 708 ) 未命中, 则在保存访存信息、 维护一致性状态后, 转发访存请求给 cache 缓存代理 CP (710);
6) 域间互连网络 (720) 将节点 NC1 (704) 控制器远端内存代理 RP (705 ) cache缓存 代理 CP (710)发出的访存请求消息转发给节点 NC2 (724)控制器的本地内存代理 LP (731 ) 的根代理 HP (732);
7) 节点 NC2 (724) 控制器本地内存代理 LP (731 ) 的根代理 HP (732) 接收访存信息 后保存访存信息 (访存类型、 访存地址等)、 维护一致性状态, 并查询节点 NC2 (724) 控制 器的本地节点远端数据缓存地址索引 LDCindex (733 ), 发现命中则对远端节点本地数据缓存 块 RLDC (735 ) 发起访存操作;
8) 根代理 HP (732) 接收到远端节点本地数据缓存块 RLDC (735 ) 返回的数据信息、 一致性状态后, 发现其数据信息副本可用而且一致性权限满足需求, 则将该数据信息通过域 间互连网络(720)发给节点 NC1控制器的远端内存代理 RP(705 )的 cache缓存代理 CP(710);
9) Cache缓存代理 CP(710)接收到返回数据及一致性状态信息后,发给根代理 HP(706)。 根代理 HP (706)根据该返回数据和一致性信息, 更新相应的远端内存代理目录 RDIR (707) 目录,将该数据信息写入本地节点远端数据缓存 LRDC (709) 并更新本地节点远端数据缓存 地址索引 RDCindex (708), 然后将返回数据信息发给访存请求者 CPU1 (703 )。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精神和原 则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。

Claims

权利要求书
1. 一种基于有限数据一致性状态的服务器节点数据缓存方法, 包括如下步骤:
1 )发出访存信息, 判断访存地址索引匹配是否正确, 且数据一致性权限是否满足访问要 求;
2) 根据步骤 1 ) 的判断结果, 从被请求方的节点控制器远端数据缓存或节点控制器本地 数据缓存读出一致性独占态、 共享态、 转发态的远端数据或本地数据;
3 )仅将一致性独占态、 共享态、转发态的远端数据或本地数据写入请求方的节点控制器 远端数据缓存或本地数据缓存。
2. 如权利要求 1所述基于有限数据一致性状态的服务器节点数据缓存方法, 其特征在 于: 所述的节点控制器不但可以同时挂接远端数据缓存和本地数据缓存, 而且也可以单独挂 接远端数据缓存或本地数据缓存。
3. 如权利要求 2所述基于有限数据一致性状态的服务器节点数据缓存方法, 其特征在 于: 远端数据缓存或本地数据缓存不能写入修改态的数据, 而且其中数据项生命周期结束后, 新数据项可以直接覆盖替换而不影响服务器系统全局一致性。
4. 如权利要求 3所述基于有限数据一致性状态的服务器节点数据缓存方法, 其特征在 于: 所有节点控制器远端数据缓存组成的集合是所有节点控制器本地数据缓存集合的一个真 子集, 或者与其等价。
5. 如权利要求 3所述基于有限数据一致性状态的服务器节点数据缓存方法, 其特征在 于: 各级节点控制器远端数据缓存和本地数据缓存均具有地址索引信息, 并且各级节点数据 缓存地址索引信息和节点目录信息组织均采用分立模式。
6. 如权利要求 5所述基于有限数据一致性状态的服务器节点数据缓存方法, 其特征在 于:在访存过程中,可以把本地节点远端数据缓存与远端节点本地数据缓存视为降级的 cache, 从而组成两级 cache对。
PCT/CN2013/085023 2013-03-22 2013-10-11 一种基于有限数据一致性状态的服务器节点数据缓存方法 WO2014146424A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310092990.1 2013-03-22
CN201310092990.1A CN103294611B (zh) 2013-03-22 2013-03-22 一种基于有限数据一致性状态的服务器节点数据缓存方法

Publications (1)

Publication Number Publication Date
WO2014146424A1 true WO2014146424A1 (zh) 2014-09-25

Family

ID=49095524

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/085023 WO2014146424A1 (zh) 2013-03-22 2013-10-11 一种基于有限数据一致性状态的服务器节点数据缓存方法

Country Status (2)

Country Link
CN (1) CN103294611B (zh)
WO (1) WO2014146424A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294611B (zh) * 2013-03-22 2015-06-17 浪潮电子信息产业股份有限公司 一种基于有限数据一致性状态的服务器节点数据缓存方法
CN103488505B (zh) * 2013-09-16 2016-03-30 杭州华为数字技术有限公司 补丁方法、设备及系统
CN104199740B (zh) * 2014-08-28 2019-03-01 浪潮(北京)电子信息产业有限公司 共享系统地址空间的非紧耦合多节点多处理器系统和方法
CN105068786B (zh) * 2015-07-30 2018-03-23 浪潮(北京)电子信息产业有限公司 一种处理访存请求的方法和节点控制器
CN105045729B (zh) * 2015-09-08 2018-11-23 浪潮(北京)电子信息产业有限公司 一种远端代理带目录的缓存一致性处理方法与系统
CN107315694B (zh) 2016-04-22 2020-12-15 华为技术有限公司 一种缓存一致性管理方法及节点控制器
CN109597776B (zh) * 2017-09-30 2020-12-08 华为技术有限公司 一种数据操作方法、内存控制器以及多处理器系统
CN111343209B (zh) * 2020-05-21 2020-08-25 浙江双视红外科技股份有限公司 一种具有温度信息的图片处理方法
CN112612727B (zh) * 2020-12-08 2023-07-07 成都海光微电子技术有限公司 一种高速缓存行替换方法、装置及电子设备
CN115514772B (zh) * 2022-11-15 2023-03-10 山东云海国创云计算装备产业创新中心有限公司 一种实现缓存一致性的方法、装置、设备及可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111563A1 (en) * 2002-12-10 2004-06-10 Edirisooriya Samantha J. Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
CN1869955A (zh) * 2005-05-24 2006-11-29 国际商业机器公司 数据处理系统中的数据处理的方法和装置
CN101183338A (zh) * 2006-09-29 2008-05-21 美国博通公司 本地片载系统和在本地片载系统中维持存储一致性的方法
CN103294611A (zh) * 2013-03-22 2013-09-11 浪潮电子信息产业股份有限公司 一种基于有限数据一致性状态的服务器节点数据缓存方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150664A1 (en) * 2005-12-28 2007-06-28 Chris Dombrowski System and method for default data forwarding coherent caching agent
CN102591800B (zh) * 2011-12-31 2015-01-07 龙芯中科技术有限公司 一种弱一致性存储模型的数据访存系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111563A1 (en) * 2002-12-10 2004-06-10 Edirisooriya Samantha J. Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
CN1869955A (zh) * 2005-05-24 2006-11-29 国际商业机器公司 数据处理系统中的数据处理的方法和装置
CN101183338A (zh) * 2006-09-29 2008-05-21 美国博通公司 本地片载系统和在本地片载系统中维持存储一致性的方法
CN103294611A (zh) * 2013-03-22 2013-09-11 浪潮电子信息产业股份有限公司 一种基于有限数据一致性状态的服务器节点数据缓存方法

Also Published As

Publication number Publication date
CN103294611B (zh) 2015-06-17
CN103294611A (zh) 2013-09-11

Similar Documents

Publication Publication Date Title
WO2014146424A1 (zh) 一种基于有限数据一致性状态的服务器节点数据缓存方法
US10891228B2 (en) Cache line states identifying memory cache
US9665486B2 (en) Hierarchical cache structure and handling thereof
JP5833282B2 (ja) 多階層キャッシュコヒーレンシドメインシステムおよび多階層キャッシュコヒーレンシドメインシステムのローカルドメインにおけるShare−F状態の構成方法
JP4848771B2 (ja) キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム
US6631448B2 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US9081706B2 (en) Using a shared last-level TLB to reduce address-translation latency
US9003163B2 (en) Combining a remote TLB lookup and a subsequent cache miss into a single coherence operation
US9563568B2 (en) Hierarchical cache structure and handling thereof
WO2014094374A1 (zh) 一种节点具有多个cache一致性域的多处理器系统构建方法
TWI386810B (zh) 多處理器系統以目錄為主之資料傳輸協定
JPWO2010100679A1 (ja) コンピュータシステム、制御方法、記録媒体及び制御プログラム
US20040088495A1 (en) Cache coherence directory eviction mechanisms in multiprocessor systems
US20140006716A1 (en) Data control using last accessor information
US20060095684A1 (en) Scope-based cache coherence
JP4507563B2 (ja) マルチプロセッサシステム
JP2001282764A (ja) マルチプロセッサシステム
WO2012109906A1 (zh) 访问高速缓冲存储器的方法及非真实缓存代理
EP1652091B1 (en) Methods and apparatus for providing early responses from a remote data cache
WO2004091136A2 (en) Multi-node system in which global address generated by processing subsystem includes global to local translation information
CN116414563A (zh) 内存控制装置、缓存一致性系统和缓存一致性方法
US10489292B2 (en) Ownership tracking updates across multiple simultaneous operations
JP2000267935A (ja) キヤッシュメモリ装置
US11599469B1 (en) System and methods for cache coherent system using ownership-based scheme

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13879035

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 27/11/2015)

122 Ep: pct application non-entry in european phase

Ref document number: 13879035

Country of ref document: EP

Kind code of ref document: A1