1. A method of issuing a load instruction in a program to a data cache, the method comprising: determining at a load and store logic unit whether there are any unresolved store instructions in a store buffer that are older than the load instruction; in response to determining that there is at least one unresolved store instruction in the store buffer older than the load instruction, determining at the load and store logic unit whether the oldest unresolved store instruction in the store buffer is within a speculation window for the load instruction; and in response to determining that the oldest unresolved store instruction is within the speculation window for the load instruction, speculatively issuing the load instruction to the data cache.