Method and apparatus for dynamic partitionable saturating adder/subtractor
AssigneeIntrinsity, Inc.
InventorsAnthony M. Petro, James S. Blomgren
Life of this patent
Estimating the term…
Abstract
An apparatus that performs arithmetic logic and carry-lookahead logic in parallel on two N-nary operands, including saturating or unsaturating, signed or unsigned, addition or subtraction. The operands may be selectably partitioned into 8-bit, 16-bit, 32-bit, or 64-bit operands. For multiple partitions, carry propagation is interrupted on partition boundaries. Each selectable feature may be implemented singly, or in combination with other selectable features.
Claims11
An apparatus that performs an arithmetic operation on two N-nary operands, comprising:
- arithmetic logic that performs an arithmetic operation on one or more bits of a 1-of-P first operand and one or more bits of a 1-of-Q second operand to generate an intermediate result, wherein each said operand comprises one or more blocks comprising one or more bits;
- a 1-of-R partition size input that receives a 1-of-R partition indicator whose value defines the boundaries of one or more partitions, wherein each said partition comprises one or more of said operand blocks;
- a partition detection logic, coupled to said partition size input, that generates a block-level HPG indicator for each said block, wherein said partition detection logic overrides the value of said block-level HPG indicator with a “Halt” value when said block comprises the most significant said block of said partition;
- an HPG logic, coupled to said partition detection logic, that generates a final HPG indicator for said intermediate result;
- a sum logic, coupled to said HPG logic and to said arithmetic logic, that generates a 1-of-T arithmetic result by incrementing the value of said intermediate result if said final HPG indicator indicates that a carry has propagated into said intermediate result;
- and
- a saturation logic, coupled to said sum logic, that overrides the value of said arithmetic result with a constant overflow saturation value when an overflow has occurred, said saturation logic overrides the value of said arithmetic result with a constant underflow saturation value when an underflow has occurred.
A method to manufacture an apparatus that performs an arithmetic operation on two N-nary operands, comprising:
- providing arithmetic logic that performs an arithmetic operation on one or more bits of a 1-of-P first operand and one or more bits of a 1-of-Q second operand to generate an intermediate result, wherein each said operand comprises one or more blocks comprising one or more bits;
- providing a 1-of-R partition size input that receives a 1-of-R partition size indicator whose value defines the boundaries of one or more partitions, wherein each said partition comprises one or more of said operand blocks;
- providing a partition detection logic that generates a block-level HPG indicator for each said block, wherein said partition detection logic overrides the value of said block-level HPG indicator with a “Halt” value when said block comprises the most significant said block of said partition;
- coupling said partition detection logic to said partition size input;
- providing an HPG logic that generates a final HPG indicator for said intermediate result;
- coupling said HPG logic to said partition detection logic;
- providing a sum logic that generates a 1-of-T arithmetic result by incrementing the value of said intermediate result if said final HPG indicator indicates that a carry has propagated into said intermediate result;
- coupling said sum logic to said HPG logic and to said arithmetic logic;
- providing a saturation logic that overrides the value of said arithmetic result with a constant overflow saturation value when an overflow has occurred, sand that overrides the value of said arithmetic result with a constant underflow saturation value when an underflow has occurred;
- and
- coupling said saturation logic to said sum logic.
A system that performs an arithmetic operation on two N-nary operands, comprising:
- arithmetic logic that performs an arithmetic operation on one or more bits of a 1-of-P first operand and one or more bits of a 1-of-Q second operand to generate an intermediate result, wherein each said operand comprises one or more blocks comprising one or more bits;
- a 1-of-R partition size input that receives a 1-of-R partition indicator whose value defines the boundaries of one or more partitions, wherein each said partition comprises one or more of said operand blocks;
- a partition detection logic, coupled to said partition size input, that generates a block-level HPG indicator for each said block, wherein said partition detection logic overrides the value of said block-level HPG indicator with a “Halt” value when said block comprises the most significant said block of said partition;
- an HPG logic, coupled to said partition detection logic, that generates a final HPG indicator for said intermediate result;
- a sum logic, coupled to said HPG logic and to said arithmetic logic, that generates a 1-of-T arithmetic result by incrementing the value of said intermediate result if said final HPG indicator indicates that a carry has propagated into said intermediate result;
- and
- a saturation logic, coupled to said sum logic, that overrides the value of said arithmetic result with a constant overflow saturation value when an overflow has occurred, said saturation logic overrides the value of said arithmetic result with a constant underflow saturation value when an underflow has occurred.
A method to perform an arithmetic operation on two N-nary operands, comprising:
- performing an arithmetic operation with arithmetic logic on one or more bits of a 1-of-P first operand and one or more bits of a 1-of-Q second operand to generate an intermediate result, each said operand comprises one or more blocks comprising one or more bits;
- receiving a 1-of-R partition indicator with a 1-of-R partition size input whose value defines the boundaries of one or more partitions, each said partition comprises one or more of said operand blocks;
- generating a block-level HPG indicator with a partition detection logic for each said block, said partition detection logic overrides the value of said block-level HPG indicator with a “Halt” value when said block comprises the most significant said block of said partition, said partition detection logic is coupled to said partition size input;
- generating a final HPG indicator for said intermediate result with an HPG logic, said HPG logic is coupled to said partition detection logic;
- generating a 1-of-T arithmetic result with a sum logic by incrementing the value of said intermediate result if said final HPG indicator indicates that a carry has propagated into said intermediate result, said sum logic is coupled to said HPG logic and to said arithmetic logic;
- and
- overriding the value of said arithmetic result with a constant overflow saturation value when an overflow has occurred and overriding the value of said arithmetic result with a constant underflow saturation value when an underflow has occurred using a saturation logic that is coupled to said sum logic.
Dependencies are inferred from the claim text.