Clustered processors in an emulation engine
AssigneeQuickturn Design Systems, Inc.
InventorsWilliam F. Beausoleil, Tak-kwong Ng, Helmut Roth, Peter Tannenbaum, N. James Tomassetti
Life of this patent
Estimating the term…
Abstract
Clusters of processors are interconnected as an emulation engine such that processors share input and data stacks, and the setup and storing of results are done in parallel, but the output of one evaluation unit is connected to the input of the next evaluation unit. A set of ‘cascade’ connections provides access to the intermediate values. By tapping intermediate values from one processor, and feeding them to the next, a significant emulation speedup is achieved.
Claims13
A method for use in a software-driven multiprocessor emulation system, wherein there are a plurality of emulation processors, each emulation processor containing an execution unit for processing multiple types of logic gate functions, with means provided for each emulation processor to switch from one logic gate function to a next logic gate function in a switched-emulation sequence of different gate functions, and wherein the switched-emulation sequence of each of the plurality of processors enables emulating a subset of gates in a hardware arrangement in which logic gates are of any type that the emulation processors functionally represent for a sequence of clock cycles, and wherein a plurality of multiplexors having outputs respectively connected to the emulation processors and having inputs respectively connected to each of the other emulation processors, and bus means connected to the multiplexors to enable an output from any emulation processor to be transferred to an input of any other of the emulation processors, an embedded control store in each of the emulation processors to store software logic-representing signals for controlling operations of the emulation processor, an embedded data store in each of the emulation processors to receive input for, and data generated by the same emulation processor under control of software signals stored in the embedded control store in the same emulation processor, and bus controls to transmit data on the bus from any emulation processor through a connected multiplexor under control of software signals stored in the embedded control store to control computational emulation of the hardware arrangement by operation of the plurality of emulation processors under software control, comprising the steps of:
- on an integrated circuit, arranging said plurality of emulation processors to form a plurality of clusters of processors such that the setup and storing of results calculated by each of said plurality of emulation processors within each of said plurality of clusters is done in parallel, but the output of one of said emulation processors within each of said plurality of clusters is made available as the input of said emulation processors within each of said plurality of clusters via a set of ‘cascade’ connections to intermediate values used in the emulation engine by tapping said intermediate values from one emulation processor within one of said plurality of clusters, and feeding said intermediate values to the next emulation processor within said one of said plurality of clusters via said cascade connections to exploit a time differential between data flow where time is measured as the time taken to perform a single emulation step.
A method for use in a software-driven multiprocessor emulation system, wherein there are a plurality of emulation processors, each emulation processor containing an execution unit for processing multiple types of logic gate functions, with means provided for each emulation processor to switch from one logic gate function to a next logic gate function in a switched-emulation sequence of different gate-functions, and wherein the switched-emulation sequence of each of the plurality of processors enables emulating a subset of gates in a hardware arrangement in which logic gates are of any type that the emulation processors functionally represent for a sequence of clock cycles, and wherein a plurality of multiplexors having outputs respectively connected to the emulation processors and having inputs respectively connected to each of the other emulation processors, and bus means connected to the multiplexors to enable an output from any emulation processor to be transferred to an input of any other of the emulation processors, an embedded control store in each of the emulation processors to store software logic-representing signals for controlling operations of the emulation processor, an embedded data store in each of the emulation processors to receive input for, and data generated by the same emulation processor under control of software signals stored in the embedded control store in the same emulation processor, and bus controls to transmit data on the bus from any emulation processor through a connected multiplexor under control of software signals stored in the embedded control store to control computational emulation of the hardware arrangement by operation of the plurality of emulation processors under software control, comprising the steps of:
- on an integrated circuit, arranging said plurality of emulation processors to form a plurality of clustered processors, each of said plurality of clustered processors sharing one input and data stacks, said clustered processors providing an emulation engine such that the setup and storing of results is done in parallel, but the output of one of said plurality of emulation processors is made available as the input of a next one of said plurality of emulation processors via a set of ‘cascade’ connections to intermediate values used in the emulation engine by tapping said intermediate values from one of said emulation processors within one of said clustered processors, and feeding said intermediate values to the next one of said emulation processors within one of said clustered processors via said cascade connections to exploit a time differential between data flow where time is measured as the time taken to perform a single emulation step.
An integrated circuit used in a processor-based system for emulating logic designs comprised of combinatorial and sequential logic gates, comprising:
- a plurality of input and data stack structures;
- a plurality of clusters of emulation processors, each of said plurality of clusters of emulation processors comprising a plurality of emulation processors, each of said plurality of emulation processors comprising an execution unit that sequentially evaluates the combinatorial logic functions;
- an interconnection network for interconnecting outputs from each of said plurality of emulation processors to inputs on any other of said plurality of emulation processors;
- and
- each of said plurality of clusters of emulation processors being associated with a corresponding one of said plurality of input and data stack structures such that outputs from said corresponding one of said plurality of input and data stack structures are provided to each of said plurality of processors within one of said plurality of clusters of emulation processors and outputs from each of said plurality of emulation processors within said one of said plurality of clusters of emulation processors are input to said corresponding one of said plurality of input and data stack structures.
An integrated circuit used in a processor-based system for emulating logic designs comprised of combinatorial and sequential logic, comprising:
- a plurality of emulation processors, each of said plurality of emulation processors comprising an execution unit that sequentially evaluates the combinatorial logic functions, wherein said plurality of emulation processors are arranged as a plurality of clusters of emulation processors;
- an interconnection network for interconnecting outputs from each of said plurality of emulation processors to inputs on any other of said plurality of emulation processors;
- and
- a plurality of cascade connections, each of said plurality of cascade connections making outputs from said execution unit available to said execution unit within a subsequent one of said plurality of emulation processors within one of said plurality of clusters of emulation processors.
Dependencies are inferred from the claim text.