Memory transaction having implicit ordering effects
US-2015370500-A1 · Dec 24, 2015 · US
US9317290B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9317290-B2 |
| Application number | US-201313735438-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 7, 2013 |
| Priority date | May 4, 2007 |
| Publication date | Apr 19, 2016 |
| Grant date | Apr 19, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Circuits, methods, and apparatus that provide parallel execution relationships to be included in a function call or other appropriate portion of a command or instruction in a sequential programming language. One example provides a token-based method of expressing parallel execution relationships. Each process that can be executed in parallel is given a separate token. Later processes that depend on earlier processes wait to receive the appropriate token before being executed. In another example, counters are used in place to tokens to determine when a process is completed. Each function is a number of individual functions or threads, where each thread performs the same operation on a different piece of data. A counter is used to track the number of threads that have been executed. When each thread in the function has been executed, a later function that relies on data generated by the earlier function may be executed.
Opening claim text (preview).
What is claimed is: 1. A method of processing data comprising: receiving a first command instructing a first process to be executed on a processing circuit, the first command including a first indication that may be used to indicate when the first process has completed execution; receiving a second command instructing a second process to be executed on the processing circuit, the second command including a second indication that may be used to indicate when the second process has completed execution; receiving a third command instructing a third process to be executed on the processing circuit, the third command instructing the third process not to begin until the first indication and the second indication have been received, wherein data generated by the third process is stored in a memory, and wherein the first command, the second command, and the third command are compatible with a sequential programming language. 2. The method of claim 1 wherein the first indication is a token. 3. The method of claim 1 wherein the first indication is a count provided by a counter. 4. The method of claim 1 wherein the first command is compatible with a C++ programming language. 5. The method of claim 1 wherein the processing circuit comprises a single-instruction multiple-data processor. 6. The method of claim 1 wherein the processing circuit comprises a plurality of single-instruction multiple-data processors. 7. The method of claim 1 further comprising: receiving one or more commands to use the stored data to generate display data and to display the display data. 8. An integrated circuit comprising: a processing circuit capable of executing at least a first and a second process; a first counter configured to track a number of times the first process has been executed on the processing circuit; a second counter configured to track a number of times the second process has been executed on the processing circuit; and a memory interface circuit to receive a plurality of instructions from a command buffer in a memory, wherein one of the plurality of instructions prevent execution of a third process until the first counter reaches a first number and the second counter reaches a second number, and wherein the plurality of instructions are compatible with a sequential programming language. 9. The integrated circuit of claim 8 wherein the plurality of instructions are compatible with a C++ programming language. 10. The integrated circuit of claim 8 wherein the processing circuit comprises a single-instruction multiple-data processor. 11. The integrated circuit of claim 8 wherein the processing circuit comprises a plurality of single-instruction multiple-data processors. 12. The integrated circuit of claim 11 wherein the integrated circuit is a graphics processing integrated circuit. 13. A method of processing data comprising: receiving a first command to execute a first process a first number of times on a processing circuit; receiving a second command to execute a second process a second number of times on the processing circuit; tracking a number of times the first process has been executed on the processing circuit; tracking a number of times the second process has been executed on the processing circuit; determining that the first process has been executed the first number of times on the processing circuit; determining that the second process has been executed the second number of times on the processing circuit; receiving a third command to execute, after the first process has been executed the first number of times and the second process has been executed the second number of times, a third process a third number of times on the processing circuit; and then receiving one or more additional commands to use data generated by the third process to generate display data and to display the display data, wherein the first, second, and third commands are compatible with a sequential programming language. 14. The method of claim 13 wherein the sequential programming language is a C based programming language. 15. The method of claim 13 wherein the sequential programming language is a C++ programming language. 16. The method of claim 13 wherein the processing circuit comprises a plurality of single-instruction multiple-data processors.
Related publications grouped by family.
Answers are generated from the same data shown on this page.