Hardware-enforced control of access to memory within a computer using hardware-enforced semaphores and other similar, hardware-enforced serialization and sequencing mechanisms
First Claim
1. A method for protecting access to a memory region associated with a protection key within a computer system, the method comprising:
- providing a hardware-enforced semaphore to executing entities that may access the memory region;
when an executing entity obtains access to the memory region by calling an access-granting routine associated with the semaphore, inserting the protection key into a protection-key register; and
when an executing entity relinquishes access to the memory region by calling an access-grant-removing routine associated with the semaphore, removing the protection key from the protection-key register.
2 Assignments
0 Petitions
Accused Products
Abstract
Method and system for providing hardware-enforced synchronization and serialization mechanisms, such as semaphores, to allow for control of access to memory regions within a computer system. In addition to the traditional semaphore protocol, hardware enforced semaphores are associated with memory regions and with protection keys selected from a pool of protection keys that control access to those memory regions. Hardware-enforced semaphores control insertion and deletion of protection keys from protection-key registers and internal data structures in order to enforce access grants provided by the semaphore protocol.
139 Citations
27 Claims
-
1. A method for protecting access to a memory region associated with a protection key within a computer system, the method comprising:
-
providing a hardware-enforced semaphore to executing entities that may access the memory region;
when an executing entity obtains access to the memory region by calling an access-granting routine associated with the semaphore, inserting the protection key into a protection-key register; and
when an executing entity relinquishes access to the memory region by calling an access-grant-removing routine associated with the semaphore, removing the protection key from the protection-key register. - View Dependent Claims (2, 3, 4)
-
-
5. A method for hardware-enforcing access granted to a memory region by a serialization-and-sequencing software device, the method comprising:
-
during granting of access by the serialization-and-sequencing software device, inserting a protection key associated with the memory region into a protection-key register; and
during revocation of a grant of access by the serialization-and-sequencing software device, removing a protection key associated with the memory region into from protection-key register. - View Dependent Claims (6, 7, 8)
-
-
9. A hardware-enforced serialization-and-sequencing software device for protecting a region of memory, the serialization-and-sequencing software device comprising:
-
an access lock for serializing access to the serialization-and-sequencing software device;
an associated access granting routine that enables hardware-level access to the region of memory by a requesting executing entity; and
an associated access relinquishing routine that disables hardware-level access to the region of memory by a requesting executing entity. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A hardware-enforced serialization-and-sequencing software device for protecting a region of memory, the serialization-and-sequencing software device comprising:
-
a means for serializing access to the serialization-and-sequencing software device;
a means for enabling access to the region of memory for an executing entity requesting access to the region of memory; and
a means for disabling access to the region of memory for an executing entity requesting relinquishment of access to the region of memory. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A method for protecting access to a memory region associated with a protection key within a computer system, the method comprising:
-
providing a hardware-enforced semaphore to executing entities that may access the memory region;
when an executing entity obtains access to the memory region by calling an access-granting routine associated with the semaphore, when the protection key already resides in a protection-key register, validating the protection-key register, and when the protection key does not already reside in a protection-key register, inserting the protection key into a protection-key register; and
when an executing entity relinquishes access to the memory region by calling an access-grant-removing routine associated with the semaphore, invalidating the protection-key register that contains the protection key.
-
Specification