IP Library › Granted Patent US 10,152,325
Granted Patent B2
US 10,152,325 · App. 15/426,963 · Granted Dec 11, 2018

Instruction and logic to provide pushing buffer copy and store functionality

Inventors: Christopher J. Hughes (Santa Clara, CA); Changkyu Kim (San Jose, CA); Daehyun Kim (San Jose, CA); Victor W. Lee (Santa Clara, CA); Jong Soo Park (Santa Clara, CA)
Assignee: Intel Corporation
G06F9/30043G06F9/30036G06F9/30185G06F9/3834G06F9/3851G06F9/3887G06F12/084G06F12/0815G06F12/0875G06F9/544G06F2212/452G06F2212/60G06F2212/621Y02D10/13
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,152,325
App. No.
15/426,963
Granted
Dec 11, 2018
Kind
B2
Abstract

Instructions and logic provide pushing buffer copy and store functionality. Some embodiments include a first hardware thread or processing core, and a second hardware thread or processing core, a cache to store cache coherent data in a cache line for a shared memory address accessible by the second hardware thread or processing core. Responsive to decoding an instruction specifying a source data operand, said shared memory address as a destination operand, and one or more owner of said shared memory address, one or more execution units copy data from the source data operand to the cache coherent data in the cache line for said shared memory address accessible by said second hardware thread or processing core in the cache when said one or more owner includes said second hardware thread or processing core.

Claims (26)

1. A processor comprising:

a cache to store cache coherent data in a cache line for a shared memory address accessible by a second hardware thread;

a decode stage to decode a first instruction for execution by a first hardware thread, the first instruction specifying a source data operand, said shared memory address as a destination operand, and one or more owner of said shared memory address; and

one or more execution units, responsive to the decoded first instruction, to:

copy data from the source data operand to the cache line for said shared memory address accessible by said second hardware thread in the cache when said one or more owner includes said second hardware thread.

2. The processor of claim 1 , wherein the first instruction explicitly specifies said shared memory address as a destination operand.

3. The processor of claim 1 , wherein the first instruction implicitly specifies said shared memory address as a destination operand.

4. The processor of claim 3 , wherein the first instruction implicitly specifies a destination operand as being in the registers ES:[(E)DI] or in the register [RDI].

5. The processor of claim 1 , wherein the first instruction explicitly specifies said source data operand.

6. The processor of claim 5 , wherein the first instruction explicitly specifies said source data operand as a vector register.

7. The processor of claim 6 , wherein the first instruction is a pushing buffer store instruction.

8. The processor of claim 5 , wherein the first instruction explicitly specifies said source data operand as a cacheable memory address.

9. The processor of claim 1 , wherein the first instruction implicitly specifies said source data operand.

10. The processor of claim 9 , wherein the first instruction is a pushing buffer copy instruction.

11. The processor of claim 9 , wherein the first instruction implicitly specifies said source data operand as being in the registers DS:[(E)SI] or in the register [RSI].

12. The processor of claim 1 , wherein the first instruction is a pushing buffer copy instruction.

13. The processor of claim 1 , wherein the corresponding vector elements from the vector source operand to adjacent sequential element locations starting at the vector destination offset location only until the most significant vector destination element location is filled.

14. A method comprising:

decoding a first instruction for execution by a first hardware thread, the first instruction specifying a source data operand, a shared memory address as a destination operand, and one or more owner of said shared memory address; and

responsive to decoding the first instruction, copying data from the source data operand to a cache line for said shared memory address accessible by a second hardware thread in the cache when said one or more owner includes said second hardware thread.

15. The method of claim 14 , wherein the first instruction is also specifying a cache level for the destination operand.

16. The method of claim 14 , wherein the first instruction explicitly specifies said shared memory address as a destination operand.

17. The method of claim 14 , wherein the first instruction implicitly specifies a destination operand as being in the registers ES:[(E)DI] or in the register [RDI].

18. The method of claim 14 , wherein the first instruction explicitly specifies said source data operand as a vector register.

19. The method of claim 14 , wherein said source data operand is a same shared memory address as the destination operand.

20. The method of claim 14 , wherein the first instruction implicitly specifies said source data operand as being in the registers DS:[(E)SI] or in the register [RSI].

Continuity (2)
Continuation 13687918 · Nov 28, 2012
Related Publication 20170242700A1 · Aug 24, 2017