Invalidation protection for shared cache lines

By incorporating a state indicator in exclusive retrieval requests, the method addresses unnecessary cache line invalidations, improving processing efficiency and reducing latency in data processing environments.

DE112023005232B4Active Publication Date: 2026-05-07INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2023-11-23
Publication Date
2026-05-07

AI Technical Summary

Technical Problem

Existing data processing environments face inefficiencies in cache management due to unnecessary cache line invalidations during exclusive retrieval requests, leading to increased processing costs and latency.

Method used

A computer program product that includes a state indicator in exclusive retrieval requests, allowing nodes to determine whether the manager node has accepted or rejected the request, thereby reducing unnecessary cache line invalidations by only invalidating copies when necessary.

Benefits of technology

This approach reduces the number of cache line invalidations, saving processing cycles and minimizing system memory access, thus enhancing processing efficiency and speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Computer program product designed to simplify processing within a data processing environment (101), wherein the computer program product features: one or more computer-readable storage media and program instructions stored together on the one or more computer-readable storage media to carry out a procedure comprising: Received (510), by a node (200) of the data processing environment (101), a request for an exclusive fetch of a cache row shared by at least the node (200) and a manager node of the data processing environment (101), wherein the request for an exclusive fetch includes a status indicator regarding the processing of the request for an exclusive fetch by the manager node; and Processing, by the node (200), the request for an exclusive retrieval based on the state indicator contained in the request for an exclusive retrieval with respect to the processing of the request for an exclusive retrieval by the manager node.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] One or more aspects generally relate to simplifying processing within a data processing environment and, in particular, improving caching within the data processing environment.

[0002] To improve main memory access, many data processing environments use a caching system where recently accessed data is stored in caches located closer to the nodes accessing the caches than the system memory. In one example, each node of a plurality of nodes in a data processing environment has a cache, and cache rows can be shared between nodes in that a read-only copy of a cache row can exist in multiple caches on multiple nodes.

[0003] When a node requests a cache row that is present in the cache of at least one other node, a manager node for that cache row is responsible for responding to the request. Requests for the cache row can be read-only, allowing multiple nodes to retrieve the row for reading purposes, or they can be exclusive requests, allowing only one node to retrieve the row for updating purposes.

[0004] An exclusive request for a cache row is considered successful if it is accepted by the manager node and all other non-manager nodes. If a node is actively processing another request for the same cache row or has no resources available to process a request, that node rejects the exclusive request, and the exclusive request must be retried. This process is being improved to enhance overall processing efficiency within the data processing environment.

[0005] US 2016 / 0110287 discloses a conventional method for cache access using a cache coherence state. SUMMARY

[0006] By providing a computer program product designed to simplify processing within a data processing environment, limitations of the prior art are overcome and additional advantages are provided. The computer program product comprises one or more computer-readable storage media and program instructions stored together on these media to execute a procedure. The procedure includes: a request, by a node of the data processing environment, for an exclusive retrieval of a cache row shared by at least the node and a manager node of the data processing environment. The exclusive retrieval request includes a status indicator regarding the manager node's processing of the request.The node processes the request for an exclusive retrieval based on the state indicator contained in the request for an exclusive retrieval regarding the processing of the request for an exclusive retrieval by the manager node.

[0007] By including the state indicator in the exclusive retrieval request, the node can determine how to handle the request. For example, based on the state indicator, the node can accept the request and thus invalidate its copy of the cache line; or, based on the state indicator, the node can reject the request and therefore not invalidate its copy of the cache line. This simplifies processing by performing cache line invalidations only under selected circumstances, such as based on the state indicator, rather than invalidating the cache line on every rebroadcast of the exclusive retrieval request. This reduces the number of cache line invalidations, thereby protecting copies of the cache line.

[0008] In one embodiment, the state indicator includes an acceptance indicator that shows whether the manager node has accepted the request for an exclusive fetch. This simplifies processing by informing the node when the manager node has accepted the request. Therefore, the node can also accept the request for an exclusive fetch and invalidate its copy of the cache line, instead of performing invalidation on each repetition of the exclusive fetch. This saves processing cycles and reduces access to system memory.

[0009] In one embodiment, the state indicator further includes a rejection indicator that shows whether the manager node has rejected the request for an exclusive retrieval. This simplifies processing by informing the node when the manager node has rejected the request for an exclusive retrieval, and therefore the node can also reject the request for an exclusive retrieval and avoid invalidating its copy of the cache line. This simplifies processing by reducing the number of cache line invalidations performed by the node.

[0010] In one embodiment, the state indicator includes a rejection indicator that shows whether the manager node has rejected the request for an exclusive retrieval. This simplifies processing by informing the node when the manager node has rejected the request for an exclusive retrieval, and therefore the node can also reject the request for an exclusive retrieval and avoid invalidating its copy of the cache line. This simplifies processing by reducing the number of cache line invalidations performed by the node.

[0011] In one embodiment, the rejection indicator further displays a reason for rejecting the exclusive retrieval request. This simplifies processing by indicating to the node when the manager node has rejected the exclusive retrieval request for a selected reason, allowing the node to decide whether to reject the exclusive retrieval request and not invalidate its copy of the cache line. This simplifies processing by reducing the number of cache line invalidations performed by the node.

[0012] In one embodiment, the processing includes a determination, based on the rejection indicator, that the manager node has rejected the exclusive retrieval request for a selected reason. Based on this determination, the manager node rejects the exclusive retrieval request. By using the rejection indicator provided with the exclusive retrieval request, the node can determine how to process the request. For example, the node can reject the request based on the rejection indicator and therefore not invalidate its copy of the cache row.This simplifies processing by preventing cache line invalidations under certain circumstances, such as when the manager node rejects a request for an exclusive retrieval for the selected reason. This reduces the number of cache line invalidations, thus protecting copies of the cache line.

[0013] In one embodiment, the processing includes a determination, based on the state indicator, that the manager node has rejected the request for an exclusive retrieval. Based on this determination, the node rejects the request. By using the state indicator provided with the request for an exclusive retrieval, the node can determine how to process the request. For example, the node can reject the request based on the state indicator showing that the manager node has rejected it, and therefore not invalidate its copy of the cache line.This simplifies processing by preventing cache line invalidations under certain circumstances, such as when the manager node rejects a request for an exclusive retrieval. This reduces the number of cache line invalidations, thus protecting copies of the cache line.

[0014] In a single embodiment, the data processing environment comprises a plurality of nodes to receive the request for an exclusive retrieval. Based on the determination that the manager node has rejected the request, the rejection is performed by the plurality of nodes receiving the request. By using the state indicator provided with the request, the nodes can determine how to process the request. For example, based on the state indicator showing that the manager node has rejected the request, the nodes can reject the request and therefore not invalidate their copies of the cache line.This simplifies processing by preventing the invalidation of cache line copies under certain circumstances, such as when the manager node rejects a request for an exclusive retrieval. This reduces the number of cache line invalidations, thus protecting cache line copies.

[0015] In one embodiment, the processing involves determining, based on the state indicator, that the manager node has accepted the request for an exclusive fetch. Based on this determination, the manager node accepts the request for an exclusive fetch. By using the state indicator to determine that the manager node has accepted the request for an exclusive fetch, the node can also accept the request for an exclusive fetch and invalidate its copy of the cache line, instead of performing invalidation on each repetition of the exclusive fetch. This saves processing cycles and reduces access to system memory.

[0016] In a single embodiment, the data processing environment comprises multiple levels of manager nodes, and the state indicator on which the processing is based is the state indicator of a selected manager node at a selected level of the multiple levels. By including the appropriate state indicator in the request for an exclusive fetch, the node can determine how the request should be processed. For example, based on the state indicator, the node can accept the request and thus invalidate its copy of the cache line; or the node can reject the request based on the state indicator and therefore not invalidate its copy of the cache line.This simplifies processing by performing cache line invalidations only under selected circumstances, such as based on the status indicator, instead of invalidating the request for an exclusive retrieval every time it is rebroadcast. This reduces the number of cache line invalidations required, thus protecting copies of the cache line.

[0017] Computer-executed methods and systems relating to one or more aspects are also described and claimed herein. Furthermore, services relating to one or more aspects are also described and, where applicable, claimed herein.

[0018] Additional features and advantages are achieved through the techniques described herein. Further embodiments and aspects are described in detail herein and are considered part of the claimed aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] One or more aspects are specifically highlighted in the claims at the end of the specification and explicitly claimed as examples. The foregoing, as well as the tasks, features, and advantages of one or more aspects, will become apparent from the following detailed description in conjunction with the accompanying drawings, which: Fig. 1 represents an example of a data processing environment to incorporate and use one or more aspects of the present invention; Fig. 2. An example of further details of a processor set from Fig. 1 according to one or more aspects of the present invention; Fig. 3. An example of submodules of a protection module for shared cache rows from Fig. 1 according to one or more aspects of the present invention; Fig. 4 represents an example of broadcast processing according to one or more aspects of the present invention; Fig. 5 represents an example of processing by a non-intervention manager node according to one or more aspects of the present invention; Fig. 6 represents another example of processing by a non-intervention manager node according to one or more aspects of the present invention; the Fig. Figures 7A to 7F illustrate an example of the protection of shared cache lines according to one or more aspects of the present invention; and Fig. Figure 8 illustrates another example of the protection of shared cache lines according to one or more aspects of the present invention. DETAILED DESCRIPTION

[0020] According to one or more aspects of the present invention, a method is provided to simplify processing within a data processing environment. In one or more aspects, this method includes improving the use of caches and, in particular, the processing of requests for exclusive retrieval of cached rows within the caches. In one or more aspects, this method includes protecting shared cached rows from unnecessary invalidation based on rejected requests for exclusive retrieval.

[0021] One or more aspects of the present invention are integrated into, performed by, and / or used by a data processing environment. For example, the data processing environment can be of different architectures and types, including, but not limited to: individual data processing, client-server, distributed, virtual, emulated, partitioned, non-partitioned, cloud-based, quantum, grid, time-sharing, cluster, peer-to-peer, body-worn, mobile, having one or more nodes, having one or more processors, and / or it can be of any other type of environment and / or configuration, etc., capable of executing a process (or multiple processes), which, for example,The invention processes requirements for exclusive retrieval of shared cache lines, thereby reducing unnecessary invalidations of cache line copies, and / or performs one or more other aspects of the present invention. Aspects of the present invention are not limited to a particular architecture or environment.

[0022] Various aspects of the present disclosure are described by descriptive text, flowcharts, block diagrams of computer systems, and / or block diagrams of the machine logic contained in computer program product (CPP) execution forms. With respect to all flowcharts, the operations may be performed in a different order than that shown in a particular flowchart, depending on the technology used. For example, again depending on the technology used, two operations shown in successive blocks of flowcharts may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that overlaps at least partially in time.

[0023] A computer program product execution form (“CPP execution form” or “CPP”) is a term used in the present disclosure to describe any set of one or more storage media (also referred to as “media”) that are collectively contained in a set of one or more storage units, which collectively contain machine-readable code corresponding to instructions and / or data for performing computer operations specified in a particular CPP claim. A “storage unit” is any tangible unit capable of retaining and storing instructions for use by a computer processor.Without being limited to this, the storage medium readable by a computer can be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage units containing these media include: floppy disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact storage disk read-only memory (CD-ROM), DVD (digital versatile disc), USB flash drive, floppy disk, a mechanically coded unit (such as punched cards or indentations / protrusions formed in a large surface of a disk), or any suitable combination of the foregoing.A computer-readable storage medium, as used in the present disclosure, is not to be understood as a storage medium in the form of volatile signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses traveling through an optical waveguide, electrical signals transmitted through a wire, and / or other transmission media. As the person skilled in the art understands, data is usually moved from time to time during normal operations of a storage unit, such as during access, defragmentation, or garbage collection, but this does not make the storage unit volatile, since the data is not volatile while it is stored.

[0024] An example of a data processing environment for performing, incorporating and / or using one or more aspects of the present invention is provided with reference to Fig. 1 described. In one example, a data processing environment 100 includes an example of an environment for executing at least a part of the computer code involved in carrying out the methods according to the invention, such as a protection code or protection module 150 for shared cache lines. In addition to the block 150, the data processing environment 100 includes, for example, a computer 101, a wide area network (WAN) 102, an end-user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106.In this embodiment, the computer 101 comprises a processor set 110 (including processing circuits 120 and a cache 121), a transmission structure 111, volatile memory 112, persistent memory 113 (including an operating system 122 and the block 150 as specified above), a peripheral unit set 114 (including a user interface (UI) unit set 123, a memory 124, and an Internet of Things (IoT) sensor set 125), and a network module 115. The remote server 104 comprises a remote database 130. The public cloud 105 comprises a gateway 140, a cloud orchestration module 141, a set 142 of physical machines of a host, a set 143 of virtual machines, and a container set 144.

[0025] Computer 101 can take the form of a desktop computer, a laptop computer, a tablet computer, a smartphone, a smartwatch, or any other computer attached to a user's body, a mainframe computer, a quantum computer, or any other form of computer or mobile unit, now known or yet to be developed, capable of executing a program, accessing a network, or querying a database, such as the remote database 130. As is generally known in computer technology, and depending on the technology, the execution of a procedure performed by a computer can be distributed among multiple computers and / or across multiple locations. However, in this description of the Data Processing Environment 100, the detailed explanation focuses on a single computer, specifically Computer 101, to keep the presentation as simple as possible.Computer 101 can be located in a cloud, even though it is in . Fig. 1 is not shown in a cloud. On the other hand, it is not necessary for computer 101 to be located in a cloud, except to the extent that may be expressly specified.

[0026] The processor set 110 comprises one or more computer processors of any type currently known or yet to be developed. The processing circuits 120 can be distributed across multiple packages, for example, across multiple coordinated IC chips. The processing circuits 120 can execute multiple processor threads and / or multiple processor cores. The cache 121 is main memory located within the processor chip package(s) and is typically used for data or code that should be readily available for fast access by the threads or cores executing on the processor set 110. Caches are usually organized into multiple levels, depending on their relative proximity to the processing circuits. Alternatively, part or all of the cache for the processor set may reside off-chip.In some data processing environments, the 110 processor set can be designed to work with qubits and perform quantum computing.

[0027] Computer-readable program instructions are typically loaded onto the computer 101 to cause a series of process steps to be performed by the processor set 110 of the computer 101, thereby effecting a computer-executed procedure. The instructions executed in this way instantiate the procedures specified in flowcharts and / or narrative descriptions of computer-executed procedures contained in this document (collectively referred to as "the inventive procedures"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as the cache 121 and the other storage media described below.The program instructions and associated data are accessed by the processor set 110 to control and direct the execution of the methods according to the invention. In the data processing environment 100, at least some of the instructions for carrying out the methods according to the invention can be stored in the persistent memory 113 in block 150.

[0028] The transmission structure 111 refers to the signal transmission paths that allow the various components of the computer 101 to exchange data with each other. This structure typically consists of switches and electrically conductive paths, such as those forming buses, bridges, physical input / output ports, and the like. Other types of signal transmission paths may be used, such as fiber optic transmission paths and / or wireless transmission paths.

[0029] The volatile memory 112 refers to any type of volatile memory currently known or yet to be developed. Examples include dynamic random access memory (RAM) and static RAM. Voidal memory is usually characterized by random access, but this is only necessary if explicitly stated. In computer 101, the volatile memory 112 is contained in a single package and is located within computer 101. However, the volatile memory may alternatively or additionally be distributed across multiple packages and / or be located outside of computer 101.

[0030] Persistent memory 113 is any form of non-volatile memory for computers, whether known now or yet to be developed. The non-volatile nature of this memory means that the stored data is retained regardless of whether the computer 101 is powered on and / or whether the persistent memory 113 is directly powered. Persistent memory 113 can be read-only memory (ROM), but usually at least a portion of persistent memory allows data to be written, erased, and rewritten. Some known forms of persistent memory include magnetic disks and semiconductor memory units. The operating system 122 can take several forms, such as various well-known proprietary operating systems or open-source Portable Operating System Interface (PSI) operating systems that utilize a kernel.The code contained in block 150 typically comprises at least a part of the computer code involved in carrying out the methods according to the invention.

[0031] The peripheral set 114 comprises the set of peripherals of the computer 101. Data transmission connections between the peripherals and the other components of the computer 101 can be implemented in various ways, such as Bluetooth connections, near-field communication (NFC) connections, wired connections (such as Universal Serial Bus (USB) cables), plug-in connections (for example, Secure Digital (SD) cards), connections made through local area networks, and even connections made through wide area networks such as the internet. In various embodiments, the UL set 123 can include components such as a screen, a speaker, a microphone, wearables (such as glasses and smartwatches), a keyboard, a mouse, a printer, a touchpad, game controllers, and haptic units.Memory 124 is an external storage device, such as an external hard disk drive, or a pluggable storage device, such as an SD card. Memory 124 can be persistent and / or volatile. In some embodiments, Memory 124 can take the form of a quantum computing storage unit to store data in the form of qubits. In embodiments where Computer 101 requires a large storage capacity (for example, where Computer 101 stores and manages a large database locally), this storage can be provided by peripheral storage units designed to store very large amounts of data, such as a Storage Area Network (SAN) shared by multiple geographically distributed computers. The IoT Sensor Set 125 consists of sensors that can be used in Internet of Things applications.For example, one sensor could be a thermometer and another sensor a motion detector.

[0032] The network module 115 is the assembly of computer software, hardware, and firmware that enables the computer 101 to exchange data with other computers via the WAN 102. The network module 115 may include hardware such as modems or Wi-Fi signal transceivers, software to packetize and / or depacket data for transmission over the transmission network, and / or web browser software to transmit data over the internet. In some embodiments, the network control and network forwarding functions of the network module 115 are performed on the same physical hardware unit. In other embodiments (for example, embodiments that utilize software-defined networking (SDN)), the control and forwarding functions of the network module 115 are performed on physically separate units, so that the control functions manage multiple different network hardware units.Computer-readable program instructions for carrying out the methods according to the invention can typically be downloaded from an external computer or an external storage unit to the computer 101 via a network adapter card or a network interface contained in the network module 115.

[0033] The WAN 102 is any wide area network (for example, the Internet) capable of transmitting computer data over non-local distances using any computer data transmission technology now known or yet to be developed. In some embodiments, the WAN 102 can be replaced and / or supplemented by local area networks (LANs), designed for transmitting data between units located within a local network, such as a Wi-Fi network. The WAN and / or LANs typically include computer hardware such as copper transmission cables, fiber optic transmission lines, wireless transmission equipment, routers, firewalls, switches, gateway computers, and edge servers.

[0034] The End-User Unit (EUD) 103 is any computer system used and controlled by an end user (for example, a customer of a company operating the computer 101), and it can take any of the forms described above in connection with the computer 101. The EUD 103 typically receives helpful and useful data from the operations of the computer 101. For example, in a hypothetical case where the computer 101 is configured to provide a recommendation to an end user, this recommendation would typically be transmitted from the network module 115 of the computer 101 through the WAN 102 to the EUD 103. In this way, the EUD 103 can display or otherwise present the recommendation to an end user. In some embodiments, the EUD 103 can be a client unit, such as a thin client, a heavy client, a mainframe computer, a desktop computer, and so on.

[0035] Remote Server 104 is any computer system that provides at least some data and / or functionality to Computer 101. Remote Server 104 can be controlled and used by the same entity that operates Computer 101. Remote Server 104 represents the machine(s) that collect and store helpful and useful data for use by other computers, such as Computer 101. For example, in a hypothetical case where Computer 101 is designed and programmed to provide a recommendation based on long-term data, this long-term data can be provided to Computer 101 from Remote Server 104's remote database 130.

[0036] The public cloud 105 is any computer system available for use by multiple entities, providing on-demand availability of computer system resources and / or other computer functions, particularly data storage (cloud storage) and computing power, without direct active management by the user. Cloud computing typically employs resource sharing effectively to achieve coherence and economies of scale. The direct and active management of the public cloud 105's data processing resources is performed by the computer hardware and / or software of the cloud orchestration module 141.The computing resources provided by Public Cloud 105 are typically run through virtual computing environments (VCEs) on various computers that comprise the set of physical machines (142) of the host that represents the entirety of the physical computers in Public Cloud 105 and / or is available to Public Cloud 105. The virtual computing environments (VCEs) typically take the form of virtual machines from set 143 of virtual machines and / or containers from container set 144. It should be noted that these VCEs are stored as images and can be transferred among and between the various hosts of the physical machines, either as images or after VCE instantiation.The cloud orchestration module 141 manages the transfer and storage of images, deploys new VCE instantiations, and manages active VCE deployment instantiations. The gateway 140 is the assembly of computer software, hardware, and firmware that enables the public cloud 105 to exchange data through the WAN 102.

[0037] Virtualized computing environments (VCEs) will now be explained in more detail. VCEs can be stored as "images." A new active instance of the VCE can be instantiated from the image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that utilizes operating system-level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple isolated user-space instances, which are called containers. From the perspective of programs running within them, these isolated user-space instances typically behave like real computers. A computer program running on a conventional operating system can utilize all of that computer's resources, such as connected devices, files and folders, shared network space, CPU power, and quantifiable hardware capabilities.However, programs running in a container can only use the contents of the container and the units assigned to the container, a feature known as containerization.

[0038] The private cloud (106) is similar to the public cloud (105), except that the data processing resources are available for use by a single organization. While the private cloud (106) is depicted as connected to the WAN (102), in other configurations, a private cloud can be completely isolated from the internet and accessible only through a local / private network. A hybrid cloud is a combination of several clouds of different types (for example, private, community, or public), often operated by different providers. Each of the multiple clouds remains a separate and discrete entity; however, the architecture of the larger hybrid cloud is held together by standardized or proprietary technology that enables orchestration, management, and / or portability of data / applications between the multiple sub-clouds.In this embodiment, the public cloud 105 and the private cloud 106 are both part of a larger hybrid cloud.

[0039] The data processing environment described above is merely one example of a data processing environment for incorporating, implementing, and / or using one or more aspects of the present invention. Other examples are possible. For instance, in one or more embodiments, one or more of the components / modules of Fig. 1. Not included in the data processing environment and / or not used for one or more aspects of the present invention. Furthermore, additional and / or other components / modules may be used in one or more embodiments. Other variants are possible.

[0040] Further details of an example of a processor set (e.g., processor set 110) can be found with reference to Fig. 2 described. In one example, a processor set (e.g., processor set 110) comprises a plurality of nodes 200, where each node is, for example, a core or central processing unit of a processor in the processor set (e.g., processor set 110). Each node is, in one example, connected to a cache, such as cache 210, which is used to store data accessed by the node. Each cache can, for example, be part of cache 121 of Fig. It should be 1. In one example, the caches can be interconnected.

[0041] In one example, a cache (e.g., cache 210) comprises a plurality of cache lines (e.g., cache lines 220), where a cache line is a unit of data transferred between the cache and main memory (e.g., volatile memory 112; persistent memory 113; etc.). A cache line (e.g., cache line 220) typically has a fixed size and can range from, for example, 16 to 256 bytes. Although a size range is given as an example, a cache line can have more and / or fewer bytes than the examples given here. A cache line can also have a variable size in another example. Many variations are possible.

[0042] A cache line, such as cache line 220, can be shared in that a read-only copy of the cache line can be retrieved from main memory (e.g., volatile memory 112; persistent memory 113, etc.) and stored in multiple caches (e.g., caches 210) of multiple nodes (e.g., node 200). When a cache line needs to be updated, an exclusive request is made, in which one node of the multiple nodes is granted permission to modify the cache line in one of the caches. The corresponding cache lines in the other caches are invalidated. This provides data privacy, ensuring that the latest copy of the data is used by the nodes sharing the cache line.

[0043] In an example, for a specific request to a cache row, one of the multiple nodes is a requesting node (e.g., a read-only fetch node, a node for an exclusive fetch) that requests access to the cache row (e.g., read-only, exclusive); one of the nodes is a manager node (which may also be referred to herein as an intervention manager node, intervention manager, or manager) that is responsible for responding to the request; and one or more of the nodes are non-manager nodes (which may also be referred to herein as non-intervention manager nodes, non-intervention managers, or non-managers). The responsibility or status of a particular node changes in an example based on, for example, the processing of the specific cache row request and / or based on other cache row requests.For example, in one example, a requesting node becomes a manager node based on receiving permission to execute the request. Other examples are also possible, including one where the manager node's role does not change based on receiving permission to execute the request. Many examples are possible.

[0044] In one example, based on a node that becomes a manager node, an indicator is placed, for example, in a cache directory, such as in a cache directory entry that corresponds to the cache line, or in another storage location, indicating that the node is the current manager node.

[0045] For example, if a specific cache row request is an exclusive fetch request, the exclusive fetch must be accepted by both the manager node and the non-manager nodes for the exclusive fetch to succeed. Based on a node, such as a non-manager node, accepting the request, the non-manager node invalidates its copy of the specific cache row. If a node is actively making another fetch of the same cache row or no longer has resources available to serve a fetch, that node rejects the exclusive fetch request. For example, if the manager node rejects or does not accept the exclusive fetch request, the exclusive fetch will fail, potentially leading to unnecessary invalidations by the other nodes.For example, an exclusive request for a cache row that encounters a conflict might cause non-manager nodes to invalidate their copies of the cache row without the manager node accepting the exclusive request. The non-manager nodes still want their read-only copies and therefore request the cache row again, further exacerbating the conflict. This exacerbated conflict makes it less likely that the exclusive request will succeed on subsequent attempts. Therefore, one or more unnecessary invalidations might occur before the successful request for an exclusive retrieve. These invalidations are considered unnecessary because the request for an exclusive retrieve was either not approved or failed, and thus the corresponding cache rows did not need to be invalidated.

[0046] To reduce unnecessary invalidations of cache lines in non-manager nodes, according to one aspect of the present invention, a invalidation of the cache lines is performed based on a specific event, such as the acceptance of an exclusive retrieval request by a manager node. One or more invalidations are avoided until the exclusive retrieval is assumed to be successful. Therefore, as many copies of the disputed cache line as possible are retained if the manager node has already rejected the exclusive retrieval request. For example, non-manager nodes reject the exclusive retrieval request that was rejected by the manager node until the manager node accepts the exclusive retrieval request.This reduces the processing costs and latency of a memory access and increases the processing speed.

[0047] To protect shared cache lines from one or more unnecessary invalidations, a shared cache line protection module (e.g., shared cache line protection module 150) is used according to one or more aspects of the present invention. A shared cache line protection module (e.g., shared cache line protection module 150) comprises code or instructions used to perform processing for the protection of shared cache lines according to one or more aspects of the present invention. In one example, a shared cache line protection module (e.g., shared cache line protection module 150) comprises various submodules used to perform the processing. These submodules are, for example, computer-readable program code (e.g., instructions) on computer-readable data carriers, e.g.,Memory (memory 124, persistent memory 113, cache 121, other memory, for example). Computer-readable data carriers can be part of a computer program product and can be executed by one or more computers and / or by using one or more computers, such as computer(s) 101; one or more servers, such as remote server(s) 104; one or more processors or nodes, such as processor(s) or node(s) of processor set 110; and / or processing circuits, such as the processing circuits 120 of processor set 110, etc. Additional and / or other computers, servers, processors, nodes, and / or processing circuits can be used to execute one or more of the submodules and / or parts thereof. Many examples are possible.

[0048] An example of the protection module 150 for shared cache lines is given with reference to Fig. 3 described. In one example, the shared cache row protection module 150 comprises a broadcast submodule 300, which is used when broadcasting a request for an exclusive retrieval to a plurality of nodes; a processing submodule 310 of a non-intervention manager node (also referred to herein as a non-manager node), which is used when processing a request for an exclusive retrieval; and an extended processing submodule 320 of a non-intervention manager node, which is used in further processing of a request for an exclusive retrieval. Additional, fewer, and / or other submodules may be provided and / or used in one or more aspects of the present invention.

[0049] In one example, the protection module 150 for shared cache rows includes one or more submodules (e.g., submodules 300 to 320) that are used in processing to protect shared cache rows, as described in the Fig. Sections 4 to 6 are described in more detail. An example illustrates this. Fig. 4 represents an example of a broadcast process of a request for an exclusive retrieval according to one or more aspects of the present invention; Fig. Figure 5 presents an example of a non-managerial process for processing the broadcast request for an exclusive retrieval according to one or more aspects of the present invention; and Fig. Figure 6 presents another example of a non-managerial process for processing the broadcast request for an exclusive call according to one or more aspects of the present invention. In the one or more examples referred to in the Fig. 4 to 6 (and the Fig. As described in sections 7A to 7F and 8), the manager node is referred to as the intervention manager node and the non-manager nodes as non-intervention manager nodes. However, other exemplary manager / non-manager nodes may be used.

[0050] Each process is executed in one or more examples by one or more computers (e.g., Computer 101, other computers, etc.), servers (e.g., remote Server 104, other servers), nodes, processors, and / or processing circuits (e.g., Processor Set 110 or other processor sets), etc. Although example computers, servers, nodes, processors, and / or processing circuits are provided, additional, fewer, and / or different computers, servers, nodes, processors, and / or processing circuits can be used for processing to protect shared cache lines and / or each of the processes. Various options are possible.

[0051] First, with reference to Fig. 4. The processing for protecting shared cache rows comprises, in an example, a broadcast process 400, in which a request for an exclusive retrieval of a cache row from a node (e.g., a requesting node, referred to herein as the FEx (Fetch-Exclusive) node) is broadcast to a plurality of nodes that share the cache row 410. According to one aspect of the present invention, the request for an exclusive retrieval includes a status indicator that shows whether a manager node has accepted or rejected the request for an exclusive retrieval from the plurality of nodes that share the cache row.In this particular example, the state indicator includes a manager rejection indicator (also referred to herein as the intervention manager (IM) rejection (REJ) indicator) and a manager acceptance indicator (also referred to herein as the intervention manager (IM) acceptance indicator), each set to an initial value (e.g., 0). However, other examples may include additional, fewer, and / or different indicators and / or state indicators that show whether the manager node (e.g., the intervention manager node) has accepted or rejected the request. Furthermore, one or more indicators may be used to provide additional acceptance or rejection information and / or other information. Many variations are possible.

[0052] In one example, process 400 determines, based on the broadcast transmission, whether the intervention manager node accepts the exclusive request. For instance, the intervention manager node accepts the request if it is not already busy with another request for the cache line. If it is busy with another request for the cache line, it rejects the request. The acceptance / rejection status is received by the process (e.g., via a signal, indicator, condition code, return code, etc.).

[0053] When process 400 determines that the intervention manager node has rejected the request, at least one status indicator is set. For example, process 400 sets the intervention manager rejection indicator to a selected value, such as 1, indicating that the request was rejected by the intervention manager node, and the intervention manager acceptance indicator remains at or is reset to a selected value, such as 0, indicating that the exclusive request was not accepted by the intervention manager node. The exclusive request is then rebroadcast to the nodes, including the intervention manager node with the updated indicators, and processing continues at query 420.

[0054] At query 420, when process 400 determines that the request for an exclusive retrieval has been accepted by the intervention manager node, process 400 then determines, 440, whether a non-intervention manager node has rejected the request for an exclusive retrieval. If process 400 determines that a non-intervention manager node has rejected the request for an exclusive retrieval, the exclusive retrieval is rebroadcast, 450, with at least one indicator (e.g., intervention manager acceptance) set to a selected value, e.g., 1, and processing continues at query 440. If process 400 determines, 440, that the exclusive retrieval is not rejected by a non-intervention manager node, the broadcast processing is complete, 460.The exclusive request is accepted, which allows the requesting node to update the cache line and invalidates the other copies of the cache line.

[0055] An example of processing a received request for an exclusive fetch by a non-intervention manager node is given with reference to Fig. 5 is described. In an example, a non-intervention manager process 500 (e.g., receives, is provided to, retrieves, etc.) receives (e.g., receives, is provided to, retrieves, etc.) a remote request for an exclusive retrieval. For example, it receives the request, which was broadcast from a node that requested the exclusive retrieval, and the request includes the status indicator of the intervention manager node (e.g., IM acceptance and / or IM rejection).

[0056] Based on receiving the request, process 500 determines, for example, whether the request for an exclusive retrieval contains an indicator that the intervention manager node has accepted the request for an exclusive retrieval. In one example, this determination is made by checking the acceptance indicator included in the request. If the acceptance indicator is set to a selected value, such as 1, the intervention manager node has accepted the request. If the intervention manager has accepted the request, the non-intervention manager node accepts the request, and therefore invalidates its copy of the cache line. However, if the intervention manager node has not accepted the request, process 500 further checks whether the intervention manager node has rejected the request.In one example, this determination is made by checking the rejection indicator included in the request. If the rejection indicator is set to a selected value, such as 1, the intervention manager node has rejected the request. If the intervention manager node has rejected the request, the non-intervention manager node rejects the request (550) and does not invalidate its copy of the cache line. Otherwise, in another example, the non-intervention manager node accepts the request (530) and invalidates its copy of the cache line.

[0057] Another example of processing a received request for an exclusive fetch by a non-intervention manager node is described with reference to Fig. 6. In this example, the data processing environment encompasses multiple levels or scopes of intervention manager privileges. For example, a chip on which the nodes reside can have intervention manager privileges, as can a module that encompasses the chips and the system. As an example, intervention manager privileges are created for a retrieved cache row and assigned to at least one node that has access to the cache row. Thus, a node on the chip can have chip-level intervention manager privileges for a selected cache row, a node in a module can have module-level intervention manager privileges for the selected cache row, a node in the system can have system-level intervention manager privileges for the selected cache row, and a node on a processor can have node-level intervention manager privileges (e.g.,The lowest level of intervention manager permissions is displayed for the selected cache row. A node can have one or more levels of intervention manager permissions for a selected cache row, and a selected cache row can have one or more associated intervention manager permissions (assigned to one or more nodes). The one or more permissions are displayed, for example, in the directory for the cache row.

[0058] In one example, the system node is considered the node with the highest privilege, referred to as the privilege of a global intervention manager (GIM). In this example, the request for an exclusive retrieve indicates whether it was accepted or rejected by the highest intervention manager privilege. Furthermore, the request for an exclusive retrieve should locate the intervention manager of its current scope before moving up a scope. Nodes with a lower intervention manager level than the current scope of the request for an exclusive retrieve can, for example, follow the behavior of the non-intervention manager node or exhibit no special behavior. An example of a lower intervention manager is a chip intervention manager node on a different chip than the one from which the request for an exclusive retrieve originated. Other examples are possible.Intervention manager nodes that match the current scope of the exclusive retrieval request should not reject the exclusive retrieval request based on its indication of an intervention manager rejection. Depending on the design specifications, these nodes can either invalidate themselves or demote to a non-intervention manager copy. For example, a chip intervention manager on the output chip of the exclusive retrieval request should not reject the exclusive retrieval request indefinitely, as it will not have the opportunity to locate the highest-level intervention manager node in a higher scope.

[0059] In one example, process 600 of a non-intervention manager / lower-level intervention manager receives (e.g., receives, is provided to, retrieves, etc.) a remote request for an exclusive retrieval. For example, it receives the request, which was broadcast from a node that requested the exclusive retrieval, and the request includes the intervention manager node's state indicator. In this example, the state indicator is from an intervention manager of a selected level or scope (e.g., the top level or the global level), and it includes, for example, a GIM acceptance and / or GIM rejection.

[0060] Based on the receipt of the request, process 600 determines, 620, whether the node receiving the request is an intervention manager node. This determination is made, for example, by checking the cache directory entry for the requested cache row, which indicates the intervention manager(s) for that cache row. If the node is an intervention manager node, process 600 further determines, 630, whether the request for an exclusive retrieve originates from a scope for which that intervention manager node has authorization. This is determined, for example, by information in the request for an exclusive retrieve indicating the system's source, as well as by examining its own directory state for the cache row.If the request for an exclusive fetch is from a scope for which this intervention manager has permission, the intervention manager node accepts the request, 640, and invalidates its copy of the cache line.

[0061] In one example, if the node is not an Intervention Manager node (620) or the request for an exclusive retrieval is not from the scope for which this Intervention Manager node has permission (630), process 600 determines, for example, whether the request for an exclusive retrieval has an indicator that a global Intervention Manager (e.g., the Intervention Manager with the highest permission in a nest or multiple levels of Intervention Managers) has accepted the request. In one example, this determination is made by checking the GIM acceptance indicator included in the request. If the acceptance indicator is set to a selected value, such as 1, the global Intervention Manager has accepted the request.If the global intervention manager accepted the request, the non-intervention manager node or the lower-level intervention manager node accepts the request (660) and invalidates its copy of the cache line. However, if the global intervention manager node did not accept the request, process 600 further checks (670) whether the global intervention manager node rejected the request. In one example, this determination is made by checking the GlM rejection indicator included in the request. If the rejection indicator is set to a selected value, such as 1, the global intervention manager node rejected the request. If the global intervention manager node rejected the request, the non-intervention manager node or the lower-level intervention manager node rejects the request (680) and does not invalidate its copy of the cache line.Otherwise, the non-intervention manager node or the lower-level intervention manager node accepts the request, 660, and invalidates its copy of the cache line.

[0062] An example of a pictorial representation of aspects of the invention is given with reference to the Fig. Sections 7A to 7F are described. Initially, with reference to Fig. 7A comprises a data processing environment 700, a plurality of nodes, which include, for example, a node 702 that broadcasts a request for an exclusive retrieval (FEx), a plurality of nodes 704 to 708 that are non-intervention manager nodes at the time of this broadcast, a node 710 that requests access for a read-only retrieval (RO Fth) of the cache row, and a node 712 that is an intervention manager node at the time of this broadcast, responsible for accepting / rejecting requests for the cache row, including the request for an exclusive retrieval and the request for a read-only retrieval. In this example, the request for an exclusive retrieval is broadcast, 720, with the intervention manager rejection indicator set to a selected value, e.g.The intervention manager acceptance indicator is set to 0, indicating that the intervention manager has not rejected the request, and the intervention manager acceptance indicator is set to a selected value, e.g., 0, indicating that the intervention manager has not yet accepted the request. With such an indicator, nodes 704 through 708 in this example accept the request for an exclusive fetch and invalidate their copies of the cache line (INV for "invalidate"), as shown on the right side of the arrow. Furthermore, node 712, which has the function of the intervention manager node, accepts the request for a read-only fetch from node 710 in this example and therefore rejects the request for an exclusive fetch. In one example, based on the acceptance of the read-only fetch request, node 712 is demoted to a non-intervention manager node 712 (e.g.,, by changing the manager display in the cache directory entry for this cache row), and node 710 becomes an intervention manager node 710 again (e.g., by changing the manager display in the cache directory entry for this cache row), as illustrated on the right side of the arrow.

[0063] Since the exclusive request by the intervention manager node was not accepted, it is being retransmitted via broadcast. For example, referring to… Fig. 7B, node 702 rebroadcasts the exclusive access request, with the intervention manager rejection indicator set to a selected value, such as 1, indicating that the intervention manager rejected the request, and the intervention manager acceptance indicator set to a selected value, such as 0, indicating that the intervention manager did not accept the request. Furthermore, nodes 704 and 708 in this example, based on the previous broadcast ( Fig. 7A) The cache row copies remain invalidated, node 710 is the intervention manager node, and node 712 remains a non-intervention manager node. Additionally, node 706, which previously invalidated its copy of the cache row based on a prior acceptance of the request for an exclusive fetch, requests a read-only fetch copy of the cache row. Based on the request, the exclusive fetch is again rejected by the intervention manager node (e.g., intervention manager node 710), which accepts the read-only request from node 706. Thus, as shown to the right of the arrow, in one example, intervention manager node 710 becomes a non-intervention manager node, and node 706 becomes the intervention manager node.

[0064] Since the exclusive request was not accepted by the intervention manager node, it is again broadcast. In an example, referring to… Fig. In example 7C, node 702 rebroadcasts the exclusive access request, with the intervention manager rejection indicator set to a selected value, such as 1, indicating that the intervention manager rejected the request, and the intervention manager acceptance indicator set to a selected value, such as 0, indicating that the intervention manager did not accept the request. Furthermore, in this example, node 704 still has a invalidated copy of the cache line based on a previous broadcast, node 706 is the intervention manager node, and nodes 710 and 712 remain non-intervention manager nodes.Additionally, node 708, which had previously invalidated its copy of the cache row based on a prior acceptance of the request for an exclusive retrieval, requests a read-only retrieval copy of the cache row. Based on the requests, the intervention manager node 706 rejects the exclusive retrieval and accepts the read-only request from node 708. Thus, as shown to the right of the arrow, intervention manager node 706 becomes a non-intervention manager node, and node 708 becomes an intervention manager node.

[0065] Since the exclusive request was not accepted by the intervention manager node, it is again broadcast. In an example, referring to… Fig. 7D, node 702 retransmits the exclusive access request via broadcast, with the intervention manager rejection indicator set to a selected value, such as 1, indicating that the intervention manager has rejected the request, and the intervention manager acceptance indicator set to a selected value, such as 0, indicating that the intervention manager has not accepted the request. Furthermore, node 708 in this example, based on the previous broadcast ( Fig. 7C) The intervention manager node and nodes 706, 710, and 712 remain non-intervention manager nodes. Additionally, node 704, which previously invalidated its copy of the cache line based on a prior acceptance of the exclusive retrieval, requests a read-only retrieval copy of the cache line. Based on these requests, the intervention manager node 708 rejects the exclusive retrieval and accepts the read-only request from node 704. Thus, as shown to the right of the arrow, intervention manager node 708 becomes a non-intervention manager node, and node 704 becomes an intervention manager node.

[0066] Since the exclusive request was not accepted by the intervention manager node, it is again broadcast. In an example, referring to… Fig. 7E, node 702 retransmits the exclusive access request via broadcast, with the intervention manager rejection indicator set to a selected value, such as 1, indicating that the intervention manager has rejected the request, and the intervention manager acceptance indicator set to a selected value, such as 0, indicating that the intervention manager has not accepted the request. Furthermore, node 704 in this example, based on the previous broadcast ( Fig. 7D) The intervention manager node and nodes 706, 708, 710, and 712 are non-intervention manager nodes. Based on the request for an exclusive fetch and no conflict on the row (e.g., none of the nodes request the cache row), the intervention manager node 704 accepts the request for an exclusive fetch. Thus, as shown to the right of the arrow, intervention manager node 704 invalidates its copy of the cache row and becomes a non-intervention manager node, and node 702 receives intervention manager node permission for the exclusive fetch.

[0067] Based on the above, the exclusive retrieval will be transmitted again via broadcast. In an example, with reference to Fig. 7F, the intervention manager node 702, which now has exclusive retrieval authorization, broadcasts the request for an exclusive retrieval, with the intervention manager acceptance indicator set to a selected value, such as 1, indicating that the intervention manager has accepted the request. Based on the broadcast transmission, broadcast node 702 becomes the intervention manager node, node 704 retains an invalid copy of the cache line, and non-intervention manager nodes 706 through 712 invalidate their copies of the cache line.

[0068] Another example of a broadcast transmission is in Fig.Figure 8 illustrates this. In this example, a data processing environment 800 comprises a plurality of nodes, including a broadcast node 802, which broadcasts an exclusive request for a cache row where the intervention manager rejection indicator is set to a selected value, such as 0, indicating that the intervention manager did not reject the request. The plurality of nodes further comprises four non-intervention manager nodes 804 through 810 and one intervention manager node 812. In this example, there is no conflict over the cache row, and therefore intervention manager node 812 accepts the broadcast and invalidates its cached copy of the cache row, as shown to the right of the arrow. Furthermore, node 802 becomes the intervention manager node and can receive the exclusive request. The other nodes (e.g.,Nodes 804 to 810 also accept the request for an exclusive fetch and invalidate their copies of the cache line.

[0069] This describes an example of how to protect shared cache rows from unnecessary invalidation. In one or more aspects, as many copies of a disputed cache row as possible are retained if an intervention manager node has rejected an exclusive request for that row. In one example, no special handling is performed on the initial broadcast of the exclusive request, as it is not known at that time whether the row is disputed. On subsequent broadcasts of the exclusive request, the non-intervention manager nodes reject the request for an exclusive request until the intervention manager node accepts it, thus preventing their copies of the cache row from being invalidated.

[0070] In one example, during an initial broadcast request for an exclusive retrieve, at least most (and possibly all) of the non-intervention manager nodes receiving the initial broadcast invalidate their copies of the requested cache row (some may no longer have resources). However, upon a subsequent broadcast based on the intervention manager node's rejection of the exclusive retrieve, non-intervention manager nodes (i.e., the disputed cache rows of these nodes) are protected from invalidation according to one or more aspects of the present invention. The row is disputed, so new non-intervention manager nodes are created after the initial broadcast request for an exclusive retrieve (e.g., copies of the row are retrieved in read-only mode).Without one or more aspects of the invention, these non-intervention manager nodes (e.g., the copies of the cache line) are repeatedly invalidated by the repeated exclusive retrieval. These nodes must retrieve the line, further exacerbating the conflict and making it less likely that the intervention manager will accept the exclusive retrieval. However, according to one or more aspects of the present invention, these non-intervention manager nodes only accept the request for an exclusive retrieval upon a predefined event, e.g., it has been accepted by the intervention manager node. When the predefined event occurs, e.g., the request for an exclusive retrieval is accepted by the intervention manager node, the non-intervention manager nodes accept the request for an exclusive retrieval and then invalidate their copies of the cache line.

[0071] In one or more aspects, an exclusive retrieval request, which is to be broadcast to multiple nodes in a data processing environment, includes state information regarding the request. For example, the state information indicates whether the exclusive retrieval request was accepted by the intervention manager node, rejected by the intervention manager node, or neither accepted nor rejected. Non-intervention manager nodes use this information to decide whether to accept or reject the exclusive retrieval request.If the intervention manager node rejects the request for an exclusive retrieve, the non-intervention manager node also rejects the request for an exclusive retrieve (at least until it is accepted by the intervention manager node). If the intervention manager node accepts the request for an exclusive retrieve, the non-intervention manager nodes can accept the request for an exclusive retrieve and invalidate their copies of the requested row.

[0072] The rejection indicator can be further refined in one or more aspects, for example, to display a rejection under selected circumstances (e.g., the intervention manager node was active for the target row of the exclusive retrieval). This excludes cases where the rejection by the intervention manager node is due to a lack of resources to handle the request, for example.

[0073] In one or more aspects, the protection extends to data processing environments with multiple areas of intervention manager authorization.

[0074] In one or more aspects, processing within a data processing environment is simplified. A node in the data processing environment receives a request for an exclusive retrieval of a cache row shared by at least the node and a manager node in the data processing environment. The exclusive retrieval request includes a status indicator regarding the manager node's processing of the request. The node processes the exclusive retrieval request based on the status indicator contained within the request regarding the manager node's processing of the request.

[0075] By including the state indicator in the exclusive retrieval request, the node can determine how to handle the request. For example, based on the state indicator, the node can accept the request and thus invalidate its copy of the cache line; or, based on the state indicator, the node can reject the request and therefore not invalidate its copy of the cache line. This simplifies processing by performing cache line invalidations only under selected circumstances, such as based on the state indicator, rather than invalidating the cache line on every rebroadcast of the exclusive retrieval request. This reduces the number of cache line invalidations, thereby protecting copies of the cache line.

[0076] In one embodiment, the state indicator includes an acceptance indicator that shows whether the manager node has accepted the request for an exclusive fetch. This simplifies processing by informing the node when the manager node has accepted the request for an exclusive fetch. Therefore, the node can also accept the request for an exclusive fetch and invalidate its copy of the cache line, instead of performing invalidation on each repetition of the exclusive fetch. This saves processing cycles and reduces access to system memory.

[0077] In one embodiment, the status indicator further includes a rejection indicator that shows whether the manager node has rejected the request for an exclusive retrieval. This simplifies processing by informing the node when the manager node has rejected the request for an exclusive retrieval, and therefore the node can also reject the request for an exclusive retrieval and avoid invalidating its copy of the cache line. This simplifies processing by reducing the number of cache line invalidations performed by the node.

[0078] In one embodiment, the status indicator includes a rejection indicator that shows whether the manager node has rejected the request for an exclusive retrieval. This simplifies processing by informing the node when the manager node has rejected the request for an exclusive retrieval, and therefore the node can also reject the request for an exclusive retrieval and avoid invalidating its copy of the cache line. This simplifies processing by reducing the number of cache line invalidations performed by the node.

[0079] In one embodiment, the rejection indicator further displays a reason for rejecting the exclusive retrieval request. This simplifies processing by indicating to the node when the manager node has rejected the exclusive retrieval request for a selected reason, allowing the node to decide whether to reject the exclusive retrieval request and not invalidate its copy of the cache line. This simplifies processing by reducing the number of cache line invalidations performed by the node.

[0080] In one embodiment, the processing includes determining, based on the rejection indicator, that the manager node has rejected the exclusive retrieval request for a selected reason. Based on this determination, the manager node rejects the exclusive retrieval request for the selected reason. By using the rejection indicator provided with the exclusive retrieval request, the node can determine how to process the request. For example, the node can reject the request based on the rejection indicator and therefore not invalidate its copy of the cache line.This simplifies processing by preventing cache line invalidations under certain circumstances, such as when the manager node rejects a request for an exclusive retrieval for the selected reason. This reduces the number of cache line invalidations, thus protecting copies of the cache line.

[0081] In one embodiment, the processing includes determining, based on the state indicator, that the manager node has rejected the request for an exclusive retrieval. Based on this determination, the node rejects the request. By using the state indicator provided with the request for an exclusive retrieval, the node can determine how to process the request. For example, the node can reject the request based on the state indicator showing that the manager node has rejected it, and therefore not invalidate its copy of the cache line.This simplifies processing by preventing cache line invalidations under certain circumstances, such as when the manager node rejects a request for an exclusive retrieval. This reduces the number of cache line invalidations, thus protecting copies of the cache line.

[0082] In a single embodiment, the data processing environment comprises a plurality of nodes to receive the request for an exclusive retrieval. Based on the determination that the manager node has rejected the request, the rejection is performed by the plurality of nodes receiving the request. By using the state indicator provided with the request, the nodes can determine how to process the request. For example, based on the state indicator showing that the manager node has rejected the request, the nodes can reject the request and therefore not invalidate their copies of the cache line.This simplifies processing by preventing the invalidation of cache line copies under certain circumstances, such as when the manager node rejects a request for an exclusive retrieval. This reduces the number of cache line invalidations, thus protecting cache line copies.

[0083] In one embodiment, the processing involves determining, based on the state indicator, that the manager node has accepted the request for an exclusive fetch. Based on this determination, the manager node accepts the request for an exclusive fetch. By using the state indicator to determine that the manager node has accepted the request for an exclusive fetch, the node can also accept the request for an exclusive fetch and invalidate its copy of the cache line, instead of performing invalidation on each repetition of the exclusive fetch. This saves processing cycles and reduces access to system memory.

[0084] In a single embodiment, the data processing environment comprises multiple levels of manager nodes, and the state indicator on which the processing is based is the state indicator of a selected manager node at a selected level of the multiple levels. By including the appropriate state indicator in the request for an exclusive fetch, the node can determine how the request should be processed. For example, based on the state indicator, the node can accept the request and thus invalidate its copy of the cache line; or the node can reject the request based on the state indicator and therefore not invalidate its copy of the cache line.This simplifies processing by performing cache line invalidations only under selected circumstances, such as based on the status indicator, instead of invalidating the request for an exclusive retrieval every time it is rebroadcast. This reduces the number of cache line invalidations required, thus protecting copies of the cache line.

[0085] Although several examples are given herein, further examples / implementations are possible. For instance, other circumstances can be provided for selective rejection. Furthermore, additional, fewer, and / or different nodes than those described herein can receive the broadcast transmission. Additionally, the request for an exclusive retrieval can include additional, fewer, and / or different indicators than those described herein, and / or the indicators can provide additional information. Many variations are possible.

[0086] One or more aspects of the present invention are related to computer technology and simplify processing within a computer, thereby improving its performance. For example, cache invalidations are reduced, which decreases access to main memory and the use of computer resources, thereby improving processing and / or processing speed within a processor / computer / data processing environment. Processing within a processor, computer system, and / or data processing environment is improved.

[0087] Other aspects, variants and / or designs are possible.

[0088] In addition to the above, one or more aspects may be provided, offered, deployed, managed, operated, etc., by a service provider offering customer environment management. For example, the service provider may create, maintain, support, etc., computer code and / or computer infrastructure that performs one or more aspects for one or more customers. In return, the service provider may receive payments from the customer under a subscription and / or fee agreement, for example. Additionally or alternatively, the service provider may receive payments from the sale of advertising content to one or more third parties.

[0089] In one aspect, an application can be used to perform one or more embodiments. For example, the use of an application involves providing computer infrastructure that can be operated to perform one or more embodiments.

[0090] Another aspect that can be used is a data processing infrastructure that integrates computer-readable code into a data processing system, whereby the code, in conjunction with the data processing system, can perform one or more embodiments.

[0091] Another aspect that can be provided is a process for integrating a data processing infrastructure, which involves integrating computer-readable code into a computer system. The computer system includes a computer-readable data carrier, which has one or more embodiments. The code, in conjunction with the computer system, can perform one or more embodiments.

Claims

[1] Computer program product designed to simplify processing within a data processing environment (101), wherein the computer program product features: one or more computer-readable storage media and program instructions stored together on the one or more computer-readable storage media to carry out a procedure comprising: Received (510), by a node (200) of the data processing environment (101), a request for an exclusive fetch of a cache row shared by at least the node (200) and a manager node of the data processing environment (101), wherein the request for an exclusive fetch includes a status indicator regarding the processing of the request for an exclusive fetch by the manager node; and Processing, by the node (200), the request for an exclusive retrieval based on the state indicator contained in the request for an exclusive retrieval with respect to the processing of the request for an exclusive retrieval by the manager node. [2] Computer program product according to claim 1, wherein the status indicator has an acceptance indicator that shows whether the manager node has accepted the request for an exclusive retrieval. [3] Computer program product according to claim 2, wherein the status indicator further comprises a rejection indicator that shows whether the manager node has rejected the request for an exclusive retrieval. [4] Computer program product according to claim 1, wherein the status indicator includes a rejection indicator that shows whether the manager node has rejected the request for an exclusive retrieval. [5] Computer program product according to claim 4, wherein the rejection indicator further indicates a reason for rejecting the request for an exclusive retrieval. [6] Computer program product according to claim 5, wherein the processing comprises: Determine (540), based on the rejection indicator, that the manager node has rejected the request for an exclusive retrieval for a selected reason; and Reject (550), by the node (200), the request for an exclusive retrieval based on the finding that the manager node has rejected the request for an exclusive retrieval for the selected reason. [7] Computer program product according to claim 1, wherein the processing comprises: Determine, based on the status indicator, that the manager node has rejected the request for an exclusive retrieval; and Reject, by node (200), the request for an exclusive retrieval based on the finding that the manager node has rejected the request for an exclusive retrieval. [8] Computer program product according to claim 7, wherein the data processing environment (101) comprises a plurality of nodes (200) to receive the request for an exclusive retrieval, and wherein the rejection is carried out by the plurality of nodes (200) receiving the request for an exclusive retrieval based on the finding that the manager node has rejected the request for an exclusive retrieval. [9] Computer program product according to claim 1, wherein the processing comprises: Determine (520), based on the status indicator, that the manager node has accepted the request for an exclusive retrieval; and Accepting (530), by the node (200), the request for an exclusive retrieval based on the finding that the manager node has accepted the request for an exclusive retrieval. [10] Computer program product according to claim 1, wherein the data processing environment (101) has multiple levels of manager nodes and wherein the state indicator on which the processing is based is the state indicator of a selected manager node at a selected level of the multiple levels. [11] Computer system designed to simplify processing within a data processing environment (101), wherein the computer system comprises: a main memory (121); and a processor (120) connected to the main memory (121), the computer system being configured to perform a procedure, the procedure comprising: Received (510), by a node (200) of the data processing environment (101), a request for an exclusive fetch of a cache row shared by at least the node (200) and a manager node of the data processing environment (101), wherein the request for an exclusive fetch includes a status indicator regarding the processing of the request for an exclusive fetch by the manager node; and Processing, by the node (200), the request for an exclusive retrieval based on the state indicator contained in the request for an exclusive retrieval with respect to the processing of the request for an exclusive retrieval by the manager node. [12] Computer system according to claim 11, wherein the status indicator has an acceptance indicator that shows whether the manager node has accepted the request for an exclusive retrieval. [13] Computer system according to claim 11, wherein the status indicator includes a rejection indicator that shows whether the manager node has rejected the request for an exclusive retrieval. [14] Computer system according to claim 11, wherein the processing comprises: Determine (540), based on the status indicator, that the manager node has rejected the request for an exclusive retrieval; and Reject (550), by the node (200), the request for an exclusive retrieval based on the finding that the manager node has rejected the request for an exclusive retrieval. [15] Computer system according to claim 11, wherein the processing comprises: Determine (520), based on the status indicator, that the manager node has accepted the request for an exclusive retrieval; and Accepting (530), by the node (200), the request for an exclusive retrieval based on the finding that the manager node has accepted the request for an exclusive retrieval. [16] A computer-executed method for simplifying processing within a data processing environment (101), wherein the computer-executed method comprises: Received by a node (200) of the data processing environment (101), a request for an exclusive retrieval of a cache row shared by at least the node (200) and a manager node of the data processing environment (101), wherein the request for an exclusive retrieval includes a status indicator regarding the processing of the request for an exclusive retrieval by the manager node; and Processing, by the node (200), the request for an exclusive retrieval based on the state indicator contained in the request for an exclusive retrieval with respect to the processing of the request for an exclusive retrieval by the manager node. [17] A computer-executed method according to claim 16, wherein the status indicator includes an acceptance indicator that shows whether the manager node has accepted the request for an exclusive retrieval. [18] A computer-executed method according to claim 16, wherein the status indicator includes a rejection indicator that shows whether the manager node has rejected the request for an exclusive retrieval. [19] A computer-executed method according to claim 16, wherein the processing comprises: Determine (540), based on the status indicator, that the manager node has rejected the request for an exclusive retrieval; and Reject (550), by the node (200), the request for an exclusive retrieval based on the finding that the manager node has rejected the request for an exclusive retrieval. [20] A computer-executed method according to claim 16, wherein the processing comprises: Determine (520), based on the status indicator, that the manager node has accepted the request for an exclusive retrieval; and Accepting (530), by the node (200), the request for an exclusive retrieval based on the finding that the manager node has accepted the request for an exclusive retrieval.

Citation Information

Patent Citations

  • Granting exclusive cache access using locality cache coherency state

    US20160110287A1