Mechanism for handling unfused multiply-accumulate accrued exception bits in a processor

US9507656B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9507656-B2
Application numberUS-42492909-A
CountryUS
Kind codeB2
Filing dateApr 16, 2009
Priority dateApr 16, 2009
Publication dateNov 29, 2016
Grant dateNov 29, 2016

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.

A mechanism for handling unfused multiply-add accrued exception bits includes a processor including a floating point unit, a storage, and exception logic. The floating-point unit may be configured to execute an unfused multiply-accumulate instruction defined with the instruction set architecture (ISA). The unfused multiply-accumulate instruction may include a multiply sub-operation and an accumulate sub-operation. The storage may be configured to maintain floating-point exception state information. The exception logic may be configured to capture the floating-point exception state after completion of the multiply sub-operation and prior to completion of the accumulate sub-operation, for example, and to update the storage to reflect the floating-point exception state.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor, comprising: a floating-point unit configured to execute an unfused multiply-accumulate instruction defined with an instruction set architecture, wherein the unfused multiply-accumulate instruction includes a multiply sub-operation and an accumulate sub-operation; a storage configured to maintain floating-point exception state information; and exception logic including a storage array and configured to capture uncommitted floating-point exception state within the storage array after completion of the multiply sub-operation and prior to completion of the accumulate sub-operation, and to update the storage, after the unfused multiply-accumulate instruction commits, with the floating-point exception state from the storage array; wherein the storage array includes a first port and a second port; and wherein the exception logic is further configured to: read exception information for a first unfused multiply-accumulate instruction defined in the instruction set architecture from the first port in response to a determination that the first unfused multiply-accumulate instruction has committed; read exception information for a second unfused multiply-accumulate instruction defined the in the instruction set architecture from the second port in response to a determination that the second unfused multiply-accumulate instruction has committed; select one of the exception information for the first unfused multiply-accumulate instruction and the exception information for the second unfused multiply-accumulate instruction dependent upon which of the first unfused multiply-accumulate instruction and the second unfused multiply-accumulate instruction commits; and determine an architectural state dependent upon the selected exception information; wherein the first unfused multiply-accumulate instruction and the second unfused multiply-accumulate instruction are concurrently executed. 2. The processor as recited in claim 1 , wherein the floating-point unit is configured to provide one or more exception signals corresponding to one or more respective exceptions generated in response to execution of each of the multiply sub-operation and the accumulate sub-operation. 3. The processor as recited in claim 1 , wherein the floating-point exception state information includes accrued exception bits and current exception bits. 4. The processor as recited in claim 3 , wherein the floating-point unit is further configured to generate one or more particular accrued exception bits and one or more current exception bits that are indicative of the floating-point exception state after the multiply sub-operation and the accumulate sub-operation. 5. The processor as recited in claim 4 , wherein, to generate a given accrued exception bit, the exception logic is configured to perform a logical OR operation between a first exception signal generated after execution of the multiply sub-operation and a second exception signal generated after execution of the accumulate sub-operation. 6. The processor as recited in claim 3 , wherein the exception logic is further configured to discard floating-point exception bits corresponding to the floating-point exception state prior to updating the storage in response to one or more exception traps being enabled. 7. The processor as recited in claim 1 , wherein the floating-point unit is configured to execute a first instruction before a second instruction, wherein the second instruction occurs before the first instruction in program order. 8. The processor as recited in claim 1 , wherein the floating-point exceptions are defined in the IEEE Standard 754-1985. 9. The processor as recited in claim 1 , wherein during execution of an unfused multiply-accumulate instruction, the floating-point unit is further configured to perform a first rounding operation subsequent to the multiply sub-operation and a second rounding operation subsequent to the accumulate sub-operation. 10. A system comprising: a system memory; and a processor coupled to the system memory; wherein the processor includes: a floating-point unit configured to execute an unfused multiply-accumulate instruction defined with an instruction set architecture, wherein the unfused multiply-accumulate instruction includes a multiply sub-operation and an accumulate sub-operation; a storage configured to maintain floating-point exception state information; and exception logic including a storage array and configured to capture uncommitted floating-point exception state within the storage array after completion of the multiply sub-operation and prior to completion of the accumulate sub-operation, and to update the storage, after the unfused multiply-accumulate instruction commits, with the floating-point exception state from the storage array; wherein the storage array includes a first port and a second port; and wherein the exception logic is further configured to: read exception information for a first unfused multiply-accumulate instruction defined in the instruction set architecture from the first port in response to a determination that the first unfused multiply-accumulate instruction has committed; read exception information for a second unfused multiply-accumulate instruction defined in the instruction set architecture from the second port in response to a determination that the second unfused multiply-accumulate instruction has committed; select one of the exception information for the first unfused multiply-accumulate instruction and the exception information for the second unfused multiply-accumulate instruction dependent upon which of the first unfused multiply-accumulate and the second unfused multiply-accumulate instruction commits; and determine an architectural state dependent upon the selected exception information; wherein the first unfused multiply-accumulate instruction and the second unfused multiply-accumulate instruction are concurrently executed. 11. A method comprising: a floating-point unit of a processor executing an unfused multiply-accumulate instruction defined with an instruction set architecture, wherein the unfused multiply-accumulate instruction includes a multiply sub-operation and an accumulate sub-operation; maintaining floating-point exception state information within a storage; and exception logic capturing uncommitted floating-point exception state within a storage array of the exception logic after completion of the multiply sub-operation and prior to completion of the accumulate sub-operation, and updating the storage, after the unfused multiply-accumulate instruction commits, with the floating-point exception state from the storage array; wherein the storage array includes a first port and a second port; and wherein the exception logic is further configured to: read exception information for a first unfused multiply-accumulate instruction defined in the instruction set architecture from the first port in response to a determination that the first unfused multiply-accumulate instruction has committed; read exception information for a second unfused multiply-accumulate instruction defined in the instruction set architecture from the second port in response to a determination that the second unfused multiply-accumulate instruction as committed; select one of the exception information for the first unfused multiply-accumulate instruction and the exception information for the second unfused multiply-accumulate instruction dependent upon which of the first unfused multiply-accumulate instruction and the second unfused multiply-accumulate instruction commits; and determine an architectural state dependent upon the selected exception information;

Assignees

Inventors

Classifications

  • of compound instructions · CPC title

  • with variable precision · CPC title

  • Condition code generation, e.g. Carry, Zero flag · CPC title

  • Arithmetic instructions · CPC title

  • Runtime instruction translation, e.g. macros · 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 US9507656B2 cover?
A mechanism for handling unfused multiply-add accrued exception bits includes a processor including a floating point unit, a storage, and exception logic. The floating-point unit may be configured to execute an unfused multiply-accumulate instruction defined with the instruction set architecture (ISA). The unfused multiply-accumulate instruction may include a multiply sub-operation and an accum…
Who is the assignee on this patent?
Brooks Jeffrey S, Jordan Paul J, Olson Christopher H, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F11/0772. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 29 2016 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).