Invalidation protection for shared cache lines

By including a status indicator in the exclusive acquisition request, the node decides whether the cache line is invalid based on the processing status of the manager node, solving the problem of inefficient processing of the exclusive acquisition request and achieving more efficient processing and memory access.

CN120359501APending Publication Date: 2025-07-22INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380085471.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-15
Filing Date
2023-11-23
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

In the computing environment, the processing efficiency of exclusive acquisition requests of cache lines in the prior art is low, resulting in unnecessary cache lines invalidation, increasing processing costs and memory access waiting time.

Method used

By including a status indicator in the exclusive acquisition request, the node can decide whether to accept or reject the request based on the processing status of the manager node, thereby reducing unnecessary cache line invalidation and saving processing cycles and memory access.

Benefits of technology

Reduces the number of invalidation times of cache lines, improves processing efficiency, and reduces processing costs and memory access waiting time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120359501A_ABST
    Figure CN120359501A_ABST
Patent Text Reader

Abstract

A node of a computing environment obtains an exclusive fetch request for a cache line shared by at least the node and a manager node of the computing environment. The exclusive fetch request includes a status indication regarding processing of the exclusive fetch request by the manager node. The node processes the exclusive fetch request based on a status indication included in the exclusive fetch request regarding the processing of the exclusive fetch request by the manager node.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND OF THE INVENTION

[0001] One or more aspects generally relate to facilitating processing within a computing environment, and more particularly to improving cache processing within a computing environment.

[0002] To improve memory access, many computing environments use a cache system where recently accessed data is stored in the cache, which is closer to the node accessing the cache than system memory. In one example, each of multiple nodes of a computing environment has a cache, and cache lines can be shared among the nodes because read-only copies of the cache lines can exist in multiple caches of multiple nodes.

[0003] When a node requests a cache line that exists in the cache of at least one other node, the manager node of that cache line is responsible for responding to the request. The request for a cache line can be read-only, where multiple nodes can obtain the line for read purposes, or an exclusive acquisition, where only one node is allowed to obtain the line for update purposes.

[0004] If the manager node and other non-manager nodes accept an exclusive acquisition of a cache line, the exclusive acquisition of the cache line is considered successful. If a node is busy with a different acquisition of the same cache line or runs out of acquisition service resources, the node will reject the exclusive acquisition and will have to retry the exclusive acquisition. This process will be improved to improve overall processing within the computing environment. SUMMARY OF THE INVENTION

[0005] A computer program product for facilitating processing within a computing environment overcomes the disadvantages of the prior art and provides additional advantages. The computer program product includes one or more computer-readable storage media and program instructions jointly stored on the one or more computer-readable storage media to perform a method. The method includes obtaining, by a node of a computing environment, an exclusive acquisition request for a cache line shared at least by the node and a manager node of the computing environment. The exclusive acquisition request includes a status indication regarding the processing of the exclusive acquisition request by the manager node. The node processes the exclusive acquisition request based on the status indication included in the exclusive acquisition request regarding the processing of the exclusive acquisition request by the manager node.

[0006] By including a status indication in the exclusive acquisition request, a node can determine how to process the request. For example, a node can accept the request based on the status indication and thus invalidate its copy of the cache line; or a node can reject the request based on the status indication and thus not invalidate its copy of the cache line. This facilitates processing by performing cache line invalidation in selected cases (e.g., based on the status indication) rather than on every rebroadcast of the exclusive acquisition request. This enables a reduction in the number of cache line invalidations, thereby protecting the copies of cache lines.

[0007] In one embodiment, the status indication includes an acceptance indicator that indicates whether the manager node has accepted the exclusive acquisition request. This facilitates processing by indicating to the node when the manager node accepts the exclusive acquisition request. Thus, the node can also accept the exclusive acquisition request and invalidate its copy of the cache line, rather than invalidating it on every retry of the exclusive acquisition. This saves processing cycles and reduces system memory access.

[0008] In one embodiment, the status indication further includes a rejection indicator that indicates whether the manager node has rejected the exclusive acquisition request. This facilitates processing by indicating to the node when the manager node has rejected the exclusive acquisition request, and thus, the node can also reject the exclusive acquisition request and not invalidate its copy of the cache line. This facilitates processing by reducing the number of times the node invalidates the cache line.

[0009] In one embodiment, the status indication includes a rejection indicator that indicates whether the manager node has rejected the exclusive acquisition request. This facilitates processing by indicating to the node when the manager node has rejected the exclusive acquisition request, and thus, the node can also reject the exclusive acquisition request and not invalidate its copy of the cache line. This facilitates processing by reducing the number of times the node invalidates the cache line.

[0010] In one embodiment, the rejection indicator further indicates the reason for rejecting the exclusive acquisition request. This facilitates processing by indicating to the node when the manager node has rejected the exclusive acquisition request for a selected reason, and thus, the node can decide to reject the exclusive acquisition request and not invalidate its copy of the cache line. This facilitates processing by reducing the number of times the node invalidates the cache line.

[0011] In one embodiment, the process includes determining, based on a rejection indicator, that a manager node has rejected an exclusive acquisition request for a selected reason. Based on determining that the manager node has rejected the exclusive acquisition request for the selected reason, the node rejects the exclusive acquisition request. By using the rejection indicator provided with the exclusive acquisition request, the node can determine how to process the request. For example, the node can reject the request based on the rejection indicator and thus not invalidate its copy of the cache line. This facilitates processing by not performing cache line invalidation in some cases, such as based on the manager node rejecting the exclusive acquisition request for a selected reason. This enables a reduction in the number of cache line invalidations, thereby protecting the cache line copies.

[0012] In one embodiment, the process includes determining, based on a status indicator, that a manager node has rejected an exclusive acquisition request. Based on determining that the manager node has rejected the exclusive acquisition request, the node rejects the exclusive acquisition request. By using the status indicator provided with the exclusive acquisition request, the node can determine how to process the request. For example, based on the status indicator indicating that the manager node has rejected the exclusive acquisition request, the node can reject the request and thus not invalidate its copy of the cache line. This facilitates processing by not performing cache line invalidation in some cases, such as based on the rejection of the exclusive acquisition request by the manager node. This enables a reduction in the number of cache line invalidations, thereby protecting the cache line copies.

[0013] In one embodiment, a computing environment includes multiple nodes to receive exclusive acquisition requests. Based on determining that a manager node has rejected an exclusive acquisition request, the rejection is performed by the multiple nodes that receive the exclusive acquisition request. By using the status indicator provided with the exclusive acquisition request, the node can determine how to process the request. For example, the node can reject the request based on the status indicator indicating that the manager node has rejected the exclusive acquisition request and thus not invalidate their copies of the cache line. This facilitates processing by not performing cache line copy invalidation in some cases, such as based on the rejection of the exclusive acquisition request by the manager node. This enables a reduction in the number of cache line invalidations, thereby protecting the cache line copies.

[0014] In one embodiment, the process includes determining, based on a status indicator, that a manager node has accepted an exclusive acquisition request. Based on determining that the manager node has accepted the exclusive acquisition request, the node accepts the exclusive acquisition request. By using the status indicator to determine that the manager node has accepted the exclusive acquisition request, the node can also accept the exclusive acquisition request and invalidate its copy of the cache line, rather than invalidating it on each retry of the exclusive acquisition. This saves processing cycles and reduces system memory access.

[0015] In one embodiment, the computing environment includes multiple levels of manager nodes, and the status indication on which the processing is based is the status indication of a selected manager node at a selected level among the multiple levels. By including an appropriate status indication in the exclusive acquisition request, a node can determine how to process the request. For example, a node can accept the request based on the status indication and thus invalidate its copy of the cache line; or a node can reject the request based on the status indication and thus not invalidate its copy of the cache line. This facilitates processing by performing invalidation of the cache line in selected cases (e.g., based on the status indication) rather than invalidating it every time the exclusive acquisition request is re-broadcast. This enables a reduction in the number of cache line invalidations, thereby protecting the copies of the cache lines.

[0016] Computer-implemented methods and systems related to one or more aspects are also described and claimed herein. In addition, services related to one or more aspects are also described and claimed herein.

[0017] Additional features and advantages are realized through the techniques described herein. Other embodiments and aspects are described in detail herein and are considered a part of the claimed aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] One or more aspects are particularly pointed out and distinctly claimed as examples in the claims at the end of the specification. The foregoing and other objects, features, and advantages of one or more aspects will become apparent from the following detailed description when taken in conjunction with the accompanying drawings, in which:

[0019] Figure 1 An example of a computing environment that includes and uses one or more aspects of the present invention is shown;

[0020] Figure 2 Details of an example of a processor group according to one or more aspects of the present invention are described; Figure 1 An example of further details of a processor group according to one or more aspects of the present invention is shown;

[0021] Figure 3 Details of an example of a sub-module of a shared cache line protection module according to one or more aspects of the present invention are described; Figure 1 An example of a sub-module of a shared cache line protection module according to one or more aspects of the present invention is shown;

[0022] Figure 4 An example of broadcast processing according to one or more aspects of the present invention is described;

[0023] Figure 5 An example of non-intrusive manager node processing according to one or more aspects of the present invention is shown;

[0024] Figure 6Shows another example of processing by a non-intrusive manager node in accordance with one or more aspects of the present invention;

[0025] Figures 7A - 7F Illustrates an example of shared cache line protection in accordance with one or more aspects of the present invention; and

[0026] Figure 8 Illustrates another example of shared cache line protection in accordance with one or more aspects of the present invention. DETAILED DESCRIPTION

[0027] In accordance with one or more aspects of the present invention, a capability is provided to facilitate processing within a computing environment. In one or more aspects, the capability includes improving the use of a cache, and in particular, improving the handling of exclusive acquisition requests for cache lines within the cache. In one or more aspects, the capability includes protecting shared cache lines from unnecessary invalidation based on rejected exclusive acquisition requests.

[0028] One or more aspects of the present invention are incorporated in, executed by, and / or used by a computing environment. As an example, the computing environment can be of various architectures and various types, including but not limited to: personal computing, client-server, distributed, virtual, emulated, partitioned, non-partitioned, cloud-based, quantum, grid, time-sharing, cluster, peer-to-peer, wearable, mobile, having one node or multiple nodes, having one processor or multiple processors, and / or any other type of environment and / or configuration, etc., that is capable of executing, for example, a process (or processes) for handling exclusive acquisition requests for shared cache lines such that unnecessary invalidation of cache line copies is reduced, and / or for executing one or more other aspects of the present invention. Aspects of the present invention are not limited to a particular architecture or environment.

[0029] Aspects of the present disclosure are described by narrative text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. With respect to any flowchart, depending on the technology involved, operations may be performed in an order different from that shown in a given flowchart. For example, again depending on the technology involved, two operations shown in consecutive flowchart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time.

[0030] A computer program product embodiment (“CPP embodiment” or “CPP”) is a term used in this disclosure to describe any collection of one or more storage media (also referred to as “media”) collectively included in a set of one or more storage devices, the set of one or more storage devices collectively including machine-readable code corresponding to instructions and / or data for performing computer operations specified in a given CPP claim. A “storage device” is any tangible device that can hold and store instructions used by a computer processor. By way of non-limitation, computer-readable storage media can be electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, mechanical storage media, or any suitable combination of the foregoing. Some known types of storage devices that include these media include: magnetic disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or pits / lands formed in the main surface of a disc, or any suitable combination of the foregoing. Computer-readable storage media, as the term is used in this disclosure, should not be construed to store in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, optical pulses passing through an optical fiber cable, electrical signals transmitted through a wire, and / or other transmission media. As will be understood by those skilled in the art, data is typically moved at certain incidental points in time during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but this does not render the storage device transitory because the data is not transitory when it is stored.

[0031] Refer to Figure 1Describes an example of a computing environment that executes, incorporates, and / or uses one or more aspects of the present invention. In one example, computing environment 100 includes an example of an environment for executing at least some of the computer code involved in performing the methods of the present invention, such as the shared cache line protection code or module 150. In addition to block 150, computing environment 100 includes, for example, computer 101, wide area network (WAN) 102, end-user device (EUD) 103, remote server 104, public cloud 105, and private cloud 106. In this embodiment, computer 101 includes a processor group 110 (including processing circuitry 120 and cache 121), a communication structure 111, volatile memory 112, a permanent storage device 113 (including operating system 122 and block 150, as described above), a peripheral device group 114 (including a user interface (UI) device group 123, a storage device 124, and an Internet of Things (IoT) sensor group 125), and a network module 115. Remote server 104 includes a remote database 130. Public cloud 105 includes a gateway 140, a cloud coordination module 141, a host physical machine group 142, a virtual machine group 143, and a container group 144.

[0032] Computer 101 can take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device now known or developed in the future that is capable of running programs, accessing a network, or querying a database such as remote database 130. As is well known in the computer technology field and depending on the technology, the performance of computer-implemented methods can be distributed among multiple computers and / or multiple locations. On the other hand, in this presentation of computing environment 100, the discussion focuses on a single computer, particularly computer 101, to keep the presentation as simple as possible. Computer 101 can be located in the cloud, even though Figure 1 it is not shown in the cloud. On the other hand, computer 101 does not need to be in the cloud, except to any extent that can be positively indicated.

[0033] The processor group 110 includes one or more computer processors of any type now known or to be developed in the future. The processing circuitry 120 may be distributed across multiple packages, such as multiple cooperative integrated circuit chips. The processing circuitry 120 may implement multiple processor threads and / or multiple processor cores. The cache 121 is a memory located within the (multiple) processor chip packages and is generally used for data or code that should be made available for rapid access by threads or cores running on the processor group 110. Cache memory is typically organized into multiple levels based on its relative proximity to the processing circuitry. Alternatively, some or all of the cache of the processor group may be located "off-chip". In some computing environments, the processor group 110 may be designed to work with qubits and perform quantum computing.

[0034] Computer-readable program instructions are typically loaded onto the computer 101 to cause the processor group 110 of the computer 101 to execute a series of operational steps to implement a computer-implemented method such that the instructions so executed will instantiate the method specified in the flowchart and / or the narrative description of the computer-implemented method included in this document (collectively referred to as "the method of the present invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as the cache 121 and other storage media discussed below. The program instructions and associated data are accessed by the processor group 110 to control and direct the execution of the method of the present invention. In the computing environment 100, at least some of the instructions for executing the method of the present invention may be stored in the permanent storage device 113 in block 150.

[0035] The communication structure 111 is a signal conduction path that allows the various components of the computer 101 to communicate with each other. Generally, this structure consists of switches and conductive paths, such as switches and conductive paths that make up a bus, a bridge, a physical input / output port, etc. Other types of signal communication paths may be used, such as fiber optic communication paths and / or wireless communication paths.

[0036] The volatile memory 112 is any type of volatile memory now known or to be developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Generally, volatile memory is characterized by random access, but this is not required unless specifically stated. In the computer 101, the volatile memory 112 is located within a single package and inside the computer 101. However, alternatively or additionally, the volatile memory may be distributed across multiple packages and / or located external to the computer 101.

[0037] The permanent storage device 113 is any form of non-volatile storage device for a computer that is known now or developed in the future. The non-volatility of the storage device means that the stored data is retained regardless of whether power is supplied to the computer 101 and / or directly to the permanent storage device 113. The permanent storage device 113 can be a read-only memory (ROM), but typically at least a portion of the permanent storage device allows for the writing, deletion, and re-writing of data. Some common forms of persistent storage include disk and solid-state storage devices. The operating system 122 can take several forms, such as various known proprietary operating systems or operating systems of the open-source portable operating system interface type that employ a kernel. The code included in block 150 typically includes at least some of the computer code involved in performing the method of the present invention.

[0038] The peripheral device group 114 includes the peripheral devices of the computer 101. Data communication connections between the peripheral devices and other components of the computer 101 can be implemented in various ways, such as Bluetooth connections, near-field communication (NFC) connections, connections made by a cable (such as a universal serial bus (USB)-type cable), plug-in connections (e.g., secure digital (SD) card), connections made through a local communication network, and even connections made through a wide area network such as the Internet. In various embodiments, the UI device group 123 can include components such as a display screen, speakers, microphones, wearable devices (such as goggles and smartwatches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. The storage device 124 is an external storage device, such as an external hard disk drive, or a plug-in storage device, such as an SD card. The storage device 124 can be permanent and / or volatile. In some embodiments, the storage device 124 can take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where the computer 101 needs to have a large amount of storage (e.g., in the case where the computer 101 locally stores and manages a large database), the storage can be provided by a peripheral storage device designed to store a very large amount of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. The IoT sensor group 125 consists of sensors that can be used in Internet of Things applications. For example, one sensor can be a thermometer, and another sensor can be a motion detector.

[0039] The network module 115 is a collection of computer software, hardware, and firmware that allows the computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data transmitted over a communication network, and / or web browser software for transmitting data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 115 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software-defined networking (SDN)), the control function and the forwarding function of the network module 115 are executed on physically separate devices such that the control function manages several different network hardware devices. The computer-readable program instructions for performing the methods of the present invention may generally be downloaded to the computer 101 from an external computer or an external storage device via a network adapter or a network interface included in the network module 115.

[0040] The WAN 102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances via any technology known now or developed in the future for transmitting computer data. In some embodiments, the WAN 102 may be replaced and / or supplemented by a local area network (LAN) designed to transmit data between devices located in a local area, such as a Wi-Fi network. The WAN and / or the LAN generally include computer hardware such as copper transmission cables, fiber optic transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.

[0041] The end-user device (EUD) 103 is any computer system used and controlled by an end user (e.g., a customer of an enterprise operating the computer 101) and may take any form discussed above in connection with the computer 101. The EUD 103 typically receives helpful and useful data from the operation of the computer 101. For example, in the hypothetical case where the computer 101 is designed to provide recommendations to an end user, the recommendations will typically be transmitted from the network module 115 of the computer 101 to the EUD 103 via the WAN 102. In this way, the EUD 103 may display or otherwise present the recommendations to the end user. In some embodiments, the EUD 103 may be a client device such as a thin client, a thick client, a mainframe computer, a desktop computer, etc.

[0042] The remote server 104 is any computer system that provides at least some data and / or functionality to the computer 101. The remote server 104 can be controlled and used by the same entity that operates the computer 101. The remote server 104 represents a (multiple) machine that collects and stores useful and valuable data used by other computers such as the computer 101. For example, in the hypothetical case where the computer 101 is designed and programmed to provide recommendations based on historical data, then the historical data can be provided to the computer 101 from the remote database 130 of the remote server 104.

[0043] The public cloud 105 is any computer system that can be used by multiple entities, which provides on-demand availability of computer system resources and / or other computer capabilities (especially data storage (cloud storage) and computing power) without the direct active management of the user. Cloud computing typically utilizes the sharing of resources to achieve consistency and economy of scale. The direct and active management of the computing resources of the public cloud 105 is performed by the computer hardware and / or software of the cloud coordination module 141. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments running on various computers that make up the host physical machine group 142, which is the universe of physical computers in and / or available for the public cloud 105. The virtual computing environment (VCE) typically takes the form of virtual machines from the virtual machine group 143 and / or containers from the container group 144. It should be understood that these VCEs can be stored as images and can be transferred between various physical machine hosts as images or after the instantiation of the VCE. The cloud coordination module 141 manages the transmission and storage of the images, deploys new instantiations of the VCE, and manages the active instantiations of the VCE deployment. The gateway 140 is a collection of computer software, hardware, and firmware that allows the public cloud 105 to communicate through the WAN 102.

[0044] Some further explanations of the virtualized computing environment (VCE) will now be provided. The VCE can be stored as an "image". New active instances of the VCE can be instantiated from this image. Two common types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple isolated user space instances, called containers. From the perspective of the programs running within them, these isolated user space instances typically behave as actual computers. A computer program running on a normal operating system can utilize all the resources of that computer, such as connected devices, files and folders, network shares, CPU capabilities, and quantifiable hardware capabilities. However, a program running within a container can only use the contents of the container and the devices allocated to the container, which is a feature known as containerization.

[0045] The private cloud 106 is similar to the public cloud 105, except that the computing resources are only available for use by a single enterprise. Although the private cloud 106 is depicted as communicating with the WAN 102, in other embodiments, the private cloud can be completely disconnected from the Internet and only accessible through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types) that are typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable coordination, management, and / or data / application portability between the multiple constituent clouds. In this embodiment, the public cloud 105 and the private cloud 106 are both part of a larger hybrid cloud.

[0046] The above computing environment is only one example of a computing environment that incorporates, executes, and / or uses one or more aspects of the present invention. Other examples are possible. For example, in one or more embodiments, Figure 1 one or more components / modules of are not included in the computing environment and / or not used for one or more aspects of the present invention. Additionally, in one or more embodiments, additional and / or other components / modules may be used. Other variations are possible.

[0047] Further details of one example of a processor group (e.g., processor group 110) are described with reference to Figure 2 In one example, the processor group (e.g., processor group 110) includes a plurality of nodes 200, where each node is a core or central processing unit of a processor of the processor group (e.g., processor group 110). In one example, each node is coupled to a cache (e.g., cache 210) for storing data accessed by that node. As an example, each cache may be Figure 1 part of cache 121 of. In one example, the caches may be interconnected.

[0048] In one example, the cache (e.g., cache 210) includes a plurality of cache lines (e.g., cache line 220), where a cache line is the unit of data transferred between the cache and the main memory (e.g., volatile memory 112; persistent storage device 113; etc.). Cache lines (e.g., cache line 220) typically have a fixed size, and the size range can be from, for example, 16 to 256 bytes. Although the size range is provided as an example, cache lines may have more and / or fewer bytes than the examples provided herein. Moreover, in another example, cache lines may have a variable size. Many variations are possible.

[0049] A cache line (e.g., cache line 220) can be shared because a read-only copy of the cache line can be fetched from a memory (e.g., volatile memory 112; persistent storage 113, etc.) and stored in caches (e.g., cache 210) of multiple nodes (e.g., node 200). If a cache line is to be updated, an exclusive acquisition is performed, where one of the multiple nodes obtains the authorization to change the cache line in one of the caches. The corresponding cache lines in other caches are invalidated. This provides data protection to ensure that the most up-to-date copy of the data is used by the nodes sharing the cache line.

[0050] In one example, for a given request for a cache line, one of the multiple nodes is a requesting node (e.g., a read-only fetch node, an exclusive fetch node) that requests access (e.g., read-only, exclusive) to the cache line; one of the nodes is a manager node responsible for responding to the request (which may also be referred to herein as an intervention manager node, an intervention manager, or a manager); 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). In one example, the responsibility or state of a particular node changes, for example, based on the processing of a given cache line request and / or based on other cache line requests. For example, in one example, the requesting node becomes an administrator node based on receiving permission to execute the request. Other examples are possible, including examples where the responsibility as a manager node does not change based on receiving permission to execute the request. Many examples are possible.

[0051] In one example, based on a node becoming a manager node, an indication is placed, for example, in a cache directory, such as in a cache directory entry corresponding to the cache line, or in another location, indicating that the node is the current manager node.

[0052] When a given cache line request is, for example, an exclusive fetch request, the exclusive fetch will be accepted by the manager node, and the same is true for non-manager nodes that are successful in the exclusive fetch. Based on a node such as a non-manager node accepting the request, the non-manager node invalidates its copy of the given cache line. If the node is busy with a different fetch or an out-of-service fetch resource for the same cache line, the node rejects the exclusive fetch. For example, if the manager node rejects or does not accept the exclusive fetch request, the exclusive fetch fails, resulting in potentially unnecessary invalidations in other nodes. For example, an exclusive fetch of a cache line experiencing contention can cause non-manager nodes to invalidate their copies of the cache line if the manager node does not accept the exclusive fetch. The non-manager nodes still want to have their read-only copies and thus re-fetch the cache line, which further increases contention. The increased contention makes it less likely for the exclusive fetch to succeed on retry. Therefore, one or more unnecessary invalidations can be performed before a successful exclusive fetch request. They are considered unnecessary because the exclusive fetch request has not been granted or has failed, and thus, the corresponding cache line does not have to be invalidated.

[0053] To reduce unnecessary invalidations of cache lines in non-manager nodes, according to one aspect of the present invention, invalidation of cache lines is performed based on a specific event, such as the manager node accepting an exclusive fetch request. One or more invalidations are avoided until it is expected that the exclusive fetch will be successfully executed. Thus, when the manager node has rejected an exclusive fetch request, copies of as many contended cache lines as possible are saved. For example, a non-manager node rejects an exclusive fetch request that has already been rejected by the manager node until the exclusive fetch request is accepted by the manager node. This reduces processing costs and memory access latency and improves processing speed.

[0054] To protect a shared cache line from one or more unnecessary invalidations, according to one or more aspects of the present invention, 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, the shared cache line protection module (e.g., shared cache line protection module 150) includes code or instructions for performing shared cache line protection processing. In one example, the shared cache line protection module (e.g., shared cache line protection module 150) includes various sub-modules for performing the processing. The sub-modules are, for example, computer-readable program code (e.g., instructions) in a computer-readable medium, where the computer-readable medium is, for example, a storage device (e.g., storage device 124, permanent storage device 113, cache 121, other storage devices). The computer-readable medium can be part of a computer program product and can be executed by and / or used with one or more computers, such as (multiple) computers 101; one or more servers, such as (multiple) remote servers 104; one or more processors or nodes, such as (multiple) processors or (multiple) nodes of processor group 110; and / or processing circuitry, such as processing circuitry 120 of processor group 110; and so on. Additional and / or other computers, servers, processors, nodes, and / or processing circuitry can be used to execute one or more of the sub-modules and / or portions thereof. Many examples are possible.

[0055] Reference Figure 3 An example of the shared cache line protection module 150 is described. In one example, the shared cache line protection module 150 includes a broadcast sub-module 300 for broadcasting an exclusive acquisition request to multiple nodes; a non-intervention manager node (also referred to herein as a non-manager node) processing sub-module 310 for processing the exclusive acquisition request; and an extended non-intervention manager node processing sub-module 320 for further processing the exclusive acquisition request. In one or more aspects of the present invention, additional, fewer, and / or other sub-modules can be provided and / or used.

[0056] In one example, the shared cache line protection module 150 includes one or more sub-modules (e.g., sub-modules 300 - 320) that are used in the shared cache line protection processing, as further described in reference Figures 4 - 6 Further described; Figure 5 An example of a non-manager process for processing a broadcast exclusive acquisition request according to one or more aspects of the present invention is described; and Figure 6 Another example of a non-manager process for processing a broadcast exclusive acquisition request according to one or more aspects of the present invention is described. In reference Figures 4 - 6 (And Figures 7A - 7F And Figure 8)In one or more of the described examples, the manager node is referred to as an intervention manager node, and the non-manager node is referred to as a non-intervention manager node. However, other example manager / non-manager nodes may be used.

[0057] In one or more examples, each process is performed by one or more of a computer (e.g., computer 101, other computers, etc.), a server (e.g., remote server 104, other servers), a node, a processor, and / or processing circuitry (e.g., processors and / or processing circuitry of processor group 110 or other processor groups). Although example computers, servers, nodes, processors, and / or processing circuitry are provided, additional, fewer, and / or other computers, servers, nodes, processors, and / or processing circuitry may be used for each process in the shared cache line protection process and / or the processes. Various alternatives are possible.

[0058] First referring to Figure 4 , in one example, the shared cache line protection process includes, for example, broadcast process 400, in which an exclusive acquisition request for a cache line is broadcast 410 from a node (e.g., a requesting node, herein referred to as an FEx (fetch exclusive) node) among multiple nodes of the shared cache line. According to one aspect of the present invention, the exclusive acquisition request includes a status indication that indicates whether a manager node among the multiple nodes of the shared cache line accepts or rejects the exclusive acquisition request. In this particular example, the status indication includes a manager rejection indicator (herein also referred to as an intervention manager (IM) rejection (REJ) indicator) and a manager acceptance indicator (herein also referred to as an intervention manager (IM) acceptance indicator), each indicator being set to an initial value (e.g., 0). However, in other examples, there may be additional, fewer, and / or other indicators and / or status indications that indicate whether a manager node (e.g., an intervention manager node) has accepted or rejected a request. Additionally, one or more indicators may be used to provide additional acceptance or rejection information and / or other information. Many variations are possible.

[0059] In one example, based on the broadcast, process 400 determines 420 whether the intervention manager node accepts the exclusive acquisition. For example, if the intervention manager node is not busy with another request for the cache line, the intervention manager node accepts the request. If the intervention manager node is busy with another request for the cache line, it rejects the request. The acceptance / rejection is obtained through this process (e.g., through signals, indicators, condition codes, return codes, etc.).

[0060] If process 400 determines that the intervention manager node has rejected the request, at least one status indicator is set. As an example, process 400 sets the intervention manager rejection indicator to the value selected by 430, for example 1, indicating that the request has been rejected by the intervention manager node, while the intervention manager acceptance indicator remains at or is reset to another selected value, for example 0, indicating that the exclusive request has not been accepted by the intervention node manager. The exclusive acquisition is re-broadcast 430 to the nodes including the intervention manager node with the updated indicator, and the process continues at query 420.

[0061] At query 420, if process 400 determines that the intervention manager node has accepted the exclusive acquisition request, then process 400 determines 440 whether the non-intervention manager node has rejected the exclusive acquisition request. If process 400 determines that the non-intervention manager node has rejected the exclusive acquisition request, the exclusive acquisition is re-broadcast 450 with at least one indicator (e.g., intervention manager acceptance) set to a selected value, for example 1, and the process continues at query 440. If process 400 determines 440 that the exclusive acquisition has not been rejected by the non-intervention manager node, the broadcast process is completed 460. Then the exclusive acquisition is accepted, thus allowing the requesting node to update the cache line and invalidate other copies of the cache line.

[0062] Refer to Figure 5 An example of processing a received exclusive acquisition request by a non-intervention manager node is described. In one example, non-intervention manager process 500 obtains (e.g., receives, is provided, acquires, etc.) 510 a remote exclusive acquisition request. For example, it receives a request broadcast from a node requesting an exclusive acquisition, and the request includes status indicators of the intervention manager node (e.g., IM acceptance and / or IM rejection).

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

[0064] Reference Figure 6 Another example of processing a received exclusive acquisition request by a non-intervention manager node is described, in which the computing environment includes multiple levels or scopes of intervention manager permissions. For example, the chip that holds the node may have intervention manager permissions, as well as a drawer that includes the chip and the system. As an example, intervention manager permissions are established for the acquired cache line, and the intervention manager permissions are associated with at least one node that has the cache line. Thus, a node on the chip may have chip-level intervention manager permissions for a selected cache line, a node in the drawer may have drawer-level intervention manager permissions for a selected cache line, a node in the system may have system-level intervention manager permissions for a selected cache line, and a node of the processor may have node-level (e.g., lowest level) intervention manager permissions for a selected cache line. A node may maintain one or more levels of intervention manager permissions for a selected cache line, and the selected cache line may have one or more intervention manager permissions (assigned to one or more nodes) associated with it. As an example, one or more permissions are indicated in the directory of the cache line.

[0065] In one example, the system node is considered to have the highest privilege, called the Global Intervention Manager privilege (GIM). In this example, an exclusive acquisition request indicates whether it has been accepted / rejected by the highest intervention manager privilege. Additionally, the exclusive acquisition request is for the intervention manager that finds its current scope before it moves up the scope. For example, a node with an intervention manager level lower than the current scope of the exclusive acquisition request can follow the non-intervention manager node behavior or not perform special behavior. An example of a lower intervention manager is a chip intervention manager node on a different chip than the chip from which the exclusive acquisition request originated. Other examples are possible. The intervention manager node that matches the current scope of the exclusive acquisition request does not reject the exclusive acquisition request based on its indication of an intervention manager rejection. These nodes can invalidate themselves or demote themselves to a non-intervention manager copy based on design details. For example, the chip intervention manager on the main chip of the exclusive acquisition request does not indefinitely reject the exclusive acquisition request because it will not have a chance to find the highest-level intervention manager node in a higher scope.

[0066] In one example, the non-intervention manager / lower intervention manager process 600 obtains (e.g., receives, is provided, fetches, etc.) 610 a remote exclusive acquisition request. For example, it receives a request broadcast from a node requesting an exclusive acquisition, and the request includes an indication of the state of the intervention manager node. In this example, the state indication is an indication of the intervention manager at the selected level or scope (e.g., the highest level or global level), and includes, for example, GIM acceptance and / or GIM rejection.

[0067] Based on the obtained request, process 600 determines 620 whether the node for which the request was obtained is an intervention manager node. For example, this determination is made by checking the cache directory entry for the requested cache line that indicates the (one or more) intervention managers for that cache line. If the node is an intervention manager node, then process 600 further determines 630 whether the exclusive acquisition request is from a scope for which the intervention manager node has privilege. This is determined by, for example, information in the exclusive acquisition request that indicates where in the system the request originated and based on the directory state of its own cache line. If the exclusive acquisition request is from a scope for which the intervention manager node has privilege, then the intervention manager node accepts 640 the request and invalidates the copy of its cache line.

[0068] In one example, if the node is not the intervention manager node 620, or the exclusive acquisition request is not from a scope for which the intervention manager node has permission 630, process 600 determines 650 whether, for example, the exclusive acquisition request has an indication that the global intervention manager (e.g., the highest-privilege intervention manager in a nested or multiple-level intervention manager) has accepted the exclusive acquisition request. In one example, this determination is made by checking a 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 has accepted the request, the non-intervention manager node or lower intervention manager node accepts 660 the request and invalidates its copy of the cache line. However, if the global intervention manager node has not accepted the request, process 600 further checks 670 whether the global intervention manager node has rejected the request. In one example, this determination is made by checking a GIM rejection indicator included in the request. If the rejection indicator is set to a selected value, such as 1, the global intervention manager node has rejected the request. If the global intervention manager node has rejected the request, the non-intervention manager node or lower intervention manager node rejects 680 the request and does not invalidate its copy of the cache line. Otherwise, the non-intervention manager node or lower intervention manager node accepts 660 the request and invalidates its copy of the cache line.

[0069] Reference Figures 7A - 7F An example of an illustrated description that describes aspects of the present invention. First reference Figure 7A, the computing environment 700 includes multiple nodes, including, for example, a node 702 that broadcasts an exclusive fetch (FEx) request, multiple nodes 704 and 708 that are non-intervention manager nodes during the broadcast, a node 710 that requests a read-only fetch (RO Fth) access to a cache line, and an intervention manager node 712 that is responsible for accepting / rejecting requests for the cache line including exclusive fetch requests and read-only fetch requests during the broadcast. In this example, the exclusive fetch request is broadcast 720, where the intervention manager reject indicator is set to a selected value, such as 0, indicating that the intervention manager has not rejected the request, and the intervention manager accept indicator is set to a selected value, such as 0, indicating that the intervention manager has not accepted the request. In this example, using this indication, nodes 704 - 708 accept the exclusive fetch request and invalidate (INV) the copy of the cache line, as shown on the right side of the arrow. Additionally, in this example, the node 712 acting as the intervention manager node accepts the read-only fetch request of node 710, and thus rejects the exclusive fetch request. In one example, based on accepting the read-only fetch request, node 712 demotes to a non-intervention manager node 712 (e.g., by changing the manager indication for the cache line in the cache directory entry), while node 710 becomes an intervention manager node 710 (e.g., by changing the manager indication for the cache line in the cache directory entry), also as shown on the right side of the arrow.

[0070] Since the intervention manager node does not accept the exclusive fetch, it is re-broadcast. In one example, referring to Figure 7B , node 702 re-broadcasts the exclusive fetch request, where the intervention manager reject indicator is set to a selected value such as 1, indicating that the intervention manager has rejected the request, and the intervention manager accept indicator is set to a selected value such as 0, indicating that the intervention manager has not accepted the request. Additionally, in this example, based on the previous broadcast ( Figure 7A ), nodes 704 and 708 continue to invalidate the copy of the cache line, node 710 is the intervention manager node, and node 712 remains as the non-intervention manager node. Additionally, based on previously accepting the exclusive fetch request and previously invalidating its copy of the cache line, node 706 is requesting a read-only fetch copy of the cache line. Based on the request, the intervention manager node (e.g., intervention manager node 710) that accepts the read-only request of node 706 rejects the exclusive fetch again. Thus, in one example, as shown on the right side of the arrow, the intervention manager node 710 becomes a non-intervention manager node, while node 706 becomes an intervention manager node.

[0071] Again, since the intervention manager node does not accept the exclusive fetch, it is re-broadcast. In one example, referring to Figure 7C, Node 702 re - broadcasts an exclusive acquisition request, where the intervention manager rejection indicator is set to a selected value such as 1, indicating that the intervention manager has rejected the request, and the intervention manager acceptance indicator is set to a selected value such as 0, indicating that the intervention manager has not accepted the request. Additionally, in this example, based on the previous broadcast, Node 704 continues to have an invalid copy of the cache line, Node 706 is the intervention manager node, and Nodes 710, 712 remain non - intervention manager nodes. Additionally, Node 708, which previously invalidated its copy of the cache line based on a previously accepted exclusive acquisition request, is requesting a read - only acquisition copy of the cache line. Based on the request, the exclusive acquisition is rejected by the intervention manager node 706, which accepts the read - only request of Node 708. Thus, as shown on the right side of the arrow, the intervention manager node 706 becomes a non - intervention manager node, and Node 708 becomes an intervention manager node.

[0072] Again, since the intervention manager node does not accept the exclusive acquisition, it is re - broadcast. In one example, referring to Figure 7D , Node 702 re - broadcasts an exclusive acquisition request, where the intervention manager rejection indicator is set to a selected value such as 1, indicating that the intervention manager has rejected the request, and the intervention manager acceptance indicator is set to a selected value such as 0, indicating that the intervention manager has not accepted the request. Additionally, in this example, based on the previous broadcast ( Figure 7C ), Node 708 is the intervention manager node, and Nodes 706, 710, 712 remain non - intervention manager nodes. Additionally, Node 704, which previously invalidated its copy of the cache line based on a previously accepted exclusive acquisition, requests a read - only acquisition copy of the cache line. Based on these requests, the exclusive acquisition is rejected by the intervention manager node 708, which accepts the read - only request of Node 704. Thus, as shown on the right side of the arrow, the intervention manager node 708 becomes a non - intervention manager node, and Node 704 becomes an intervention manager node.

[0073] Again, since the intervention manager node does not accept the exclusive acquisition, it is re - broadcast. In one example, referring to Figure 7E , Node 702 re - broadcasts an exclusive acquisition request, where the intervention manager rejection indicator is set to a selected value such as 1, indicating that the intervention manager has rejected the request, and the intervention manager acceptance indicator is set to a selected value such as 0, indicating that the intervention manager has not accepted the request. Additionally, in this example, based on the previous broadcast ( Figure 7D) Node 704 is an intervention manager node, and nodes 706, 708, 710, and 712 are non-intervention manager nodes. Based on an exclusive acquisition request and no contention on the line (e.g., no node requests the cache line), the intervention manager node 704 accepts the exclusive acquisition request. Thus, as shown on the right side of the arrow, the intervention manager node 704 invalidates its copy of the cache line and becomes a non-intervention manager node, and node 702 obtains the intervention manager node privilege for exclusive acquisition.

[0074] Based on the foregoing, the exclusive acquisition is re-broadcast. In one example, referring to Figure 7F , the intervention manager node 702, which now has the right to perform an exclusive acquisition, broadcasts an exclusive acquisition request, where the intervention manager acceptance indicator is set to a selected value such as 1 to indicate that the intervention manager has accepted the request. Based on this broadcast, the broadcast node 702 becomes an intervention manager node, node 704 continues to have an invalid copy of the cache line, and the non-intervention manager nodes 706 - 712 invalidate their copies of the cache line.

[0075] Figure 8 Another example of the broadcast is depicted in

[0076] where the computing environment 800 includes multiple nodes, including a broadcast node 802 that broadcasts an exclusive acquisition of a cache line, where the intervention manager rejection indicator is set to a selected value, e.g., 0, indicating that the intervention manager has not rejected the request. The multiple nodes also include four non-intervention manager nodes 804 - 810 and an intervention manager node 812. In this example, there is no contention for the cache line, and thus, the intervention manager node 812 accepts the broadcast and invalidates the cached copy of its cache line, as shown on the right side of the arrow. Additionally, node 802 becomes an intervention manager node and is able to obtain an exclusive acquisition. The other nodes (e.g., nodes 804 - 810) also accept the exclusive acquisition request and invalidate their copies of the cache line.

[0077] In one example, at the initial broadcast of an exclusive acquisition request, at least a majority (and possibly all) of the non-intervening manager nodes that receive the initial broadcast will invalidate their copies of the requested cache lines (some may be resource - starved). However, according to one or more aspects of the present invention, upon re - broadcast, non - intervening manager nodes are protected (i.e., the contended cache lines of these nodes) from being invalidated based on exclusive acquisitions rejected by the intervening manager nodes. The line is contended, and thus new non - intervening manager nodes are created after the initial broadcast of the exclusive acquisition request (e.g., obtaining a copy of the line in read - only mode). In the absence of one or more aspects of the present invention, by retrying the exclusive acquisition, these non - intervening manager nodes (e.g., copies of the cache lines) are repeatedly invalidated. These nodes must re - acquire the line, and further increase the contention, making it less likely that the exclusive acquisition will be accepted by the intervening manager. However, according to one or more aspects of the present invention, these non - intervening manager nodes do not accept the exclusive acquisition request until a predetermined event, e.g., it has been accepted by the intervening manager node. When the predetermined event occurs, e.g., the intervening manager node accepts the exclusive acquisition request, the non - intervening manager nodes accept the exclusive acquisition request and then invalidate their cache line copies.

[0078] In one or more aspects, an exclusive acquisition request to be broadcast to multiple nodes of a computing environment includes status information about the exclusive acquisition request. For example, the status information indicates whether the exclusive acquisition request has been accepted by the intervening manager node, whether it has been rejected by the intervening manager node, or neither. Non - intervening manager nodes use this information to decide whether to accept or reject the exclusive acquisition request. If the intervening manager node has rejected the exclusive acquisition request, then the non - intervening manager nodes also reject the exclusive acquisition request (at least until the intervening manager node accepts it). If the intervening manager node has accepted the exclusive acquisition request, then the non - intervening manager nodes may accept the exclusive acquisition request and invalidate their copies of the requested lines.

[0079] In one or more aspects, the rejection indication can also be refined to, for example, indicate rejection in selected circumstances (e.g., the intervening manager node is busy with the target line of the exclusive acquisition). As an example, this excludes the case where the intervening manager node rejects due to a lack of requested service resources.

[0080] In one or more aspects, the protection extends to a computing environment having multiple intervening manager scopes of authority.

[0081] In one or more aspects, processing within a computing environment is facilitated. A node of the computing environment obtains an exclusive acquisition request for a cache line that is shared at least by the node and a manager node of the computing environment. The exclusive acquisition request includes a status indication regarding the processing of the exclusive acquisition request by the manager node. The node processes the exclusive acquisition request based on the status indication regarding the processing of the exclusive acquisition request by the manager node included in the exclusive acquisition request.

[0082] By including the status indication in the exclusive acquisition request, the node can determine how to process the request. For example, the node can accept the request based on the status indication and thus invalidate its copy of the cache line; or the node can reject the request based on the status indication and thus not invalidate its copy of the cache line. This facilitates processing by performing invalidation of the cache line (e.g., based on the status indication) in selected cases rather than on every re-broadcast of the exclusive acquisition request. This enables a reduction in the number of cache line invalidations, thereby protecting the copies of the cache lines.

[0083] In one embodiment, the status indication includes an acceptance indicator that indicates whether the manager node has accepted the exclusive acquisition request. This facilitates processing by indicating to the node when the manager node has accepted the exclusive acquisition request. Thus, the node can also accept the exclusive acquisition request and invalidate its copy of the cache line rather than invalidating it on every retry of the exclusive acquisition. This saves processing cycles and reduces system memory access.

[0084] In one embodiment, the status indication further includes a rejection indicator that indicates whether the manager node has rejected the exclusive acquisition request. This facilitates processing by indicating to the node when the manager node has rejected the exclusive acquisition request, and thus, the node can also reject the exclusive acquisition request and not invalidate its copy of the cache line. This facilitates processing by reducing the number of times the node invalidates the cache line.

[0085] In one embodiment, the status indication includes a rejection indicator that indicates whether the manager node has rejected the exclusive acquisition request. This facilitates processing by indicating to the node when the manager node has rejected the exclusive acquisition request, and thus, the node can also reject the exclusive acquisition request and not invalidate its copy of the cache line. This facilitates processing by reducing the number of times the node invalidates the cache line.

[0086] In one embodiment, the rejection indicator further indicates the reason for rejecting the exclusive acquisition request. This facilitates processing by indicating to the node when the manager node has rejected the exclusive acquisition request for a selected reason, and thus, the node can reject the exclusive acquisition request and not invalidate its copy of the cache line. This facilitates processing by reducing the number of times the node invalidates the cache line.

[0087] In one embodiment, the process includes determining, based on a rejection indicator, that a manager node has rejected an exclusive acquisition request for a selected reason. Based on determining that the manager node has rejected the exclusive acquisition request for the selected reason, the node rejects the exclusive acquisition request. By using the rejection indicator provided with the exclusive acquisition request, the node can determine how to process the request. For example, the node can reject the request based on the rejection indicator and thus not invalidate its copy of the cache line. This facilitates processing by not performing cache line invalidations in some cases, such as when the manager node rejects the exclusive acquisition request for the selected reason. This enables a reduction in the number of cache line invalidations, thereby protecting the copy of the cache line.

[0088] In one embodiment, the process includes determining, based on a status indicator, that a manager node has rejected an exclusive acquisition request. Based on determining that the manager node has rejected the exclusive acquisition request, the node rejects the exclusive acquisition request. By using the status indicator provided with the exclusive acquisition request, the node can determine how to process the request. For example, based on the status indicator indicating that the manager node has rejected the exclusive acquisition request, the node can reject the request and thus not invalidate its copy of the cache line. This facilitates processing by not performing cache line invalidations in some cases, such as based on the rejection of the exclusive acquisition request by the manager node. This enables a reduction in the number of cache line invalidations, thereby protecting the copy of the cache line.

[0089] In one embodiment, a computing environment includes multiple nodes to receive exclusive acquisition requests. Based on determining that a manager node has rejected an exclusive acquisition request, the rejection is performed by the multiple nodes that receive the exclusive acquisition request. By using the status indicator provided with the exclusive acquisition request, the node can determine how to process the request. For example, the node can reject the request based on the status indicator indicating that the manager node has rejected the exclusive acquisition request and thus not invalidate their copies of the cache line. This facilitates processing by not performing invalidations of the copies of the cache line in some cases, such as based on the rejection of the exclusive acquisition request by the manager node. This enables a reduction in the number of cache line invalidations, thereby protecting the copy of the cache line.

[0090] In one embodiment, the process includes determining, based on a status indicator, that a manager node has accepted an exclusive acquisition request. Based on determining that the manager node has accepted the exclusive acquisition request, the node accepts the exclusive acquisition request. By using the status indicator to determine that the manager node has accepted the exclusive acquisition request, the node can also accept the exclusive acquisition request and invalidate its copy of the cache line, rather than invalidating it on each retry of the exclusive acquisition. This saves processing cycles and reduces system memory access.

[0091] In one embodiment, the computing environment includes multiple levels of manager nodes, and the status indication on which the processing is based is the status indication of a selected manager node at a selected level among the multiple levels. By including an appropriate status indication in an exclusive acquisition request, a node can determine how to process the request. For example, a node can accept the request based on the status indication and thus invalidate a copy of its cache line; or a node can reject the request based on the status indication and thus not invalidate a copy of its cache line. This facilitates processing by performing invalidation of cache lines in selected cases (e.g., based on the status indication) rather than invalidating at each rebroadcast of the exclusive acquisition request. This enables a reduction in the number of cache line invalidations, thereby protecting the copies of cache lines.

[0092] Although various examples are provided herein, other examples / embodiments are possible. For example, other cases for selective rejection can be provided. Additionally, compared to herein, additional, fewer, and / or other nodes can receive the broadcast. Further, the exclusive acquisition request can include more, fewer, and / or other indicators than those described herein, and / or the indicators can provide additional information. Many variations are possible.

[0093] One or more aspects of the present invention relate to computer technology and facilitate processing within a computer, thereby improving its performance. For example, cache invalidations are reduced, access to memory and use of computer resources are reduced, and processing and / or processing speed within a processor / computer / computing environment are improved. Processing within a processor, computer system, and / or computing environment is improved.

[0094] Other aspects, variations, and / or embodiments are possible.

[0095] In addition to the above, one or more aspects can be provided, deployed, managed, serviced, etc. by a service provider that provides customer environment management. For example, a service provider can create, maintain, support, etc. computer code and / or computer infrastructure that executes one or more aspects for one or more customers. In return, the service provider can receive payment from the customer, for example, under a subscription and / or fee agreement. Additionally or alternatively, the service provider can receive payment from selling advertising content to one or more third parties.

[0096] In one aspect, an application can be deployed to execute one or more embodiments. As an example, the deployment of an application includes providing a computer infrastructure operable to execute one or more embodiments.

[0097] As another aspect, a computing infrastructure can be deployed, including integrating computer-readable code into a computing system, where the code combined with the computing system is capable of executing one or more embodiments.

[0098] In another aspect, a process for integrating a computing infrastructure can be provided, including integrating computer-readable code into a computer system. The computer system includes a computer-readable medium, where the computer medium includes one or more embodiments. The code combined with the computer system is capable of executing one or more embodiments.

[0099] Although various embodiments have been described above, these are merely examples. For instance, other indicators and / or broadcast requests can be used. Many variations are possible.

[0100] Various aspects and embodiments are described herein. Additionally, many variations are possible without departing from the scope of the aspects of the present invention. It should be noted that unless otherwise inconsistent, each aspect or feature described and / or claimed herein, and its variations, can be combined with any other aspect or feature.

[0101] The terms used herein are for the purpose of describing particular embodiments only and are not intended to be limiting. As used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the terms "comprises" and / or "comprising", when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0102] If there are, all corresponding structures, materials, acts, and equivalents of the means or step-plus-function elements in the following claims are intended to include any structure, material, or act for performing the function in combination with other claimed elements specifically claimed. The description of one or more embodiments has been presented for purposes of illustration and description, but the description is not intended to be exhaustive or limited to the disclosed forms. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiments were chosen and described in order to best explain the various aspects and practical applications, and to enable others of ordinary skill in the art to understand the various embodiments with various modifications suitable for the particular uses contemplated.

Claims

1. A computer program product for facilitating processing within a computing environment, the computer program product comprising: one or more computer-readable storage media and program instructions jointly stored on the one or more computer-readable storage media, the program instructions for performing a method, the method comprising: obtaining, by a node of the computing environment, an exclusive acquisition request for a cache line shared at least by the node and a manager node of the computing environment, the exclusive acquisition request including a status indication regarding the processing of the exclusive acquisition request by the manager node; and processing, by the node, the exclusive acquisition request based on the status indication regarding the processing of the exclusive acquisition request by the manager node included in the exclusive acquisition request.

2. The computer program product according to claim 1, wherein the status indication includes an acceptance indicator that indicates whether the manager node has accepted the exclusive acquisition request.

3. The computer program product according to claim 2, wherein the status indication further includes a rejection indicator that indicates whether the manager node has rejected the exclusive acquisition request.

4. The computer program product according to claim 1, wherein the status indication includes a rejection indicator that indicates whether the manager node has rejected the exclusive acquisition request.

5. The computer program product according to claim 4, wherein the rejection indicator further indicates a reason for rejecting the exclusive acquisition request.

6. The computer program product according to claim 5, wherein the processing comprises: determining, based on the rejection indicator, that the manager node has rejected the exclusive acquisition request for a selected reason; and rejecting, by the node, the exclusive acquisition request based on determining that the manager node has rejected the exclusive acquisition request for the selected reason.

7. The computer program product according to claim 1, wherein the processing comprises: determining, based on the status indication, that the manager node has rejected the exclusive acquisition request; and rejecting, by the node, the exclusive acquisition request based on determining that the manager node has rejected the exclusive acquisition request.

8. The computer program product according to claim 7, wherein the computing environment includes a plurality of nodes for receiving the exclusive acquisition request, and wherein the rejection is performed by the plurality of nodes that receive the exclusive acquisition request based on determining that the manager node has rejected the exclusive acquisition request.

9. The computer program product according to claim 1, wherein the processing comprises: determining, based on the status indication, that the manager node has accepted the exclusive acquisition request; and accepting, by the node, the exclusive acquisition request based on determining that the manager node has accepted the exclusive acquisition request.

10. The computer program product according to claim 1, wherein the computing environment includes multiple levels of manager nodes, and wherein the status indication on which the processing is based is the status indication of a selected manager node at a selected level among the multiple levels.

11. A computer system for facilitating processing within a computing environment, the computer system comprising: a memory; and a processor in communication with the memory, wherein the computer system is configured to execute a method, the method comprising: obtaining, by a node of the computing environment, an exclusive acquisition request for a cache line shared at least by the node and a manager node of the computing environment, the exclusive acquisition request including a status indication regarding the processing of the exclusive acquisition request by the manager node; and processing, by the node, the exclusive acquisition request based on the status indication regarding the processing of the exclusive acquisition request by the manager node included in the exclusive acquisition request.

12. The computer system according to claim 11, wherein the status indication includes an acceptance indicator that indicates whether the manager node has accepted the exclusive acquisition request.

13. The computer system according to claim 11, wherein the status indication includes a rejection indicator that indicates whether the manager node has rejected the exclusive acquisition request.

14. The computer system according to claim 11, wherein the processing includes: determining, based on the status indication, that the manager node has rejected the exclusive acquisition request; and rejecting, by the node, the exclusive acquisition request based on determining that the manager node has rejected the exclusive acquisition request.

15. The computer system according to claim 11, wherein the processing includes: determining, based on the status indication, that the manager node has accepted the exclusive acquisition request; and accepting, by the node, the exclusive acquisition request based on determining that the manager node has accepted the exclusive acquisition request.

16. A computer-implemented method for facilitating processing within a computing environment, the computer-implemented method comprising: obtaining, by a node of the computing environment, an exclusive acquisition request for a cache line shared at least by the node and a manager node of the computing environment, the exclusive acquisition request including a status indication regarding the processing of the exclusive acquisition request by the manager node; and processing, by the node, the exclusive acquisition request based on the status indication regarding the processing of the exclusive acquisition request by the manager node included in the exclusive acquisition request.

17. The computer-implemented method according to claim 16, wherein the status indication includes an acceptance indicator that indicates whether the manager node has accepted the exclusive acquisition request.

18. The computer-implemented method according to claim 16, wherein the status indication includes a rejection indicator that indicates whether the manager node has rejected the exclusive acquisition request.

19. The computer-implemented method according to claim 16, wherein the processing comprises: determining, based on the status indication, that the manager node has rejected the exclusive acquisition request; and rejecting, by the node, the exclusive acquisition request based on determining that the manager node has rejected the exclusive acquisition request.

20. The computer-implemented method according to claim 16, wherein the processing comprises: determining, based on the status indication, that the manager node has accepted the exclusive acquisition request; and accepting, by the node, the exclusive acquisition request based on determining that the manager node has accepted the exclusive acquisition request.