Patentable/Patents/US-9632783
US-9632783

Operand conflict resolution for reduced port general purpose register

PublishedApril 25, 2017
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Techniques are described for determining whether execution of an instruction would require reading more values from a memory cell of a general purpose register (GPR) than a read port of the memory cell would allow. In such a case, the techniques may store, prior to execution of the instruction, one or more values from the memory cell in a separate conflict queue. During execution of the instruction to implement an operation defined by the instruction, one value that is an operand of the operation would be read from the memory cell and another value that is an operand of the operation other would be read from the conflict queue.

Patent Claims
20 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method of processing values, the method comprising: determining whether execution of an instruction would cause simultaneous reading of more values from a first memory cell of a plurality of memory cells of a general purpose register (GPR) than a read port of the first memory cell can output, wherein values stored in the first memory cell cannot be accessed via any of the other memory cells of the GPR; prior to execution of the instruction, storing one or more values stored in the first memory cell in a conflict queue separate from the GPR based on the determination that execution of the instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output; modifying the instruction by including a sub-instruction in the instruction to read at least one value from a second, different memory cell of the GPR, wherein the at least one value from the second memory cell of the GPR is an operand for a subsequent instruction; executing the modified instruction to implement an operation that uses at least one value from the first memory cell and at least one value from the conflict queue as operands, wherein executing the modified instruction includes executing the sub-instruction for reading the at least one value from the second memory cell of the GPR; storing the at least one value from the second memory cell of the GPR in a pre-fetch queue of a processing element; and executing the subsequent instruction based on the at least one value stored in the pre-fetch queue of the processing element.

Plain English Translation

A method for processing values in a GPU involves checking if executing an instruction requires reading more values from a single memory cell within a general-purpose register (GPR) than its read port allows. If so, before execution, one or more values from that memory cell are copied to a separate "conflict queue." The original instruction is modified to include a sub-instruction that reads another operand from a *different* memory cell within the GPR. During execution, the modified instruction reads one operand from the original memory cell and another from the conflict queue. The operand read by the sub-instruction is stored in a pre-fetch queue and used later by a subsequent instruction. This avoids read port contention. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 2

Original Legal Text

2. The method of claim 1 , further comprising: reading the at least one value from the first memory cell and the at least one value from the conflict queue during execution of the modified instruction.

Plain English Translation

The method described above (checking for read conflicts in a GPU register, copying values to a conflict queue, modifying the instruction to read from another register, and using a pre-fetch queue) also includes reading the value(s) from both the original memory cell in the register and the value(s) from the conflict queue *during* the execution of the modified instruction. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 3

Original Legal Text

3. The method of claim 1 , further comprising: reading from the pre-fetch queue to implement an operation defined by the subsequent instruction when executing the subsequent instruction.

Plain English Translation

The method described above (checking for read conflicts in a GPU register, copying values to a conflict queue, modifying the instruction to read from another register, and using a pre-fetch queue) includes reading the pre-fetched value(s) from the pre-fetch queue when the subsequent instruction is executed to perform the operation defined by that subsequent instruction. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 4

Original Legal Text

4. The method of claim 1 , wherein modifying the instruction comprises modifying the sub-instruction to read the at least one value from the second memory cell of the GPR if not all ports of the GPR are being used and if a read port of the second memory cell is not being used.

Plain English Translation

In the method described above (checking for read conflicts in a GPU register, copying values to a conflict queue, modifying the instruction to read from another register, and using a pre-fetch queue), the instruction is modified to read from the alternate register only if the register's read ports aren't fully utilized, i.e., not all ports of the GPR are being used and a read port of the second memory cell is not being used. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 5

Original Legal Text

5. The method of claim 1 , wherein storing the one or more values stored in the first memory cell in the conflict queue comprises: determining an instance when all reading ports of the GPR are not in use and when one or more values are not being read from the first memory cell; and storing the one or more values stored in the first memory cell in the conflict queue during the determined instance.

Plain English Translation

In the method described above (checking for read conflicts in a GPU register, copying values to a conflict queue, modifying the instruction to read from another register, and using a pre-fetch queue), the values are copied to the conflict queue only when the register's read ports are *not* fully utilized, and when no other reads are happening from the memory cell experiencing the conflict. This avoids unnecessary copies. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 6

Original Legal Text

6. The method of claim 1 , wherein each of the memory cells in the GPR comprises only one read port and only one write port.

Plain English Translation

In the method described above (checking for read conflicts in a GPU register, copying values to a conflict queue, modifying the instruction to read from another register, and using a pre-fetch queue), each memory cell in the general purpose register (GPR) has only one read port and one write port. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 7

Original Legal Text

7. The method of claim 1 , wherein storing the one or more values comprises storing the one or more values stored in the first memory cell in the conflict queue of a processing element based on the determination that execution of the instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output.

Plain English Translation

In the method described above (checking for read conflicts in a GPU register, copying values to a conflict queue, modifying the instruction to read from another register, and using a pre-fetch queue), values are stored in the conflict queue of a processing element based on the determination that execution of the instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 8

Original Legal Text

8. A device for processing values, the device comprising: a general purpose register (GPR) comprising a plurality of memory cells that includes a first memory cell having a read port, wherein values stored in the first memory cell cannot be accessed via any of the other memory cells of the GPR; and a graphics processing unit (GPU) configured to: determine whether execution of an instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output; prior to execution of the instruction, store one or more values stored in the first memory cell in a conflict queue separate from the GPR based on the determination that execution of the instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output; modify the instruction by including a sub-instruction in the instruction to read at least one value from a second, different memory cell of the GPR, wherein the at least one value from the second memory cell of the GPR is an operand for a subsequent instruction; execute the modified instruction to implement an operation that uses at least one value from the first memory cell and at least one value from the conflict queue as operands, wherein to execute the modified instruction, the GPU is configured to execute the sub-instruction for reading the at least one value from the second memory cell of the GPR; store the at least one value from the second memory cell of the GPR in a pre-fetch queue of a processing element; and execute the subsequent instruction based on the at least one value stored in the pre-fetch queue of the processing element.

Plain English Translation

A device (e.g., a GPU) for processing values includes a general-purpose register (GPR) containing memory cells. One particular memory cell has a read port, but values stored in the first memory cell cannot be accessed via any of the other memory cells of the GPR. The GPU checks if executing an instruction requires reading more values from that memory cell than its read port allows. If so, before execution, one or more values from that memory cell are copied to a separate "conflict queue." The original instruction is modified to include a sub-instruction that reads another operand from a *different* memory cell within the GPR. During execution, the modified instruction reads one operand from the original memory cell and another from the conflict queue. The operand read by the sub-instruction is stored in a pre-fetch queue and used later by a subsequent instruction.

Claim 9

Original Legal Text

9. The device of claim 8 , wherein the GPU comprises the GPR, and wherein the GPU comprises a processing element that includes the conflict queue.

Plain English Translation

The device described above (a GPU with register, conflict queue, and instruction modification logic) has the GPU itself containing the general-purpose register (GPR). Also, the processing element inside the GPU *contains* the conflict queue.

Claim 10

Original Legal Text

10. The device of claim 8 , wherein the GPU is configured to read the at least one value from the first memory cell and the at least one value from the conflict queue during execution of the modified instruction.

Plain English Translation

The device described above (a GPU with register, conflict queue, and instruction modification logic) reads the value(s) from both the original memory cell in the register *and* the value(s) from the conflict queue during the execution of the modified instruction. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 11

Original Legal Text

11. The device of claim 8 , wherein the GPU is configured to read from the pre-fetch queue to implement an operation defined by the subsequent instruction when executing the subsequent instruction.

Plain English Translation

The device described above (a GPU with register, conflict queue, and instruction modification logic) reads the pre-fetched value(s) from the pre-fetch queue when the subsequent instruction is executed, allowing it to perform the operation defined by that instruction. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 12

Original Legal Text

12. The device of claim 8 , wherein to modify the instruction, the GPU is configured to modify the sub-instruction to read the at least one value from the second memory cell of the GPR if not all ports of the GPR are being used and if a read port of the second memory cell is not being used.

Plain English Translation

In the device described above (a GPU with register, conflict queue, and instruction modification logic), the instruction is modified to read from the alternate register only if the register's read ports aren't fully utilized, i.e., not all ports of the GPR are being used and a read port of the second memory cell is not being used. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 13

Original Legal Text

13. The device of claim 8 , wherein to store the one or more values stored in the first memory cell in the conflict queue, the GPU is configured to: determine an instance when all reading ports of the GPR are not in use and when one or more values are not being read from the first memory cell; and store the one or more values stored in the first memory cell in the conflict queue during the determined instance.

Plain English Translation

In the device described above (a GPU with register, conflict queue, and instruction modification logic), the values are copied to the conflict queue only when the register's read ports are *not* fully utilized, and when no other reads are happening from the memory cell experiencing the conflict. This avoids unnecessary copies. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 14

Original Legal Text

14. The device claim 8 , wherein each of the memory cells in the GPR comprises only one read port and only one write port.

Plain English Translation

In the device described above (a GPU with register, conflict queue, and instruction modification logic), each memory cell in the general purpose register (GPR) has only one read port and one write port. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 15

Original Legal Text

15. A computer-readable storage medium having instructions stored thereon that when executed by one or more processors cause the one or more processors to: determine whether execution of an instruction would cause simultaneous reading of more values from a first memory cell of a plurality of memory cells of a general purpose register (GPR) than a read port of the first memory cell can output, wherein values stored in the first memory cell cannot be accessed via any of the other memory cells of the GPR; prior to execution of the instruction, store one or more values stored in the first memory cell in a conflict queue separate from the GPR based on the determination that execution of the instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output; modify the instruction by including a sub-instruction in the instruction to read at least one value from a second, different memory cell of the GPR, wherein the at least one value from the second memory cell of the GPR is an operand for a subsequent instruction; execute the modified instruction to implement an operation that uses at least one value from the first memory cell and at least one value from the conflict queue as operands, wherein the instructions that cause the one or more processors to execute the modified instructions comprise instructions that cause the one or more processors to execute the sub-instruction for reading the at least one value from the second memory cell of the GPR; store the at least one value from the second memory cell of the GPR in a pre-fetch queue of a processing element; and execute the subsequent instruction based on the at least one value stored in the pre-fetch queue of the processing element.

Plain English Translation

A computer-readable medium stores instructions for processing values. The instructions, when executed by a processor, cause the processor to check if an instruction requires reading more values from a single register memory cell than its read port allows. If so, before execution, values from that cell are copied to a separate "conflict queue." The original instruction is modified to read another operand from a *different* register memory cell. During execution, the modified instruction reads one operand from the original memory cell and another from the conflict queue. The operand read by the sub-instruction is stored in a pre-fetch queue and used later by a subsequent instruction. This prevents read port conflicts. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 16

Original Legal Text

16. The computer-readable storage medium of claim 15 , further comprising instructions that cause the one or more processors to: read the at least one value from the first memory cell and the at least one value from the conflict queue during execution of the modified instruction.

Plain English Translation

The computer-readable medium with instructions for handling register read conflicts (checking, copying to conflict queue, modifying the instruction, using a pre-fetch queue) also includes instructions to read the value(s) from both the original memory cell and the conflict queue *during* the execution of the modified instruction. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 17

Original Legal Text

17. The computer-readable storage medium of claim 15 , wherein the instructions that cause the one or more processors to store the one or more values stored in the first memory cell in the conflict queue comprise instructions that cause the one or more processors to: determine an instance when all reading ports of the GPR are not in use and when one or more values are not being read from the first memory cell; and store the one or more values stored in the first memory cell in the conflict queue during the determined instance.

Plain English Translation

The computer-readable medium with instructions for handling register read conflicts (checking, copying to conflict queue, modifying the instruction, using a pre-fetch queue) copies values to the conflict queue only when the register's read ports are *not* fully utilized, and when no other reads are happening from the memory cell experiencing the conflict. This avoids unnecessary copies. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 18

Original Legal Text

18. The computer-readable storage medium of claim 15 , wherein each of the memory cells in the GPR comprises only one read port and only one write port.

Plain English Translation

The computer-readable medium with instructions for handling register read conflicts (checking, copying to conflict queue, modifying the instruction, using a pre-fetch queue) has each memory cell in the general-purpose register (GPR) possessing only one read port and one write port. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 19

Original Legal Text

19. The computer-readable storage medium of claim 15 , wherein the instructions that cause the one or more processors to store the one or more values comprise instructions that cause the one or more processors to store the one or more values stored in the first memory cell in the conflict queue of a processing element based on the determination that execution of the instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output.

Plain English Translation

The computer-readable medium with instructions for handling register read conflicts (checking, copying to conflict queue, modifying the instruction, using a pre-fetch queue) stores values in the conflict queue of a processing element based on the determination that execution of the instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output. Each memory cell cannot be accessed via any of the other memory cells of the GPR.

Claim 20

Original Legal Text

20. A device for processing values, the device comprising: a general purpose register (GPR) comprising a plurality of memory cells that includes a first memory cell having a read port, wherein values stored in the first memory cell cannot be accessed via any of the other memory cells of the GPR; and a graphics processing unit (GPU) comprising: means for determining whether execution of an instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output; means for storing, prior execution of the instruction, one or more values stored in the first memory cell in a conflict queue separate from the GPR based on the determination that execution of the instruction would cause simultaneous reading of more values from the first memory cell than the read port of the first memory cell can output; means for modifying the instruction by including a sub-instruction in the instruction to read at least one value from a second, different memory cell of the GPR, wherein the at least one value from the second memory cell of the GPR is an operand for a subsequent instruction; means for executing the modified instruction to implement an operation that uses at least one value from the first memory cell and at least one value from the conflict queue as operands, wherein the means for executing the modified instruction includes means for executing the sub-instruction for reading the at least one value from the second memory cell of the GPR; means for storing the at least one value from the second memory cell of the GPR in a pre-fetch queue of a processing element; and means for executing the subsequent instruction based on the at least one value stored in the pre-fetch queue of the processing element.

Plain English Translation

A device for processing values has a general-purpose register (GPR) with a memory cell possessing a read port and that cannot be accessed via any of the other memory cells of the GPR. The device includes: a means for determining if an instruction requires too many reads from that cell, a means for storing values in a conflict queue if needed, a means for modifying the instruction to read from a different cell, a means for executing the modified instruction using values from both the original cell and the conflict queue, a means for storing the second value in a pre-fetch queue, and a means for executing a subsequent instruction using the pre-fetched value.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

October 3, 2014

Publication Date

April 25, 2017

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Operand conflict resolution for reduced port general purpose register” (US-9632783). https://patentable.app/patents/US-9632783

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-9632783. See llms.txt for full attribution policy.