RUNTIME ADDRESS DISAMBIGUATION IN ACCELERATION HARDWARE
First Claim
1. An integrated circuit comprising:
- a processor to execute instructions of a program and to interact with a memory;
acceleration hardware to execute a sub-program corresponding to the instructions;
a set of input queues coupled to the acceleration hardware and to the memory, the set of input queues comprising;
a store address queue to receive, from the acceleration hardware, a first address of the memory, the first address associated with a store operation; and
a store data queue to receive, from the acceleration hardware, first data to be stored at the first address of the memory;
a completion queue to buffer response data for a load operation; and
a disambiguator circuit coupled to the set of input queues and the completion queue, the disambiguator circuit to, responsive to determining the load operation that succeeds the store operation has an address conflict with the first address, copy the first data from the store data queue into the completion queue for the load operation.
2 Assignments
0 Petitions
Accused Products
Abstract
An integrated circuit includes a processor to execute instructions and to interact with memory, and acceleration hardware, to execute a sub-program corresponding to instructions. A set of input queues includes a store address queue to receive, from the acceleration hardware, a first address of the memory, the first address associated with a store operation and a store data queue to receive, from the acceleration hardware, first data to be stored at the first address of the memory. The set of input queues also includes a completion queue to buffer response data for a load operation. A disambiguator circuit, coupled to the set of input queues and the memory, is to, responsive to determining the load operation, which succeeds the store operation, has an address conflict with the first address, copy the first data from the store data queue into the completion queue for the load operation.
-
Citations
24 Claims
-
1. An integrated circuit comprising:
-
a processor to execute instructions of a program and to interact with a memory; acceleration hardware to execute a sub-program corresponding to the instructions; a set of input queues coupled to the acceleration hardware and to the memory, the set of input queues comprising; a store address queue to receive, from the acceleration hardware, a first address of the memory, the first address associated with a store operation; and a store data queue to receive, from the acceleration hardware, first data to be stored at the first address of the memory; a completion queue to buffer response data for a load operation; and a disambiguator circuit coupled to the set of input queues and the completion queue, the disambiguator circuit to, responsive to determining the load operation that succeeds the store operation has an address conflict with the first address, copy the first data from the store data queue into the completion queue for the load operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A memory ordering circuit comprising:
-
a memory interface coupled to a memory, the memory to store data corresponding to instructions being executed for a program; an operations queue coupled to the memory interface, the operations queue to buffer memory operations corresponding to the instructions; a set of input queues coupled to the memory interface and to acceleration hardware, which is to execute a sub-program corresponding to the instructions, the set of input queues comprising; a store address queue to receive, from the acceleration hardware, a first address of the memory for a store operation of the memory operations; and a store data queue to receive, from the acceleration hardware, first data to be stored at the first address in completion of the store operation; a disambiguator circuit coupled to the set of input queues, the disambiguator circuit including a disambiguator queue; and an operations manager circuit coupled to the set of input queues and the disambiguator circuit, the operations manager circuit to; schedule the store operation to issue to the memory upon receipt of the first address; and store an entry in the disambiguator queue, the entry comprising the first address and a pointer into the store data queue to a location at which to receive the first data for the store operation. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method comprising:
-
queuing memory operations in an operations queue of a memory ordering circuit, the memory operations directed towards a memory in association with acceleration hardware; receiving, into a load address queue of a set of input queues, a load address received from the acceleration hardware for a load operation of the memory operations; determining, by a disambiguator circuit, the load address matches a store address buffered in a store address queue for a store operation of the memory operations, the store operation preceding the load operation according to program order; and marking, by the memory ordering circuit and in response to the determining, the load operation as a store forward with a pointer to a location, within a store data queue of the set of input queues, for reception of data to complete the store operation and the load operation. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification