Control of predication across clock domains

US10133300B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10133300-B2
Application numberUS-201414150554-A
CountryUS
Kind codeB2
Filing dateJan 8, 2014
Priority dateJan 8, 2014
Publication dateNov 20, 2018
Grant dateNov 20, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments are disclosed for a method of executing instructions in a processing core of a microprocessor. In one embodiment, the method comprises, in a first clock domain, receiving an input from a second clock domain external to the first clock domain, the input comprising an indication from the second clock domain regarding whether to execute an instruction in the first clock domain. The method further comprises synchronizing the input from the second clock domain with the first clock domain, if the instruction is a predicatable instruction and the indication matches a predicate condition that indicates not to perform the instruction, then not performing the instruction, and otherwise performing the instruction.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of executing instructions in a processing core of a microprocessor, the method comprising: in a first clock domain, receiving an input from a signal source in a second clock domain external to the first clock domain, the input comprising an indication from the second clock domain of a condition that determines whether an instruction is executed in the first clock domain; synchronizing the input from the signal source in the second clock domain with the first clock domain; if the instruction is determined to be an invalid instruction, then not performing the instruction; if the instruction is a predicatable instruction and the indication matches a predicate condition that indicates not to perform the instruction, then not performing the instruction; and otherwise performing the instruction. 2. The method of claim 1 , wherein determining if the instruction is a predicatable instruction is further based upon a signal from a decoder of the processing core indicating whether the instruction is able to be predicated. 3. The method of claim 1 , wherein the processing core of the microprocessor is a first processing core of the microprocessor and the signal source in the second clock domain external to the first clock domain is a second processing core of the microprocessor. 4. The method of claim 1 , wherein the microprocessor is a first microprocessor of a computing device and the signal source in the second clock domain external to the first clock domain is a second microprocessor of the computing device. 5. The method of claim 4 , wherein the first microprocessor is a graphics processing unit and the second microprocessor is a central processing unit. 6. The method of claim 1 , wherein not performing the instruction includes turning an instruction valid indicator for the instruction off, the instruction valid indicator causing an execution unit controller of the processing core to interpret the instruction as a no-op. 7. A processor comprising: a clock domain crossing block in a first clock domain the clock domain crossing block including two or more flip flops, and configured to receive input from an external signal source in a second clock domain, synchronize the input with the first clock domain, and output a synchronized indication in the first clock domain that determines whether an instruction is executed in the first clock domain, the input being based at least on a result of processing performed in the second clock domain; a predication verification block comprising a first logical AND gate configured to receive input from the clock domain crossing block comprising the synchronized indication and from a decoder comprising a decoded indication regarding whether the instruction is of a type that is able to be predicated; and an instruction verification block comprising a second logical AND gate configured to receive input including an inverted output of the first logical AND gate and output from the decoder comprising a validation indication regarding whether the instruction is a valid instruction, the instruction verification block configured to output a signal configured to indicate whether the instruction is to be executed based on the output of the second logical AND gate. 8. The processor of claim 7 , wherein the clock domain crossing block includes a first D flip flop, configured to receive the input from the external signal source and a clock signal from the first clock domain, and a second D flip flop, configured to receive an output of the first D flip flop and the clock signal from the first clock domain. 9. The processor of claim 7 , wherein the output of the first logical AND gate is directed to an input of a D flip flop prior to being directed to an inverter, the inverter forming the inverted output of the first logical AND gate. 10. The processor of claim 7 , wherein the processor comprises a processing core of a central processing unit and the external signal source includes a processing core of a graphics processing unit. 11. The processor of claim 7 , wherein the processor comprises a first processing core of a central processing unit and the external signal source includes a second processing core of the central processing unit. 12. The processor of claim 7 , wherein the output of the first logical AND gate is a logical 1 if the instruction is able to be predicated and the synchronized indication represents a condition indicating not to execute the instruction in the first clock domain. 13. The processor of claim 12 , wherein the output of the second logical AND gate is a logical 0 if the instruction is invalid or if the instruction is able to be predicated and the synchronized indication represents a condition indicating not to execute the instruction in the first clock domain.

Assignees

Inventors

Classifications

  • G06F1/12Primary

    Synchronisation of different clock signals {provided by a plurality of clock generators} · CPC title

  • Instruction analysis, e.g. decoding, instruction word fields · CPC title

  • Synchronisation; Hardware support therefor (intertask synchronisation G06F9/52) · CPC title

  • to perform conditional operations, e.g. using predicates or guards · CPC title

  • Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10133300B2 cover?
Embodiments are disclosed for a method of executing instructions in a processing core of a microprocessor. In one embodiment, the method comprises, in a first clock domain, receiving an input from a second clock domain external to the first clock domain, the input comprising an indication from the second clock domain regarding whether to execute an instruction in the first clock domain. The met…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F1/12. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 20 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).