Systems and Methods for Implementing Logic in a Processor
AssigneeInternational Business Machines Corporation
InventorsFadi Yusuf Busaba, Bryan Lloyd, Michael Thomas Vaden
Life of this patent
Estimating the term…
Abstract
Systems, methods and media for implementing logic in the arithmetic/logic unit of a processor are disclosed. More particularly, hardware is disclosed for computing logical operations with minimal hardware by organizing the execution unit such that the propagate and generate functions required for the adder can be used as a basis to implement the bitwise logical instructions. The result of these functions is computed before execution of the instruction by an execution macro in the arithmetic/logic unit.
Claims19
A method for implementing logic in an arithmetic/logic unit, comprising:
- receiving two operands;
- computing a generate function result that is a logical AND or a logical NAND of the two operands;
- computing a propagate function result that is a logical OR or a logical NOR of the two operands;
- transmitting the generate function result to an execution macro of the arithmetic/logic unit that can compute the complement of the generate function result;
- transmitting the propagate function result to an execution macro of the arithmetic/logic unit that can compute the complement of the propagate function result;
- transmitting the generate function result and the propagate function result to an execution macro of the arithmetic/logic unit that can compute a logical complement and a logical NAND or a logical AND to produce a logical XOR of the two operands and a logical EQV of the two operands.
An arithmetic/logic unit, comprising
- a generate function preceding an execution macro, that generates a logical AND or a logical NAND of two operands;
- a propagate function preceding an execution macro, that generates a logical OR or a logical NOR of the two operands;
- complementation circuitry within an execution macro that receives a generate function result, to compute the complement of the generate function;
- complementation circuitry within an execution macro that receives a propagate function result, to compute the complement of the propagate function;
- and
- an execution macro, comprising an inverter and a NAND or AND gate, that receives a generate function result and a propagate function result and computes operations comprising a logical XOR of the two operands and a logical EQV of the two operands.
A computer system for processing instructions and data, comprising
- a memory for storing the instructions and data;
- a generate function, external to an adder, that generates a logical AND or a logical NAND of two operands of the data received from the memory;
- a propagate function, external to an adder, that generates a logical OR or a logical NOR of the two operands;
- an adder that receives a result from the generate function and a result from the propagate function and computes the sum of the two operands;
- an execution macro, comprising an inverter and a NAND or AND gate, that receives a generate function result and a propagate function result and computes operations comprising a logical XOR of the two operands and a logical EQV of the two operands.
Dependencies are inferred from the claim text.