Enabling hardware transactional memory to work more efficiently with readers that can tolerate stale data
First Claim
Patent Images
1. A system, comprising:
- one or more processors;
a memory coupled to said one or more processors;
control logic implementing a hardware transactional memory (HTM) subsystem using said memory, said control logic being operable to perform operations that prevent a concurrent HTM transaction from aborting due to a concurrent reader, said operations comprising;
receiving a load request from said concurrent reader;
determining whether said load request signifies that said concurrent reader can tolerate pre-transaction data;
determining whether said load request comprises data that has been designated for update by said concurrent HTM transaction;
marking a cache line containing said data as pre-transaction data and returning said data to said concurrent reader if said load request signifies that said concurrent reader can tolerate pre-transaction data and comprises data that has been designated for update by said concurrent HTM transaction; and
if said load request comprises data that has been designated for update by said concurrent HTM transaction, aborting said concurrent HTM transaction in response to said load request if said cache line is not marked as containing pre-transaction data, and proceeding with said concurrent HTM transaction notwithstanding said load request if said cache line is marked as containing pre-transaction data.
2 Assignments
0 Petitions
Accused Products
Abstract
A technique for enabling hardware transactional memory (HTM) to work more efficiently with readers that can tolerate stale data. In an embodiment, a pre-transaction load request is received from one of the readers, the pre-transaction load request signifying that the reader can tolerate pre-transaction data. A determination is made whether the pre-transaction load request comprises data that has been designated for update by a concurrent HTM transaction. If so, a cache line containing the data is marked as pre-transaction data. The concurrent HTM transaction proceeds without aborting notwithstanding the pre-transaction load request.
-
Citations
14 Claims
-
1. A system, comprising:
-
one or more processors; a memory coupled to said one or more processors; control logic implementing a hardware transactional memory (HTM) subsystem using said memory, said control logic being operable to perform operations that prevent a concurrent HTM transaction from aborting due to a concurrent reader, said operations comprising; receiving a load request from said concurrent reader; determining whether said load request signifies that said concurrent reader can tolerate pre-transaction data; determining whether said load request comprises data that has been designated for update by said concurrent HTM transaction; marking a cache line containing said data as pre-transaction data and returning said data to said concurrent reader if said load request signifies that said concurrent reader can tolerate pre-transaction data and comprises data that has been designated for update by said concurrent HTM transaction; and if said load request comprises data that has been designated for update by said concurrent HTM transaction, aborting said concurrent HTM transaction in response to said load request if said cache line is not marked as containing pre-transaction data, and proceeding with said concurrent HTM transaction notwithstanding said load request if said cache line is marked as containing pre-transaction data. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product, comprising:
-
one or more machine-useable storage media; control logic provided by said one or more media to implement a hardware transactional memory (HTM) subsystem, said control logic being operable to perform operations that prevent a concurrent HTM transaction from aborting due to a concurrent reader, said operations comprising; receiving a load request from said concurrent reader; determining whether said load request signifies that said concurrent reader can tolerate pre-transaction data; determining whether said pre-transaction load request comprises data that has been designated for update by said concurrent HTM transaction; marking a cache line containing said data as pre-transaction data and returning said data to said concurrent reader if said load request signifies that said concurrent reader can tolerate pre-transaction data and comprises data that has been designated for update by said concurrent HTM transaction; and if said load request comprises data that has been designated for update by said concurrent HTM transaction, aborting said concurrent HTM transaction in response to said load request if said cache line is not marked as containing pre-transaction data, and proceeding with said concurrent HTM transaction notwithstanding said load request if said cache line is marked as containing pre-transaction data. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification