Claims Analysis
Total Claims: 33
Claim 1
Independent Claim
315 words
A method of handling an exception associated with a first floating point instruction, comprising the steps of: (a) decoding the first floating point instruction to address a group of floating point microinstructions in a control memory; (b) storing a floating point microinstruction from said group in a first latching means and in a second latching means; (c) executing said floating point microinstruction in the floating point unit; (d) determining if an exception occurred during execution of said floating point microinstruction; (e) if an exception occurred in the step (d), then preventing further execution in the floating point unit until the decoder addresses a next floating point microinstruction from the control memory, wherein the next floating point microinstruction becomes a pending floating point microinstruction; (f) after the decoder addresses the pending floating point microinstruction in the step (e), if an exception was determined in said step (d), then executing a group of exception handler microinstructions stored in the control memory, said execution proceeding in accordance with steps (g) through (i); (g) storing a first exception handler floating point microinstruction from said group in the first latching means, replacing the previous microinstruction stored in the first latching means, and not storing the exception handler floating point microinstruction in the second latching means; (h) executing the first exception handler floating point microinstruction stored in the first latching means (i) repeating the previous steps (g) and (h) for each of the exception handler microinstructions in the sequence; (j) after executing each of the exception handler microinstructions, determining if said exception-causing floating point microinstruction will be re-executed, and if so, then applying the second latching means holding said exception-causing floating point instruction to re-execute said exception-causing microinstruction; (k) reading said pending microinstruction from the control memory, and storing said floating point microinstruction in the first latching means and in the second latching means; and (l) repeating steps (c) through (k).
Claim 2
Independent Claim
315 words
A method of handling an exception associated with a first floating point instruction, comprising the steps of: (a) decoding the first floating point instruction to address a group of floating point microinstructions in a control memory; (b) storing a floating point microinstruction from said group in a first latching means and in a second latching means; (c) executing said floating point microinstruction in the floating point unit; (d) determining if an exception occurred during execution of said floating point microinstruction; (e) if an exception occurred in the step (d), then preventing further execution in the floating point unit until the decoder addresses a next floating point microinstruction from the control memory, wherein the next floating point microinstruction becomes a pending floating point microinstruction; (f) after the decoder addresses the pending floating point microinstruction in the step (e), if an exception was determined in said step (d), then executing a group of exception handler microinstructions stored in the control memory, said execution proceeding in accordance with steps (g) through (i); (g) storing a first exception handler floating point microinstruction from said group in the first latching means, replacing the previous microinstruction stored in the first latching means, and not storing the exception handler floating point microinstruction in the second latching means; (h) executing the first exception handler floating point microinstruction stored in the first latching means (i) repeating the previous steps (g) and (h) for each of the exception handler microinstructions in the sequence; (j) after executing each of the exception handler microinstructions, determining if said exception-causing floating point microinstruction will be re-executed, and if so, then applying the second latching means holding said exception-causing floating point instruction to re-execute said exception-causing microinstruction; (k) reading said pending microinstruction from the control memory, and storing said floating point microinstruction in the first latching means and in the second latching means; and (l) repeating steps (c) through (k).
Claim 3
Dependent Claim
47 words
The method of claim 1 of handling an exception, further comprising the step of decoding and executing a non-floating point instruction subsequent to the step (a) of decoding the first floating point instruction and prior to the step (e) of decoding the next sequential floating point instruction.
Claim 4
Independent Claim
235 words
A method for allowing a floating point microinstruction supplied from a control memory to be executed in a microprocessor in parallel with a non-floating point microinstruction supplied from said control memory, comprising the steps of: decoding a first floating point macroinstruction to provide a first group of floating point microinstructions; storing a floating point microinstruction of said first group of microinstructions supplied from said control memory in a first latching means and in a second latching means for execution; executing the first floating point microinstruction; decoding a non-floating point macroinstruction to provide a group of non-floating point microinstructions; executing, in a non-floating point execution unit each non-floating point microinstruction of said group of non-floating point microinstructions supplied from said control memory; decoding a second floating point macroinstruction; and before executing said second floating point macroinstruction, if an exception is associated with execution of the previous floating point macroinstruction, then performing the steps of: executing a group of exception handler microinstructions stored in the control memory, the plurality of exception handler microinstructions including an exception handler floating point microinstruction; storing the exception handler floating point microinstruction received from the control memory in the first latching means, replacing the first floating point microinstruction stored in the first latching means, and not storing the exception handler floating point microinstruction in the second latching means; and executing the exception handler floating point microinstruction stored in the first latching means.
Claim 5
Independent Claim
235 words
A method for allowing a floating point microinstruction supplied from a control memory to be executed in a microprocessor in parallel with a non-floating point microinstruction supplied from said control memory, comprising the steps of: decoding a first floating point macroinstruction to provide a first group of floating point microinstructions; storing a floating point microinstruction of said first group of microinstructions supplied from said control memory in a first latching means and in a second latching means for execution; executing the first floating point microinstruction; decoding a non-floating point macroinstruction to provide a group of non-floating point microinstructions; executing, in a non-floating point execution unit each non-floating point microinstruction of said group of non-floating point microinstructions supplied from said control memory; decoding a second floating point macroinstruction; and before executing said second floating point macroinstruction, if an exception is associated with execution of the previous floating point macroinstruction, then performing the steps of: executing a group of exception handler microinstructions stored in the control memory, the plurality of exception handler microinstructions including an exception handler floating point microinstruction; storing the exception handler floating point microinstruction received from the control memory in the first latching means, replacing the first floating point microinstruction stored in the first latching means, and not storing the exception handler floating point microinstruction in the second latching means; and executing the exception handler floating point microinstruction stored in the first latching means.
Claim 6
Dependent Claim
34 words
The method of claim 3 further comprising the step of executing the floating point microinstruction stored in the second latching means if an exception is associated with execution of the previous floating point macroinstruction.
Claim 7
Dependent Claim
58 words
The method of claim 3 further comprising the steps of: storing a floating point microinstruction received from said second group of floating point microinstructions supplied from the control memory in the first latching means and in the second latching means; and executing the second floating point microinstruction stored in the first latching means and the second latching means.
Claim 8
Dependent Claim
75 words
The method of claim 4 for allowing floating point instructions to be executed in a microprocessor in parallel with non-floating point instructions, further comprising the steps of: storing a floating point microinstruction received from said second group of floating point microinstructions supplied from the control memory in the first latching means and in the second latching means; and executing the second floating point microinstruction stored in the first latching means and the second latching means.
Claim 9
Dependent Claim
204 words
In a microprocessor, circuitry allowing floating point instructions to be executed in parallel with non-floating point instructions, comprising: means for decoding a stream of floating point macroinstructions and non-floating point macroinstructions; a control memory coupled to an output of the decoding means and including (1) a plurality of exception handler microinstruction sequences including a floating point exception handler microinstruction sequence and a non-floating point exception handler microinstruction sequence, (2) a floating point microinstruction sequence, and (3) a non-floating point microinstruction sequence; means for executing a non-floating point microinstruction received from an output of the control memory; a latching unit coupled to the output of the control memory for latching floating point microinstructions, said latching unit including a first latching means for storing a one of a floating point microinstruction or a floating point execption handler microinstruction, and a second latching means for storing a floating point microinstruction, a input latching means for latching the output of the control memory to said latching unit; a floating point unit including control logic for decoding and controlling execution of microinstructions; means for selecting one of the input latching means, the first latching means, and the second latching means, to supply a microinstruction to the floating point unit.
Claim 10
Dependent Claim
204 words
In a microprocessor, circuitry allowing floating point instructions to be executed in parallel with non-floating point instructions, comprising: means for decoding a stream of floating point macroinstructions and non-floating point macroinstructions; a control memory coupled to an output of the decoding means and including (1) a plurality of exception handler microinstruction sequences including a floating point exception handler microinstruction sequence and a non-floating point exception handler microinstruction sequence, (2) a floating point microinstruction sequence, and (3) a non-floating point microinstruction sequence; means for executing a non-floating point microinstruction received from an output of the control memory; a latching unit coupled to the output of the control memory for latching floating point microinstructions, said latching unit including a first latching means for storing a one of a floating point microinstruction or a floating point execption handler microinstruction, and a second latching means for storing a floating point microinstruction, a input latching means for latching the output of the control memory to said latching unit; a floating point unit including control logic for decoding and controlling execution of microinstructions; means for selecting one of the input latching means, the first latching means, and the second latching means, to supply a microinstruction to the floating point unit.
Claim 11
Dependent Claim
23 words
The circuitry of claim 7, further comprising means for detecting whether an exception condition occurs during an execution of the floating point instruction.
Claim 12
Dependent Claim
13 words
The circuitry of claim 7, wherein the control memory comprises a read-only memory.
Claim 13
Dependent Claim
289 words
In a microprocessor having a floating point unit operable in parallel with a non-floating point execution unit, and a decoder providing a series of microinstructions including groups of floating point microinstructions and groups of non-floating point microinstructions, a method of handling an exception associated with a floating point microinstruction being executed in the floating point unit, said method comprising the steps of: (a) executing said floating point microinstruction while monitoring its execution to determine if an exception occurs; (b) determining if a next microinstruction in said series of microinstructions supplied from the control memory is a floating point microinstruction; (c) if said next microinstruction is not a floating point microinstruction, then executing said non-floating point microinstruction even if execution of the first floating point microinstruction is continuing from said step (b); (d) if said next microinstruction is a floating point instruction, and execution has not been completed in step (a), then waiting until execution in step (a) has been completed; (e) if said next microinstruction is a floating point instruction, and execution has been completed in said step (a), and no exception has been determined in said step (a), then executing said next floating point microinstruction; (f) if said next microinstruction is a floating point instruction, and execution has been completed in said step (a), and an exception has been determined in said step (a), then executing a sequence of exception handler microinstructions from said control memory, and upon completion of the exception handler microinstructions, determining if said floating point microinstruction must be re-executed, and if so, re-executing said floating point microinstruction and then executing said next floating point microinstruction; and (g) repeating steps (a) through (f) for each microinstruction in the series of microinstructions supplied by the decoder.
Claim 14
Dependent Claim
289 words
In a microprocessor having a floating point unit operable in parallel with a non-floating point execution unit, and a decoder providing a series of microinstructions including groups of floating point microinstructions and groups of non-floating point microinstructions, a method of handling an exception associated with a floating point microinstruction being executed in the floating point unit, said method comprising the steps of: (a) executing said floating point microinstruction while monitoring its execution to determine if an exception occurs; (b) determining if a next microinstruction in said series of microinstructions supplied from the control memory is a floating point microinstruction; (c) if said next microinstruction is not a floating point microinstruction, then executing said non-floating point microinstruction even if execution of the first floating point microinstruction is continuing from said step (b); (d) if said next microinstruction is a floating point instruction, and execution has not been completed in step (a), then waiting until execution in step (a) has been completed; (e) if said next microinstruction is a floating point instruction, and execution has been completed in said step (a), and no exception has been determined in said step (a), then executing said next floating point microinstruction; (f) if said next microinstruction is a floating point instruction, and execution has been completed in said step (a), and an exception has been determined in said step (a), then executing a sequence of exception handler microinstructions from said control memory, and upon completion of the exception handler microinstructions, determining if said floating point microinstruction must be re-executed, and if so, re-executing said floating point microinstruction and then executing said next floating point microinstruction; and (g) repeating steps (a) through (f) for each microinstruction in the series of microinstructions supplied by the decoder.
Claim 15
Dependent Claim
29 words
The method of claim 10 further comprising an additional step, performed before the step (a), of storing said floating point microinstruction in a first latch and a second latch.
Claim 16
Dependent Claim
44 words
The method of claim 11 wherein said step (f) comprises supplying each of the exception handler microinstructions to the first latch but not to the second latch, and then applying the exception handler microinstructions stored in the first latch to the floating point unit.
Claim 17
Dependent Claim
49 words
The method of claim 12 wherein in said step (f), if said floating point microinstruction is to be re-executed, then said step (f) further comprises applying the second latch, which is holding said floating point microinstruction, to the floating point unit so that said floating point microinstruction is re-executed.
Claim 18
Dependent Claim
30 words
The method of claim 10 wherein in the step (f), the floating point exception handler microinstructions cannot generate an exception, and the re-executed floating point microinstruction cannot generate an exception.
Claim 19
Independent Claim
163 words
A method of handling exceptions that arise in parallel processors during parallel execution of a floating point microinstruction and a group of integer microinstructions, said microinstruction being selected by a series of macroinstructions that include floating point macroinstructions intermixed with integer macroinstructions, said exception handling method comprising the steps of: (a) determining if an exception occurs during said execution of the floating point microinstruction in a floating point unit; (b) completing execution of the group of integer microinstructions in a integer unit; (c) fetching a next macroinstruction; (d) if said next macroinstruction is an integer macroinstruction, then repeating said steps (b) and (c); (e) if said next macroinstruction is a floating point macroinstruction, and an exception has been determined in said step (a), then handling the exception before executing said next floating point macroinstruction; and (f) if said next macroinstruction is a floating point macroinstruction, and an exception has not been determined in said step (b), then executing said next floating point macroinstruction.
Claim 20
Independent Claim
163 words
A method of handling exceptions that arise in parallel processors during parallel execution of a floating point microinstruction and a group of integer microinstructions, said microinstruction being selected by a series of macroinstructions that include floating point macroinstructions intermixed with integer macroinstructions, said exception handling method comprising the steps of: (a) determining if an exception occurs during said execution of the floating point microinstruction in a floating point unit; (b) completing execution of the group of integer microinstructions in a integer unit; (c) fetching a next macroinstruction; (d) if said next macroinstruction is an integer macroinstruction, then repeating said steps (b) and (c); (e) if said next macroinstruction is a floating point macroinstruction, and an exception has been determined in said step (a), then handling the exception before executing said next floating point macroinstruction; and (f) if said next macroinstruction is a floating point macroinstruction, and an exception has not been determined in said step (b), then executing said next floating point macroinstruction.
Claim 21
Dependent Claim
27 words
The exception handling method of claim 15 wherein the step (e), handling the exception, includes supplying a sequence of exception handler microinstructions to the floating point unit.
Claim 22
Dependent Claim
23 words
The exception handling method of claim 16 wherein the step (e), handling the exception, further includes re-executing the microinstruction that generated the exception.
Claim 23
Dependent Claim
18 words
The exception handling method of claim 17 wherein the step of re-executing the microinstruction cannot generate an exception.
Claim 24
Dependent Claim
56 words
The exception handling method of claim 16 further comprising: the additional step of storing the floating point microinstruction in a first latch and a second latch during execution of the floating point microinstruction; and in the step (e), handling the exception includes storing the exception handler microinstructions in the first latch but not the second latch.
Claim 25
Dependent Claim
26 words
The exception handling method of claim 19, wherein in the step (e), handling the exception includes re-executing the floating point microinstruction stored in the second latch.
Claim 26
Dependent Claim
18 words
The exception handling method of claim 15 wherein the step (e), handling the exception, cannot generate an exception.
Claim 27
Dependent Claim
208 words
A microcode latching unit for latching microinstructions from a control memory to control logic in a processor unit, comprising: a multiplexer having a plurality of inputs selectable by a control signal, said inputs including an input coupled to the control memory for receiving microinstructions, said multiplexer having an output connected to the control logic in the processor; an execution latch for holding a currently executing microinstruction, said execution latch having an latch input connected to the multiplexer output, said execution latch also having a latch output connected to a first one of said inputs to the multiplexer; an indirect execute latch for holding a microinstruction, said indirect execute latch having a latch input connected to the multiplexer output, said indirect execute latch also having a latch output connected to a first one of said inputs to the multiplexer; timing means for controlling latching of the multiplexer output into said execution latch and said indirect execute latch so that the microinstruction supplied to the control logic can be latched into both the execution latch and the indirect execute latch; and means for disabling said timing means to prevent latching into the indirect execute latch of exception handler microinstructions, while allowing the execution latch to receive said exception handler microinstructions.
Claim 28
Dependent Claim
208 words
A microcode latching unit for latching microinstructions from a control memory to control logic in a processor unit, comprising: a multiplexer having a plurality of inputs selectable by a control signal, said inputs including an input coupled to the control memory for receiving microinstructions, said multiplexer having an output connected to the control logic in the processor; an execution latch for holding a currently executing microinstruction, said execution latch having an latch input connected to the multiplexer output, said execution latch also having a latch output connected to a first one of said inputs to the multiplexer; an indirect execute latch for holding a microinstruction, said indirect execute latch having a latch input connected to the multiplexer output, said indirect execute latch also having a latch output connected to a first one of said inputs to the multiplexer; timing means for controlling latching of the multiplexer output into said execution latch and said indirect execute latch so that the microinstruction supplied to the control logic can be latched into both the execution latch and the indirect execute latch; and means for disabling said timing means to prevent latching into the indirect execute latch of exception handler microinstructions, while allowing the execution latch to receive said exception handler microinstructions.
Claim 29
Dependent Claim
23 words
The microcode latching unit of claim 22, further comprising an input latch for latching microcode input from the control memory into the multiplexer.
Claim 30
Dependent Claim
37 words
The microcode latching unit of claim 23, further comprising a data interface unit having control logic associated therewith, said interface unit being connected to receive microinstructions from the connection between the input latch and the multiplexer input.
Claim 31
Dependent Claim
42 words
The floating point microcode latching unit of claim 23, further comprising an intermediate latch having an input connected to the multiplexer output, said intermediate latch having an output connected both to the execution latch input and to the indirect execute latch input.
Claim 32
Dependent Claim
79 words
The floating point microcode latching unit of claim 25, further comprising timing means for latching the input latch on a phase 1 clock, means for latching the intermediate latch on a phase 2 clock that is behind the phase 1 clock, means for latching the execution latch on a phase 1 clock signal, so that microcode latched into the input latch on the phase 1 clock is latched into the execution latch on the subsequent phase 1 clock signal.
Claim 33
Dependent Claim
39 words
The floating point microcode latching unit of claim 26 further comprising means for latching the indirect execute latch upon the coincidence of a phase 1 clock signal and a signal that is provided when no exception has been detected.