A disambiguation-free out of order load store queue method performed in a processor, in which dispatched load and store addresses are not disambiguated with respect to entries in the store queue or the load queue, the method comprising: implementing a memory resource that can be accessed by a plurality of asynchronous cores; implementing a store retirement buffer, wherein stores from a store queue retire to the store retirement buffer and are arranged therein in original program order; implementing speculative execution, wherein results of speculative execution can be saved in the store retirement buffer as a speculative state; upon dispatch of a subsequent load from a load queue, searching the store retirement buffer for address matching; in cases where there are a plurality of address matches, locating a correct forwarding entry by scanning in the order of the original program order the store retirement buffer for a first match, and forwarding data from the first match to the subsequent load, wherein upon forwarding data from the first match to the subsequent load, the first match store and the subsequent load are paired and a corresponding pairing relationship is recorded in a prediction table; as loads are dispatched, checking the prediction table to see if they are paired with a corresponding store, wherein if the load is paired and that particular store has already dispatched, the load will forward from that store queue entry number as recorded in the prediction table, wherein if the store has not been dispatched yet, then the load will register its load queue entry number in the prediction table and will mark itself in the load queue to wait for the store data to be forwarded, wherein when the store is dispatched later, checking the prediction table to obtain the load queue entry number and forward to that load; and once speculative outcomes are known, retiring the speculative state to memory. implementing a memory resource that can be accessed by a plurality of asynchronous cores; implementing a store retirement buffer, wherein stores from a store queue retire to the store retirement buffer and are arranged therein in original program order; implementing speculative execution, wherein results of speculative execution can be saved in the store retirement buffer as a speculative state; upon dispatch of a subsequent load from a load queue, searching the store retirement buffer for address matching; in cases where there are a plurality of address matches, locating a correct forwarding entry by scanning in the order of the original program order the store retirement buffer for a first match, and forwarding data from the first match to the subsequent load, wherein upon forwarding data from the first match to the subsequent load, the first match store and the subsequent load are paired and a corresponding pairing relationship is recorded in a prediction table; as loads are dispatched, checking the prediction table to see if they are paired with a corresponding store, wherein if the load is paired and that particular store has already dispatched, the load will forward from that store queue entry number as recorded in the prediction table, wherein if the store has not been dispatched yet, then the load will register its load queue entry number in the prediction table and will mark itself in the load queue to wait for the store data to be forwarded, wherein when the store is dispatched later, checking the prediction table to obtain the load queue entry number and forward to that load; and once speculative outcomes are known, retiring the speculative state to memory.