Computer-aided design and analysis of circuits and semiconductor – Nanotechnology related integrated circuit design
Reexamination Certificate
1998-02-05
2002-04-02
Smith, Matthew (Department: 2825)
Computer-aided design and analysis of circuits and semiconductor
Nanotechnology related integrated circuit design
C716S030000, C326S039000
Reexamination Certificate
active
06367063
ABSTRACT:
TECHNICAL FIELD OF THE INVENTION
The present invention relates generally to reconfigurable computing systems, and more particularly to a method for performing a plurality of logic operations through programmable logic virtualization.
BACKGROUND OF THE INVENTION
Logic circuits are commonly used to perform a multitude of functions in electronic products, such as pattern recognition, communication, compression/decompression, encryption, and network protocol processing. As the complexity of these functions increases, so does the size and cost of the logic circuits needed to perform them.
Programmable logic devices are well suited for many applications as they can be reprogrammed to perform several different tasks. Programmable logic devices commonly consist of an array of logic elements, and the connections and functions of the logic elements are programmable. Once built into a product, they are not typically reprogrammed. Also, although programmable logic devices are flexible, they still suffer from a scalability problem. As the complexity of the functions they are required to perform increases, the number of logic elements in the array must increase, thereby increasing the size and cost of the device. After a certain point, more than one device is typically required thereby further increasing size and cost.
SUMMARY OF THE INVENTION
A logic device for performing a plurality of logic functions by sharing limited logic resources over time is described. Multiple contexts are created to facilitate the resource sharing, and special registers are used to allow key data to persist between context switches.
In accordance with a first aspect of the invention, a method for performing a plurality of logic operations, is provided. The method comprises the steps of providing a first context number. The method further comprises the step of providing a set of configuration bits and selecting a first subset of the configuration bits based on the first context number. Still further, the method comprises providing a first operand combination and selecting a first member of the first subset of the configuration bits based on the first operand combination. Additionally, the method comprises storing the first member of the first subset of the configuration bits in a memory, wherein the first member of the first subset of the configuration bits is associated with the first context number.
In some preferred embodiments, the plurality of logic operations is partitioned into two or more contexts, wherein each context represents a portion of a logic circuit. In other preferred embodiments, the set of configuration bits represents a logic circuit, wherein the set of configuration bits represents a collection of possible outputs for a logic function. In still other preferred embodiments, the set of configuration bits may be provided by retrieving the bits from a memory.
In some embodiments, the first subset of the configuration bits represents a portion of a logic circuit and/or a collection of possible outputs for a logic function. In certain embodiments, the method further comprises the step of providing a second context number. In such an instance the second context number is associated with a representation of a portion of a logic circuit. In such an embodiment, some portion of the first operand combination may be provided by retrieving a stored member of a second subset of the configuration bits. Further, the second subset of the configuration bits represents a portion of a logic circuit and/or a collection of possible outputs for a logic function. Still further in such an instance, the stored member of the second subset of the configuration bits may represent an output of a logic function.
In other embodiments, the first operand combination is provided by selecting a second member of the first subset of the configuration bits based on a second operand combination. In such an instance, the second operand combination may be provided by retrieving a stored member of a subset of the configuration bits and/or the second operand combination may be provided by selecting a member of a subset of the configuration bits. Further, the second operand combination preferably represents a particular combination of inputs to a logic function and the second member of the first subset of the configuration bits preferably represents an output of a logic function. In some embodiments, the first operand combination represents a particular combination of inputs to a logic function. In other embodiments, the first member of the first subset of the configuration bits represents an output of a logic function.
In accordance with another aspect of the present invention, an apparatus for performing a plurality of logic operations is provided. The apparatus comprises a selector for selecting a subset of a set of configuration bits and for selecting a member of the subset of the configuration bits, wherein the subset of the set of configuration bits is selected based on a context number and the member of the subset of the configuration bits is selected based on an operand combination and a memory device for storing the set of configuration bits and for storing the member of the subset of the configuration bits.
In some preferred embodiments the selector comprises a multiplexer. In other embodiments the selector comprises a first multiplexer coupled to a second multiplexer. In certain embodiments the memory device comprises a static random access memory (SRAM) and/or a bank of registers.
REFERENCES:
patent: 4761733 (1988-08-01), McCrocklin et al.
patent: 5426378 (1995-06-01), Ong
patent: 5444853 (1995-08-01), Lentz
patent: 5596742 (1997-01-01), Agarwal et al.
patent: 5640327 (1997-06-01), Ting
patent: 5649230 (1997-07-01), Lentz
patent: 5742180 (1998-04-01), DeHon et al.
patent: 5815701 (1998-09-01), Slavenburg
patent: 5949994 (1999-09-01), Dupree et al.
patent: 5956518 (1999-09-01), DeHon et al.
patent: 6009499 (1999-12-01), Koppala
patent: 6081849 (2000-06-01), Born et al.
patent: 6163840 (2000-12-01), Chysos et al.
patent: 6175247 (2001-01-01), Scalera et al.
S.M. Scalera et al., The Design and Implementation of a Context Switching FPGA, IEEE Symposium on FPGAs for Custom Computing Machines, pp. 78-85, Apr. 1998.*
T. Korpiharju et al., TUTCA configurable logic cell array architecture, IEEE International ASIC Conference and Exhibit, pp. 3-3/1-4, Sep. 1991.*
B.K. Fawcett, Taking Advantage of Reconfigurable Logic, IEEE International ASIC Conference and Exhibit, pp. 227-230, Sep. 1991.*
D. Chen et al., A Reconfigurable Multiprocessor IC for Rapid Prototyping of Algorithmic-Specific High-Speed DSP Data Paths, IEEE Journal of Solid-State Circuits, pp. 1895-1904, Sep. 1991.*
Andre DeHon, “DPGA-Coupled Microprocessors: Commodity ICs for the Early 21stCentury”, MIT Transit Project Technical Report, Jan. 1994.
Andre DeHon, “Transit Note #118 Notes on Coupling Processors with Reconfigurable Logic”, MIT Transit Project, Mar. 21, 1995, pp. 1-40.
Ralph D. Wittig, “OneChip: An FPGA Processor With Reconfigurable Logic”, M.A.Sc. Thesis Oral Presentation, University of Toronto, Department of Electrical & Computer Engineering, Sep. 1995, pp. 1-21.
Chow Lap-Wai
Harding John A.
Schwartz David A.
Duraiswamy V. D.
Hughes Electronics Corporation
Sales M. W.
Smith Matthew
Thompson A. M.
LandOfFree
Method and apparatus for selectively performing a plurality... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for selectively performing a plurality..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for selectively performing a plurality... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2893488