Nothing Special   »   [go: up one dir, main page]

US20120278772A1 - Hardware definition method including determining whether to implement a function as hardware or software - Google Patents

Hardware definition method including determining whether to implement a function as hardware or software Download PDF

Info

Publication number
US20120278772A1
US20120278772A1 US13/491,935 US201213491935A US2012278772A1 US 20120278772 A1 US20120278772 A1 US 20120278772A1 US 201213491935 A US201213491935 A US 201213491935A US 2012278772 A1 US2012278772 A1 US 2012278772A1
Authority
US
United States
Prior art keywords
hardware
data
registers
paes
pae
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/491,935
Inventor
Martin Vorbach
Frank May
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PACT XPP Technologies AG
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US13/491,935 priority Critical patent/US20120278772A1/en
Publication of US20120278772A1 publication Critical patent/US20120278772A1/en
Assigned to PACT XPP TECHNOLOGIES AG reassignment PACT XPP TECHNOLOGIES AG ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KRASS, MAREN, RICHTER, THOMAS
Priority to US14/325,150 priority patent/US20140331194A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Definitions

  • the present invention relates to a preferably reconfigurable architecture, or a preferably partially reconfigurable architecture, and a method for programming a cell element field, the elements of the field being able to execute a number of different functions, in particular such a multitude of functions that an all-purpose processor is obtained.
  • FIG. 1 shows a known method of creating and programming a reconfigurable architecture in the sense of the remarks below.
  • the figure shows on the right that a library containing modules for a larger chip is provided, which concerns, among other things, an ALU-PAE definition, a RAM-PAE definition etc.
  • these different definitions are combined in an XPP generator and afterwards a synthesis is performed for the output obtained from the XPP generator in order to generate a mask set for the synthesized hardware on the basis of the result of the synthesis such that a chip may be produced.
  • the left side of the diagram shows a library for a number of programs (software parts) in a language such as NML, this special language being known from other publications of the applicant.
  • a program is written by using such library software parts, it being obviously possible to use additionally and/or exclusively also software parts not contained in the library.
  • the program is then compiled, compiling here being understood to include also placing and routing, as required.
  • the compiler needs information that refers to the actual target hardware design.
  • the compiler also has such information.
  • the configuration(s) generated by the compiler are than made to run on the hardware as run time configuration.
  • the laborious programming of this known method of instantiated hardware objects then provides for a collection of software objects to be accepted which are themselves to be abstractions of the instantiated hardware objects, each software object being intended to include a list of hardware objects that are used in the software object as well as a list of rules for combining the listed hardware objects and an instruction file that is to be loaded into the listed hardware objects; a description of the collection of physically instantiated hardware objects then having to be accepted; an identifier having to be allocated to each of the physically instantiated hardware objects from the list of hardware objects and an initialization file having to be created for the collection of physically instantiated hardware objects by using the identifier in order to replace symbolic information in the instruction files.
  • a reconfigurable architecture is understood in the broadest sense as an architecture in which at least one of the elements processing, storing and/or transmitting cross-linkages of data is itself modifiable; in a preferred variant, the term reconfigurable architecture being understood, without this being referenced each time, as a dynamically reconfigurable architecture, unless the respective semantic context indicates otherwise.
  • dynamic can refer to the capability of reconfiguration occurring at a speed that allows for a complete and/or partial reconfiguration at run time; the reconfiguration may thus occur for all cell elements, connecting elements etc. of a field, only for a subgroup of a field and/or for an individual element of the field.
  • the reconfiguration may be induced, reference being made here for disclosure purposes to earlier patent documents of the applicant which are all incorporated to their full extent, e.g., by a possibly separately built up and/or pre-loaded central entity, by an adjacent cell and/or a cell within the element itself, which determines in the course of the data processing performed by it that subsequently another or additional data processing is required prior to or during the transmission and/or output of the data to another cell or outside the cell element field.
  • a reconfiguration of elements lying upstream in the data path may also be brought about.
  • the reconfiguration may be forced from the outside, i.e., outside of the field, and/or from inside and/or may be requested.
  • Reconfiguration information is transmittable over separate reconfiguration lines, (data) buses and/or in direction connection from cell to cell.
  • the direct data connection from cell to cell may occur alternatively and/or additionally to an interconnection of multiple cells by connection to longer regions stretching over extended parts of the field and/or by a reconfiguration entity and/or external units such as data memories, data sources and/or data receivers.
  • data receivers or data sources may be, for example, displays, data interfaces, external (host) processors, co-processors, microcontrollers and/or chip-integrated sequencer units and the like.
  • Reconfiguration information may, e.g., also be transmitted together with the data, e.g., also interested in data words of a longer data packet, it being in any event possible for the data exchange between the cell elements to occur preferably in an asynchronous manner.
  • the transmission of configuration data from cell to cell may occur by transmitting actual configuration words for configuring a configurable cell element and/or by transmitting triggers, in particular in trigger vector form, a selection being made by these triggers between a plurality of configurations still to be fed in and/or are already fed in for the trigger vector target receiver cell element.
  • trigger vectors may also be interposed in order to select between a plurality of different configurations, in particular configurations stored in advance, in the manner of a configuration ID. If, which is regarded as possible, several configurations are executable on one configurable cell element in a time-blending manner, as is provided for example in PCT/EP 02/02402 (PACT25/PCTE), all originating from the present applicant, then it may be possible in a preferred manner, to transmit along to the cell elements even in the data transmission information that relates to the association of a data packet with a certain task to be processed.
  • a currently considered reconfigurable architecture for which a specific program is to be compiled, is a (fully) homogeneous field, in which for example as in the known XPP of the applicant a plurality of cells having in particular segmented buses in between are provided, it being possible, but not absolutely necessary, for the cells to be ALUs, in part having an extended range of function (EALUs), compare PCT/DE 97/02949 (PACT02/PCT), and (multi-stage) register units coupled to the input and output buses being possibly provided on both sides of the ALU, compare, e.g., FREG, BREC in PCT/EP 01/11299 (PACT22a/PCT), as well as respective refinements in other patent documents of the applicant. Furthermore, reference is made in this regard to input-output registers in front of the ALU itself, which under a different name are also found in other writings of the applicant.
  • EALUs extended range of function
  • PACT02/PCT compare PCT/DE 97/0
  • the communication of the cell elements is preferably subjected to protocols such as the applicant has already described in connection with the XPP architecture.
  • the cell elements may take the form of and/or include in particular ALU-PAEs, EALU-PAEs, RAM-PAEs, RAM+ALU-PAEs, function-folding PAEs (see DE 10 2005 005 766.7, DE 10 2005 010 846.6, DE 10 2005 014 860.3, DE 10 2005 023 785.1, EP 05 005 832.0, EP 05 019 296.2, EP 05 020 297.7, EP 05 020 772.9, and (PACT62 ff)), graph-folding PAEs, sequencer structures connected via command lines as well as PAEs, which may have, in addition to a configurable or adjustable unit such as an ALU, a memory such as a circular buffer and the like, in particular those having several pointers etc., also parts firmly defined once in their function, for example FPGA-like logic circuits that are defined, FPGA-like groups that are reconfigurable only seldom and preferably without recourse to preferred, in particular faster configuration methods and/or
  • ASIC-like logic circuits which may belong to the cell elements, it is possible to fall back on fixed functions, for example ASIC-like programmed DCT algorithms, FIR filters or IIR filters, VITERBI algorithms etc., which may be of significance for various applications such as in general purpose processors, general purpose co-processors, microcontrollers, sequencers, image editing and/or image processing such as for HDTV, cameras, base stations, mobile telephones, radio receivers (software-defined radio), smart antennas, CODECs and/or parts for these.
  • Embodiments of the present invention make possible at least partial improvements in the design and/or with respect to the usability of structures and architectures mentioned at the outset.
  • FIG. 1 shows a procedure according to the related art.
  • FIG. 2 shows an improved method in accordance with the present invention for creating and/or programming hardware.
  • FIG. 3 shows a parameterizable hyper-PAE according to an example embodiment of the present invention.
  • FIG. 4 shows insertion and removal of registers according to an example embodiment of the present invention.
  • FIG. 5 a shows a connection of an element array to a hardware module by way of FIFO memories according to an example embodiment of the present invention.
  • FIG. 5 b shows a connection of an element array to a hardware module with RAM memories as coupling elements according to an example embodiment of the present invention.
  • FIG. 6 a shows a connection of an element array to a hardware module by way of FIFO memories, where trigger vectors are transmitted, according to an example embodiment of the present invention.
  • FIG. 7 shows a coupling arrangement according to an example embodiment of the present invention.
  • FIGS. 8 a - 8 d show spatial arrangements of hardware modules with respect to an NW field, according to an example embodiment of the present invention.
  • FIG. 9 shows various interconnections between hardware modules and between the hardware modules and parts of an element array, according to an example embodiment of the present invention.
  • FIG. 2 shows essentially parts of the design flow as is also known in FIG. 1 from the related art, but it supplements and extends or modifies it in an inventive manner. As will become apparent and be explained below, the following is of particular importance in this regard.
  • a high level language program in which initially no reference needs to be made to actual hardware characteristics.
  • This program may be written in the conventional high level languages such as C++, JAVA, MATLAB etc.
  • programming is performed in abstraction from any hardware, ergo at this point one preferably, but not necessarily, uses an entirely, at least partially hardware-abstracted language.
  • These hardware-abstracted programs or this hardware-abstracted program is then translated as known per se preferably with reference to a quasi-maximally free hyperset, that is, a superset of possible hardware objects, which for individual objects may include a plurality of variants, these variants also for example, which is preferred, possibly differing from one another in a manner determinable by parameters in one or in multiple characteristics.
  • the parameterization may be performed interactively by a programmer, in particular by interaction with a place-and-route tool, but may also be suggested by the latter, possibly even in a fully automatic manner, and possibly only be confirmed and/or stipulated without confirmation.
  • heuristic methods are possible as well, possibly even interactively and/or by open-loop and closed-loop control of a place-and-route tool.
  • an iterative procedure using the place-and-route tool or another tool in the programming and hardware definition environment may be performed. It should be pointed out that such iterations may occur manually, semi-automatically and/or alternatively and particularly preferentially in a fully automatic manner.
  • SETPOINT variables may be specified for this purpose, which are to be reached by the iteration, by trial and error for example.
  • quasi-maximally free incidentally means for the hyperset that the number of limitations to generally available objects is as low as possible, that is, that as many degrees of freedom as possible remain. Notwithstanding the demand for as many degrees of freedom as possible, however, limitations may be necessitated by certain factors such as, e.g., the constructability of modules in the target semiconductor implementation, which is why the term “quasi-” maximally free is chosen. Incidentally, it should be pointed out that in certain cases the quasi-maximally free hyperset needs to contain only one PAE, which then however must be largely and in many parameters parameterizable, from which by parameterization many mutually distinct PAEs are derivable.
  • program parts f(3), f(n), f(n-2) are selected for this purpose.
  • program parts may and will be configurations or configuration parts or an individual configuration for an XPP field or the like, which is composed of an at least partially reconfigurable set of elements such as ALU-PAEs, graph-folding PAEs, function PAEs, MAC PAEs, RAM PAEs, ROP PAEs and/or input-output PAEs, which are described in the hyperset or describable by the latter, in particular completely describable by parameterization.
  • the selected program parts are initially on the already known PAEs existing in the hyperset, which incidentally may include, in addition to the previously mentioned PAEs, also PAEs that are made up of a combination of the functionalities of the above-listed PAEs, that is, for example, a parameterizable or parameterized PAE having a parameterizable set of ALUs of parameterizable bit width and parameterizable range of function, it being possible for this PAE to include additional graph-folding, parameterizable elements, just as function-folding, parameterizable elements parameterizable with respect to the bit width for example and/or in particular parameterizable memory areas having pointers and/or command-control line of one or multiple ALUs, or other data-modifying parts in the PAE, in order to implement sequencers or microprocessors, input-output elements and the like.
  • FIG. 3 An example of a still parameterizable hyper-PAE is shown in FIG. 3 .
  • various parameterizable units such as, e.g., bus inputs having m inputs, m representing a parameter, that is, m different operands may be supplied to one PAE.
  • the buses are respectively k bits wide, k in turn representing a parameter, and n different buses are provided, from which the m different inputs are picked off.
  • the total number of buses, n also represents a parameter.
  • different operand-combining units are then shown by way of example, in the exemplary embodiment shown in FIG.
  • divider 3 for example a divider having a combinatorial network, a multiplier, an ALU stage, a Boolean logic, a barrel shifter stage as well as a floating point unit.
  • the aforementioned units in turn are parameterizable, for example with respect to the operand width, that is, they may be, e.g., 8 bit, 16 bit, 32 bit or 64 bit stages or obviously stages of other bit width as well, it being additionally possible for the range of function, for example of the ALU, the floating point unit etc. to be defined via parameters.
  • the flow point unit may be, only by way of example, a floating point unit that is capable of at least one, preferably several of the following combinations in the still parameterizable definition: multiplication, addition, subtraction, division, floating point combination, look-up tables, possibly having an interpolation option for certain functions such as trigonometric functions (sine, cosine, tangent), sequential calculations as for Taylor series, it being possible for special hardware to be provided for certain approximations/interpolations and it being possible preferably in addition for a parameterization of the floating point unit to be provided with respect to the data word width in the mantissa and/or exponent.
  • a floating point unit that is capable of at least one, preferably several of the following combinations in the still parameterizable definition: multiplication, addition, subtraction, division, floating point combination, look-up tables, possibly having an interpolation option for certain functions such as trigonometric functions (sine, cosine, tangent), sequential calculations as for Taylor series, it being possible for special hardware to be provided for certain
  • a parameterizable library for such a hyper PAE may have recourse, for example, to a procedure in which so-called ifdef constructs are used. These supply certain program segments to a translation (in hardware circuits, which must be actually provided on a chip) only if corresponding definitions are provided for this, for example by specifying the parameters, for example the range of function. It should be mentioned that this is also possible for variables and elements of the hyper PAE such as the configuration registers specified also at varying depth, possibly the protocols (compare RDY/ACK, credit protocols, RDY/ABLE etc.) capable of being implemented on a PAE, just as the parameterization of an output, different multiplexer stages in a PAE etc.
  • a preferably automatic and/or partially automatic converter step is now executed in a preferred embodiment.
  • This is indicated in the figure as NML2V and represents a converter step by which a hardware language description is determined for the program parts that were selected, possibly by taking into account the reason for the selection.
  • the quasi-maximally free hyperset is reduced to a parameterized and/or partially parameterized hypersubset, in particular fewer degrees of freedom being specified, that is, no modification being required.
  • the bus widths to the cells may already be defined for example.
  • the already defined parameters which were defined in the transformation compilation for example, are made available to the NML-to-VERILOG converter or, more generally, to the hardware language description-generating converter, which may be done by corresponding indications on the program parts, for example in the form of comment lines and/or by data separated from the actual program part.
  • the transformation compiler is thus designed for the generation of parameterization information of hardware on which it is to be based.
  • hardware-describing code that is, code describing degrees of freedom, is also generated.
  • the configuration that is defined for purposes of the present consideration (bearing in mind that multiple configurations to be processed successively may be present in the PAE for sequencer-like PAEs or PAEs operated in a sequencer-like manner) thus indicates that certain units are not required and it is then possible to ascertain that for example a multiplexer connected downstream from an operand combination stage, which is used to select which operand combination unit should set its output or outputs to an output region, is dispensable or partially dispensable.
  • the multiplexer typically situated behind the multiple operand combination units of a typical PAE may thus as a rule be readily simplified in a given hardware module.
  • An invention per se is likewise seen in the removal of multiplexer stages and/or complete multiplexer units in the determination of hardware modules with recourse to hyper PAEs or a quasi-maximally free set of hyper PAEs.
  • the removal of elements not required in a configuration to be executed in a PAE may occur by the NML2V converter, that is, in the isomorphous hardware simplification means, and/or that the selection of hardware elements to be removed as not required may also be performed by way of a synthesis.
  • the configuration register does not necessarily have to contain only one constant value as was, e.g., depicted for reasons of better illustration.
  • the hardware module may also be defined in such a way that freely definable configurations are still executable on the defined hardware module, these freely definable configurations then in each individual element accessing a reduced set of functions and/or a limited connectivity, for example only with respect to next-neighbor connections instead of global bus connection extending over many cells being possibly provided between the individual elements of the thus defined hardware module, whereas nevertheless a multidimensional, that is, also possibly clearly more than two-dimensional connectivity and/or a toroidal, even multi-dimensionally toroidal connectivity is feasible.
  • the hardware description code of the NMLV2 converter thus generated preferably automatically is now still optimized in a particularly preferred variant of the present invention.
  • the aim of this optimization is on the one hand to allow for the elimination of the registers, combination units etc. in a parameterizable PAE that are not required for the respective functionality; reference being made in this connection to the earlier applications of the present applicant, compare PCT/EP 03/08080 (PACT30/PCTE) and PCT/EP 03/08081 (PACT33/PCTE).
  • the present application and invention among other things in one of its aspects aims to avoid this, which contributes toward a reduction of the size and thus possibly also of the execution speeds of a dedicated hardware area.
  • the corresponding changes in the parameterizable and already partially parameterized hyper PAE take place in a retiming stage, in which initially unnecessary registers are removed.
  • the removal of the registers first results in a decapsulation of functional parts previously encapsulated by the use of the PAE definition. This is by no means critical, however. On the contrary, in the case of a suitably intelligent design chain, it is rather very advantageous.
  • the design chain hereby provided according to the present invention inherently features the intelligent layout, which renders obsolete the complex encapsulation required in the related art, for example by input-output FIFOs and/or registers, which are practically controllable only via suitable protocols such as RDY/ACK protocols.
  • the internal registers are removed, that is, the registers situated between the considered cells at their mutual junctions.
  • the removal of the registers does not occur blindly for all registers, but rather there is a preferably readily automated selection of registers that are removable or that must remain in the piece of hardware.
  • constants should remain in the piece of hardware.
  • registers for preloading values PRELOAD registers
  • Additional registers are initially not required in a given implementation of the method.
  • the present invention provides for the registers to be removed nevertheless, but for a synthesis step to be performed in order to ensure a correct timing of the data processing by the considered piece of hardware. Preferably, therefore, a synthesis step is performed according to the present invention. This also applies to the inputs/outputs of the hardware module to be constructed.
  • bus-internal registers may readily be used, that a feeding-in/reading-out of data in RAM-PAEs having sufficient memory depth is possible and/or a reading-in/reading-out of data in the preload memory, if required at all, may occur, or the provision of input-output registers at the end and at the beginning of the piece of hardware, unless for example the long-familiar FORWARD-BACKWARD registers are also to be provided for purposes of use by other PAEs.
  • constant contents of RAMs are implemented by ROMs or mapped onto ROMs.
  • the removal of the registers will now change the timing behavior. Initially, the frequency behavior of the considered circuit to be provided may deteriorate, possibly even significantly. This may be compensated by again inserting registers in suitable places, which are either arranged according to fixed rules, for example by inserting less deep register stages in places where previously deeper register stages were provided, by inserting register stages of the same depth as those that were previously removed, or, particularly preferably, by considering the signal run times through the remaining hardware circuits in order to identify places at which registers are required to increase the frequency; one skilled in the art being able to perform such a procedure per se without deeper explanation.
  • the hyper PAE even in the case of a given parameterization, will normally still include functionalities that are not required in the hardware module. For example, it would be conceivable that a hardware module is written for a program part in which no divisions are required at all. In this case, a divider stage could be omitted in a PAE. A division now requires a certain delay, that is, a run time across the module. This will be significantly greater than for example the run time across an adder stage. The primarily given data run time balance of the parameterized or hyper PAE will be such that the run times of a divider stage are taken into account as well.
  • a divider stage is no longer required, which is discernible, then such non-required unit may and preferably will be removed from the PAE, which then changes the delay of the data run through the unit.
  • the hardware module should also be adapted accordingly when retiming. Fundamentally, it should be pointed out that this is not absolutely necessary, however. A certain advantage is already obtained if between the individual stages of a hardware module composed of multiple hyper PAEs non-required register stages are removed.
  • non-required parts are also removed from the hyper PAEs, which may occur during the synthesis, for example, such as, e.g., the removal of a divider stage discussed above, other stages such as memory stage elements, multipliers, floating point units etc. being also removable, if indicated.
  • a synthesis is preferably performed, by which the timing behavior is analyzed in an automated manner in order then either automatically to insert registers in required places and/or to provide indications where a programmer should insert registers in order to ensure a proper timing behavior.
  • divider stages were mentioned above.
  • protocol-relevant and data communication-relevant registers may be provided in a module or array; such being readily removed at first.
  • the division shows, however, that certain registers shall not and/or cannot be removed.
  • the division may be implemented in two ways if a division stage to be provided in hardware is to be constructed. The first possibility provides for a combinatorial network, in which no registers are required. The second variant provides for a sequential division, in which a value is computed iteratively again and again, comparable to the manual computation of a division.
  • the hyper PAEs may be marked as to whether certain registers are algorithmically required such that they are not automatically removed in an initial removal of the registers.
  • analyses may be performed to the effect that registers having a feedback to circuit regions located upstream of the data flow are not removed. For such registers are automatically algorithmically relevant registers. It should be pointed out that even algorithmically required registers are obviously removable if the algorithm with which they are associated is not executed; something that happens for example in the case of a sequential division generally provided in a hyper PAE if the division per se is not implemented in the hardware module to be constructed.
  • registers are then inserted with the retimer. It should be mentioned that it is in principle possible to insert the registers at any place in the hardware module, as required. In particular, if performance efficiency is the sole concern, then it is possible to insert register within a (parameterized) hyper PAE that is provided in the hardware module. It should be pointed out, however, that a simpler method of register insertion is obtained if on the interfaces between multiple hyper PAEs in the hardware module to be designed again those registers or a part of those registers are inserted, which were initially removed. The reason for this is to be seen in the fact that an optimum insertion in these places is possible for the reason that the entire starting definition of the hyper PAEs is selected to be such that an insertion is automatically possible in these places.
  • FIG. 4 shows how initially registers are removed for an only exemplarily pipeline-like, only exemplarily unbranched hardware module. These are shown as “removed registers” in a shaded manner.
  • these registers are the input/output protocol registers, that is, for example the FREG/BREG of the hyper PAEs.
  • PAEs without FREG/BREG only those registers that are provided in the direct coupling path of the ALUs and other logic elements for operand combination in the PAE in the connections to the buses as protocol registers.
  • the insertion of registers between the previously used and underlying (parameterized) hyper PAEs is particularly surface area-efficient since, e.g., the use of general ALUs in the hyper PAEs would there require a multitude of registers even though the insertion would readily be possible there as well, for example in order to achieve particularly high frequencies.
  • the register stages or FIFO stages to be inserted or to be newly introduced or reintroduced are usable not only with a view to, e.g., latencies, but rather also in order to restore a balance of data flow paths possibly destroyed by the initial removal of registers. It should be pointed out that initially after removing the registers a balanced data path automatically exists, but that possibly timing conditions are not maintained; and that then initially the timing behavior is restored by inserting additional registers, but that because of that the balance between the individual data paths may be disturbed.
  • the output from the retimer is then a hardware code definitely executable by recourse to the hyper PAEs or elements of the quasi-maximally free hyperset, which is frequency-optimized and/or throughput-optimized through the retiming.
  • the surface area is automatically optimized.
  • the definition thus obtained of new hardware areas as hard modules may now be integrated into the XPP library.
  • the thus determined hardware module functionalities may be integrated into and/or be connected to an XPP field or, more generally, a field of reconfigurable and/or partially reconfigurable elements.
  • One possibility, for example, is to provide a complete PAE, which does not have an ALU or an individual sequencer as central functionality, but rather the specified hardware functionality of the hardware module.
  • FIG. 5 a shows on the left a combination of an XPP field or an FPGA field with a hardware module of the present invention, the connection of the hardware module to the field occurring via FIFO memories in the input path and/or output path, preferably via FIFOs in both paths.
  • the exchanged data packets are given identification information in the form of a packet header or additional identification bits on each individual word or the like.
  • identification information in the form of a packet header or additional identification bits on each individual word or the like.
  • identification information in the hardware module remains unchanged and/or is changed only in such a way that the associated data packet is processed in the manner provided following the return of the processing result to the receiver, that is, for example the XPP field, for example in that it is processed further using the correct configuration.
  • FIG. 5 b shows how for coupling a hardware module in the input path and/or output path it is possible to provide coupling elements in the form of RAM memories, in particular even of RAM PAEs, rather than in the form of FIFOs.
  • This makes it possible in particular to provide respectively dedicated memory areas both for writing data from the field for the hardware module as well as when writing from the hardware module for the field, that is, when transferring data from the field to the hardware module on the one hand, and when (here:) returning results from the hardware module to the field on the other hand.
  • the hardware module may use the XPP field as a more flexible data processing element and/or where mixed forms are possible, that is, where data are shifted back and forth in ping-pong-like fashion or in a less regular manner for overall processing.
  • FIG. 6 a shows a variant in which again data are exchangeable via FIFO memories and in particular again FIFO memories are present either in the input branch and, preferably or also in the output branch.
  • trigger vectors are now transmitted.
  • the combination of identification information with programming information and/or trigger information or status information, which are exchanged in order to trigger certain data processing events or processes, should be mentioned once more explicitly.
  • FIG. 6 b shows that in the data exchange, a “time stamp”, that is, information regarding the temporal priority or the temporal validity of a data packet is transmitted as well.
  • this transmission occurs in read-write memories (RAMs).
  • the time mark that is co-transmitted may be used to select those data packets, which are to be processed next.
  • FIG. 8 shows that these may be provided either as columns or lines at the edge of a field, it obviously also being possible for a field to be surrounded by such hardware modules or hardware parts, and/or that individual elements or field groups may be distributed over the field, as shown in FIG. 8 on the lower left.
  • a hardware element and/or a group of hardware elements according to the present invention could also be set next to an XPP field or other field or, assuming appropriate manufacturing processes, could be placed on top or underneath such a field.
  • the usability by integration on a single, jointly manufactured chip should be disclosed as a possibility in the same manner as those of manufacturing the separate elements independently and connecting them.
  • the setup is preferably connected via internal buses, whereas in an arrangement next to the field a connection via I/O connectors is preferred.
  • connections may be established alternatively via I/O ports and/or via internal buses.
  • bus lines or other lines may be drawn across the hardware elements that are set between field elements, if necessary.
  • Hardware elements that are set into a field may also be connectable by separate lines, as required.
  • the arrangement in columns is incidentally clearly preferred, a positioning of the column at the edge or in between being preferred depending on for what purposes a data processing unit having a hardware part of the present invention is to be used.
  • the number of hardware modules will be selected in such a way that on the one hand the data processing tasks to be performed may be solved quickly and efficiently, and that on the other hand the form factor is observed when inserting into or next to a field.
  • the hardware modules of the present invention may additionally have separate I/O connections for communication with external elements such as memories and the like, if necessary.
  • FIG. 9 it is possible incidentally to allow for a connection between the hardware modules of the present invention among one another and/or certain field element parts, which is either permanently fixed, alternatively and preferably, however, is set up only temporarily.
  • a hierarchically ordered bus system allows for global bus lines that may be set up and/or dismantled.
  • PACT07/PCT the setup and/or dismantling of bus lines
  • the range of function of the hard module is selected to be such that the range of function at the desired place respectively corresponds to the set union of the operand combinations etc. executed or to be executed using different configurations. It should be pointed out that in a multi-configuration hard module definition, fixed configurations may be provided, if indicated, which are provided in a fixed manner in the hardware module, compare PCT/EP 03/08080 (PACT30/PCTE).
  • the ranges of function of the individual hard module areas which are obtained by parameterization, that is, the definition of parameters of the hyper PAEs, are preferably selected to be such that respective computing units, considered individually, have still a minimal range of function.
  • parameterization that is, the definition of parameters of the hyper PAEs
  • the configurations that are divided are executed in such a way that multiplications are always performed in the same PAE if in each configuration only one multiplication is required, and, instead of a multiplier stage, in another PAE, the data lines to be addressed by a certain configuration, required for the return of data or the transmission of data, in particular lines to be implemented here too as next-neighbor connections, are implemented possibly at a lower surface area requirement.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

A hardware definition system and method includes a computer processor analyzing software function modules of a software program, and generating, for each of at least a subset of the software function modules, and on the basis of the analyzing step, a respective setting indicating whether the respective function module is to be implemented as a respective hardware module or as a software module executed on a hardware module defined in a hardware module library.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of and claims priority to U.S. patent application Ser. No. 12/087,916, filed on Dec. 2, 2008, which is the National Stage of International Patent Application Serial No. PCT/EP2007/000380, filed on Jan. 17, 2007, the entire contents of each of which are expressly incorporated herein by reference.
  • FIELD OF THE INVENTION
  • The present invention relates to a preferably reconfigurable architecture, or a preferably partially reconfigurable architecture, and a method for programming a cell element field, the elements of the field being able to execute a number of different functions, in particular such a multitude of functions that an all-purpose processor is obtained.
  • BACKGROUND INFORMATION
  • A method according the related art with respect to a design flow is shown in FIG. 1. FIG. 1 shows a known method of creating and programming a reconfigurable architecture in the sense of the remarks below. The figure shows on the right that a library containing modules for a larger chip is provided, which concerns, among other things, an ALU-PAE definition, a RAM-PAE definition etc. As required and specified, these different definitions are combined in an XPP generator and afterwards a synthesis is performed for the output obtained from the XPP generator in order to generate a mask set for the synthesized hardware on the basis of the result of the synthesis such that a chip may be produced.
  • The left side of the diagram shows a library for a number of programs (software parts) in a language such as NML, this special language being known from other publications of the applicant. Then a program is written by using such library software parts, it being obviously possible to use additionally and/or exclusively also software parts not contained in the library. The program is then compiled, compiling here being understood to include also placing and routing, as required. For this purpose, the compiler needs information that refers to the actual target hardware design. The compiler also has such information. The configuration(s) generated by the compiler are than made to run on the hardware as run time configuration.
  • It has also already been proposed (WO 2004/114166) to provide a so-called bottom-up approach in hardware design, an integrated circuit development system having been provided, which included a description library of a multitude of hardware objects, which are each structured to operate on message packets, each object being intended to have relatively similar electrical load characteristics; and the integrated circuit development system further including a modeler, which refers to the library and is to be structured to accept an instruction that creates an instantiation of one of the descriptions and to accept a command that combines two or more of the created instantiations with one another. The laborious programming of this known method of instantiated hardware objects then provides for a collection of software objects to be accepted which are themselves to be abstractions of the instantiated hardware objects, each software object being intended to include a list of hardware objects that are used in the software object as well as a list of rules for combining the listed hardware objects and an instruction file that is to be loaded into the listed hardware objects; a description of the collection of physically instantiated hardware objects then having to be accepted; an identifier having to be allocated to each of the physically instantiated hardware objects from the list of hardware objects and an initialization file having to be created for the collection of physically instantiated hardware objects by using the identifier in order to replace symbolic information in the instruction files. The last-mentioned technique as shown in WO 2004/114166 is disadvantageous particularly because of the fact that it can neither be assumed with absolute reliability that a hardware-software isomorphism is actually given and not merely claimed, and because in addition the applications designed in accordance with the system must often provide for an excess of unnecessary hardware on a silicon chip. At the same time there is no assurance that in the known procedure according to WO 2004/114166 an optimal execution speed of the hardware objects tied together from predefined, invariable hardware modules is realized.
  • Furthermore, in the cited related art as shown in WO 2004/114166, it remains necessary for hardware engineers to design the hardware. It is not possible to leave the construction of a chip for a dedicated application to the programmer of the dedicated application entirely or at least largely.
  • SUMMARY
  • In the present application, a reconfigurable architecture is understood in the broadest sense as an architecture in which at least one of the elements processing, storing and/or transmitting cross-linkages of data is itself modifiable; in a preferred variant, the term reconfigurable architecture being understood, without this being referenced each time, as a dynamically reconfigurable architecture, unless the respective semantic context indicates otherwise. In this connection, dynamic can refer to the capability of reconfiguration occurring at a speed that allows for a complete and/or partial reconfiguration at run time; the reconfiguration may thus occur for all cell elements, connecting elements etc. of a field, only for a subgroup of a field and/or for an individual element of the field. The reconfiguration may be induced, reference being made here for disclosure purposes to earlier patent documents of the applicant which are all incorporated to their full extent, e.g., by a possibly separately built up and/or pre-loaded central entity, by an adjacent cell and/or a cell within the element itself, which determines in the course of the data processing performed by it that subsequently another or additional data processing is required prior to or during the transmission and/or output of the data to another cell or outside the cell element field. A reconfiguration of elements lying upstream in the data path may also be brought about. The reconfiguration may be forced from the outside, i.e., outside of the field, and/or from inside and/or may be requested. Reconfiguration information is transmittable over separate reconfiguration lines, (data) buses and/or in direction connection from cell to cell.
  • The direct data connection from cell to cell may occur alternatively and/or additionally to an interconnection of multiple cells by connection to longer regions stretching over extended parts of the field and/or by a reconfiguration entity and/or external units such as data memories, data sources and/or data receivers. Such data receivers or data sources may be, for example, displays, data interfaces, external (host) processors, co-processors, microcontrollers and/or chip-integrated sequencer units and the like.
  • Reconfiguration information may, e.g., also be transmitted together with the data, e.g., also interested in data words of a longer data packet, it being in any event possible for the data exchange between the cell elements to occur preferably in an asynchronous manner. The transmission of configuration data from cell to cell may occur by transmitting actual configuration words for configuring a configurable cell element and/or by transmitting triggers, in particular in trigger vector form, a selection being made by these triggers between a plurality of configurations still to be fed in and/or are already fed in for the trigger vector target receiver cell element.
  • It is preferred, but not absolutely necessary for the purposes of the present application, if at least one, preferably multiple configurations are stored for current and/or subsequent processing in or at the cell elements, it being possible to provide either a configuration memory in each cell and/or for a group of cells as known per se from the earlier patent documents of the applicant.
  • Reference should be made to hierarchical structures, which may be established by and for processor fields of the present kind, be it for configuration data and/or data to be processed. It should be mentioned that in a data stream, trigger vectors may also be interposed in order to select between a plurality of different configurations, in particular configurations stored in advance, in the manner of a configuration ID. If, which is regarded as possible, several configurations are executable on one configurable cell element in a time-blending manner, as is provided for example in PCT/EP 02/02402 (PACT25/PCTE), all originating from the present applicant, then it may be possible in a preferred manner, to transmit along to the cell elements even in the data transmission information that relates to the association of a data packet with a certain task to be processed. With respect to these identifying specifications to be transmitted along with the data, reference is made to PCT/EP 02/02403 (PACT18/PCT), where particularly the explanations regarding APID should be compared, as well as in PCT/EP 02/10572 (PACT31/PCToe), where the explanations regarding CONFIGID should be compared. As far as the cell elements are concerned, it is per se possible that a currently considered reconfigurable architecture, for which a specific program is to be compiled, is a (fully) homogeneous field, in which for example as in the known XPP of the applicant a plurality of cells having in particular segmented buses in between are provided, it being possible, but not absolutely necessary, for the cells to be ALUs, in part having an extended range of function (EALUs), compare PCT/DE 97/02949 (PACT02/PCT), and (multi-stage) register units coupled to the input and output buses being possibly provided on both sides of the ALU, compare, e.g., FREG, BREC in PCT/EP 01/11299 (PACT22a/PCT), as well as respective refinements in other patent documents of the applicant. Furthermore, reference is made in this regard to input-output registers in front of the ALU itself, which under a different name are also found in other writings of the applicant.
  • For this purpose, the communication of the cell elements is preferably subjected to protocols such as the applicant has already described in connection with the XPP architecture.
  • Mention should be made in particular of the RDY/ACK protocol, the RDY/ABLE protocol from PCT/DE 03/00489 (PACT16/PCTD) as well as the additional protocols described there such as CREDIT protocols etc., e.g., protocols having a reject option. As applicant has pointed out in earlier applications, possibly received, but no longer needed, data packets may be discarded. Here mention should be made only by way of example of PCT/EP 2004/003603 (PACT50/PCTE), which is likewise in its full extent relevant also for other purposes, such as for application purposes with respect to the reconfigurable architecture for instance in connection with hyperthreading, processor-coupling etc., and which for disclosure purposes is to be regarded as incorporated in its full extent.
  • The cell elements may take the form of and/or include in particular ALU-PAEs, EALU-PAEs, RAM-PAEs, RAM+ALU-PAEs, function-folding PAEs (see DE 10 2005 005 766.7, DE 10 2005 010 846.6, DE 10 2005 014 860.3, DE 10 2005 023 785.1, EP 05 005 832.0, EP 05 019 296.2, EP 05 020 297.7, EP 05 020 772.9, and (PACT62 ff)), graph-folding PAEs, sequencer structures connected via command lines as well as PAEs, which may have, in addition to a configurable or adjustable unit such as an ALU, a memory such as a circular buffer and the like, in particular those having several pointers etc., also parts firmly defined once in their function, for example FPGA-like logic circuits that are defined, FPGA-like groups that are reconfigurable only seldom and preferably without recourse to preferred, in particular faster configuration methods and/or logic circuits fixed in their functionality such as ASICs, which may be used for example for certain I/O protocols such as RS232, LAIN, VGA, XVGA, DVI, USB, S/PDIF, Firewire, RAMBUS etc.
  • Furthermore, using the ASIC-like logic circuits, which may belong to the cell elements, it is possible to fall back on fixed functions, for example ASIC-like programmed DCT algorithms, FIR filters or IIR filters, VITERBI algorithms etc., which may be of significance for various applications such as in general purpose processors, general purpose co-processors, microcontrollers, sequencers, image editing and/or image processing such as for HDTV, cameras, base stations, mobile telephones, radio receivers (software-defined radio), smart antennas, CODECs and/or parts for these.
  • In order to be able to use such structures and methods of structure operation, the corresponding hardware must now be designed and data processing processes capable of being executed on this hardware must be defined.
  • Experience has shown that, as discussed abover with respect to FIG. 1, it is already possible without problem to design hardware having the aforementioned architecture, protocols etc. and to write programs for it. As far as programs for the architecture are concerned, reference is made in particular to the NML language and the documentation, manuals and general descriptions existing for it. It should be mentioned that programming languages are known per se and are optionally applicable to the specific architecture as well. BASIC, LISP, COBOL, PL-M, ADA, ALGOL, FORTRAN, BASH, TCL, but also JAVA, C in various dialects such as C++, PASCAL, OBERON, EIFFEL, PERL, A, B, XML, UML are example possibly relevant high level programming languages.
  • Embodiments of the present invention make possible at least partial improvements in the design and/or with respect to the usability of structures and architectures mentioned at the outset.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 shows a procedure according to the related art.
  • FIG. 2 shows an improved method in accordance with the present invention for creating and/or programming hardware.
  • FIG. 3 shows a parameterizable hyper-PAE according to an example embodiment of the present invention.
  • FIG. 4 shows insertion and removal of registers according to an example embodiment of the present invention.
  • FIG. 5 a shows a connection of an element array to a hardware module by way of FIFO memories according to an example embodiment of the present invention.
  • FIG. 5 b shows a connection of an element array to a hardware module with RAM memories as coupling elements according to an example embodiment of the present invention.
  • FIG. 6 a shows a connection of an element array to a hardware module by way of FIFO memories, where trigger vectors are transmitted, according to an example embodiment of the present invention.
  • FIG. 7 shows a coupling arrangement according to an example embodiment of the present invention.
  • FIGS. 8 a-8 d show spatial arrangements of hardware modules with respect to an NW field, according to an example embodiment of the present invention.
  • FIG. 9 shows various interconnections between hardware modules and between the hardware modules and parts of an element array, according to an example embodiment of the present invention.
  • DETAILED DESCRIPTION
  • As is yet to be explained below, FIG. 2 shows essentially parts of the design flow as is also known in FIG. 1 from the related art, but it supplements and extends or modifies it in an inventive manner. As will become apparent and be explained below, the following is of particular importance in this regard.
  • First, a high level language program is provided, in which initially no reference needs to be made to actual hardware characteristics. This program may be written in the conventional high level languages such as C++, JAVA, MATLAB etc. Thus, programming is performed in abstraction from any hardware, ergo at this point one preferably, but not necessarily, uses an entirely, at least partially hardware-abstracted language. These hardware-abstracted programs or this hardware-abstracted program is then translated as known per se preferably with reference to a quasi-maximally free hyperset, that is, a superset of possible hardware objects, which for individual objects may include a plurality of variants, these variants also for example, which is preferred, possibly differing from one another in a manner determinable by parameters in one or in multiple characteristics. When the hardware-abstracted high level language program is translated with reference to a quasi-maximally free hyperset of possible hardware structures etc., for the purpose of which a transformation compiler is used, then for this purpose one may fall back on a multitude of PAEs parameterized for this hyperset and similar suitable modules stored in a software library. The modules in the library may be intended for parameterized or still parameterizable elements of the hyperset, and, as the translation described above as performed by the transformation compiler, may occur both by machine coding as well as if desired entirely and/or partially manual coding. It should be mentioned that the use of modules in machine and/or manual translation is not absolutely necessary.
  • The parameterization may be performed interactively by a programmer, in particular by interaction with a place-and-route tool, but may also be suggested by the latter, possibly even in a fully automatic manner, and possibly only be confirmed and/or stipulated without confirmation. Alternatively, heuristic methods are possible as well, possibly even interactively and/or by open-loop and closed-loop control of a place-and-route tool. In heuristic methods, an iterative procedure using the place-and-route tool or another tool in the programming and hardware definition environment may be performed. It should be pointed out that such iterations may occur manually, semi-automatically and/or alternatively and particularly preferentially in a fully automatic manner.
  • With the heuristic, SETPOINT variables may be specified for this purpose, which are to be reached by the iteration, by trial and error for example. In this connection, for purposes of disclosure, explicit reference should be made to the methods of “simulated annealing.”
  • In addition to methods of simulated annealing, obviously, evolutionary methods such as genetic algorithms may be readily used as well.
  • In this connection, quasi-maximally free incidentally means for the hyperset that the number of limitations to generally available objects is as low as possible, that is, that as many degrees of freedom as possible remain. Notwithstanding the demand for as many degrees of freedom as possible, however, limitations may be necessitated by certain factors such as, e.g., the constructability of modules in the target semiconductor implementation, which is why the term “quasi-” maximally free is chosen. Incidentally, it should be pointed out that in certain cases the quasi-maximally free hyperset needs to contain only one PAE, which then however must be largely and in many parameters parameterizable, from which by parameterization many mutually distinct PAEs are derivable.
  • The final result is thus a program from a multitude of functional blocks, which are indicated in FIG. 2 as f(n) for different n.
  • On the basis of this program, which was already generated with recourse to hyperset elements from the high level language program and was thus generated in a manner according to the present invention, novel with respect to the related art and in a manner regarded as in accordance with patent for itself, a further improvement may now be achieved. First it is possible (proceeding to the right in the illustration) to select certain of the program parts for processing on the hardware later executing the program not by elements provided for general purposes, selected from the hyperset and determined by parameterization etc. entirely in their hardware construction, which, programmable or configurable, are available also for quasi any other task to be processed in the reconfigurable field, but to be implemented individually and/or jointly in a hardware system specialized and optimized or optimizable by dedication. In FIG. 2, program parts f(3), f(n), f(n-2) are selected for this purpose. Typically, such program parts may and will be configurations or configuration parts or an individual configuration for an XPP field or the like, which is composed of an at least partially reconfigurable set of elements such as ALU-PAEs, graph-folding PAEs, function PAEs, MAC PAEs, RAM PAEs, ROP PAEs and/or input-output PAEs, which are described in the hyperset or describable by the latter, in particular completely describable by parameterization. The selection of the type of modules to be implemented may occur in various ways; the following possibilities being mentioned only by way of example, it being obvious that it is possible and preferred in a practically preferred embodiment of the present invention not to fall back exclusively on a single one of the possibilities, but rather to provide multiple or all of the possibilities for simultaneous or successive implementation as hardware module of program parts:
      • selection of program parts by hand, which may be done particularly by inserting suitable text passages in the program code such as, e.g., by inserting control characters;
      • selection of those program parts that occur and/or must be executed particularly frequently in the entire program code or in a multitude of program codes, which are to be executed independently of one another on the hardware to be produced, will probably come to be executed, that is, a selection according to execution time and/or execution frequency;
      • modules, from which one is able to ascertain that with respect to other elements they are otherwise executable only with difficulty or at a higher clock frequency, that is, program parts that prove to be critical with respect to performance; the selection of such program parts may be preferred so as to be able to execute certain program parts on a certain piece of hardware at all;
      • selection of program parts, which otherwise would generate a particularly high power loss on the hardware to be produced;
      • program parts, which could result in a particularly high surface area requirement of the hardware chip;
      • selection of program parts according to heuristic methods, which allows, particularly on the basis of the program code, for a—even for itself possible—parameterization; and
      • selection of program parts by profiling or comparable techniques; it may be provided either to identify on the basis of a source code analysis those parts for which dedicated hardware modules are particularly suitable, for example with a view to the above-mentioned parameters with respect to executability, implementability etc. Alternatively and/or additionally it is possible to perform a profiling during the execution of programs. For this purpose, an analysis may be made as to which program parts, subprogram parts, configurations, configuration parts etc. are subject to a particularly frequent execution, are performance-critical, surface area-critical, require many and/or long memory accesses, are particularly frequently used in various configurations etc. The advantage of such a profiling lies in the fact that for typical applications that call up a multitude of programs, for example the application of a processor as a general purpose processor on a server, a laptop or a workstation, processors, co-processors and the like may be defined that are optimized for a or typical user(s). To be sure, it is possible to perform such a profiling on a simulator as well, but the particular advantage of the present technique of the top-down approach is that initially an already highly performing chip, which is thus specifying real time conditions, may be used, which does not compromise a user whose profile is to be detected, is made available. Thus, by using the target architecture, it is possible to detect how it may best be subjected to a design change process without performance losses, but rather while improving the performance with respect to critical parameters. It is pointed out that, apart from the circuits described here, corresponding precisely to the later desired architecture by the definition of hardware modules, the idea of starting from the actual target architecture for defining modified circuits by selecting particular program parts and described definition of the hardware parts is regarded as inventive for itself; in particular, the submission of partial applications and the like is reserved for this purpose and/or for parts of these aspects. Reference should be made to the possibility of performing a successive processor improvement by transmitting a multitude of profiles to a central unit, e.g., a processor manufacturing firm, in particular by transmission over the Internet. This may be used, e.g., for standard programs and for other processors.
  • In this connection, it should be mentioned incidentally that by taking the data obtained by profiling a manual selection may be made and/or an automated selection.
  • It should be mentioned that in the selection it is not necessary always to pay attention only to one parameter. Rather, it may be possible, for example by recourse to methods of fuzzy logic, to take into account multiple or all of the above-mentioned influencing parameters, particularly with a suitable weighting and/or in an nonlinear manner. The selected program parts are initially on the already known PAEs existing in the hyperset, which incidentally may include, in addition to the previously mentioned PAEs, also PAEs that are made up of a combination of the functionalities of the above-listed PAEs, that is, for example, a parameterizable or parameterized PAE having a parameterizable set of ALUs of parameterizable bit width and parameterizable range of function, it being possible for this PAE to include additional graph-folding, parameterizable elements, just as function-folding, parameterizable elements parameterizable with respect to the bit width for example and/or in particular parameterizable memory areas having pointers and/or command-control line of one or multiple ALUs, or other data-modifying parts in the PAE, in order to implement sequencers or microprocessors, input-output elements and the like.
  • An example of a still parameterizable hyper-PAE is shown in FIG. 3. There one finds various parameterizable units such as, e.g., bus inputs having m inputs, m representing a parameter, that is, m different operands may be supplied to one PAE. The buses are respectively k bits wide, k in turn representing a parameter, and n different buses are provided, from which the m different inputs are picked off. The total number of buses, n, also represents a parameter. Within the PAE, different operand-combining units are then shown by way of example, in the exemplary embodiment shown in FIG. 3 for example a divider having a combinatorial network, a multiplier, an ALU stage, a Boolean logic, a barrel shifter stage as well as a floating point unit. It should be pointed out that the aforementioned units in turn are parameterizable, for example with respect to the operand width, that is, they may be, e.g., 8 bit, 16 bit, 32 bit or 64 bit stages or obviously stages of other bit width as well, it being additionally possible for the range of function, for example of the ALU, the floating point unit etc. to be defined via parameters. It should be pointed out that for reasons of simplicity of the drawing certain, omitted elements, which possibly may also be provided in a hyper PAE such as sequencer units, function-folding PAEs, compare PCT/EP 03/09957, may be provided. It should be mentioned that memories of parameterizable width and depth may also be provided etc. In this connection, reference is made in particular to the previous applications of the present applicant, in which a multiplicity of different logic elements such as also FPGA-like structures, SIMD units etc. for PAEs are disclosed, this disclosure being incorporated in its full extent.
  • Regarding the parameterizable range of function, the flow point unit may be, only by way of example, a floating point unit that is capable of at least one, preferably several of the following combinations in the still parameterizable definition: multiplication, addition, subtraction, division, floating point combination, look-up tables, possibly having an interpolation option for certain functions such as trigonometric functions (sine, cosine, tangent), sequential calculations as for Taylor series, it being possible for special hardware to be provided for certain approximations/interpolations and it being possible preferably in addition for a parameterization of the floating point unit to be provided with respect to the data word width in the mantissa and/or exponent.
  • A parameterizable library for such a hyper PAE may have recourse, for example, to a procedure in which so-called ifdef constructs are used. These supply certain program segments to a translation (in hardware circuits, which must be actually provided on a chip) only if corresponding definitions are provided for this, for example by specifying the parameters, for example the range of function. It should be mentioned that this is also possible for variables and elements of the hyper PAE such as the configuration registers specified also at varying depth, possibly the protocols (compare RDY/ACK, credit protocols, RDY/ABLE etc.) capable of being implemented on a PAE, just as the parameterization of an output, different multiplexer stages in a PAE etc.
  • In order to achieve the desired improvements either with respect to some of the previously selected critical criteria such as power consumption, surface area efficiency or execution performance and/or a particularly great improvement in at least one of the areas combined with at best a partial improvement of other areas or a complete disregard of the same, for example, if in high performance-critical program parts, power and/or surface area do not matter, a preferably automatic and/or partially automatic converter step is now executed in a preferred embodiment. This is indicated in the figure as NML2V and represents a converter step by which a hardware language description is determined for the program parts that were selected, possibly by taking into account the reason for the selection. In light of the fact that the program parts for the hardware modules were selected with reference to one or more elements in a hyperset, it is possible to find an identical translation, that is, it is ensured that no errors occur in the conversion into a hardware-describing code such as VERILOG, which, if this is desired, may be confirmable by intermediately executable simulation steps. Thus, one first obtains a hardware-describing code, e.g., a VERILOG code, which has the corresponding functionality of the parameterized PAE in the investigated configuration(s).
  • Surprisingly, the use of hyper PAEs in the definition of the program parts, which are then used for implementing hardware modules, proves to be nondisruptive for the converter to hardware code. The reason for this is that certain of the parameterizable characteristics such as the bit width of the PAE, for example, must already be determined when determining the actual program for the transformation compiler, while other characteristics such as the actual ranges of function for example, that is, for example the provision of a divider stage, a multiplier stage, and adder stage and/or a subtracter stage in an ALU-PAE do not yet have to be defined. In other words, simultaneously with the transformation compilation the quasi-maximally free hyperset is reduced to a parameterized and/or partially parameterized hypersubset, in particular fewer degrees of freedom being specified, that is, no modification being required. In this instance, the bus widths to the cells may already be defined for example. It should be mentioned that the already defined parameters, which were defined in the transformation compilation for example, are made available to the NML-to-VERILOG converter or, more generally, to the hardware language description-generating converter, which may be done by corresponding indications on the program parts, for example in the form of comment lines and/or by data separated from the actual program part. The transformation compiler is thus designed for the generation of parameterization information of hardware on which it is to be based. In contrast to conventional compilers, hardware-describing code, that is, code describing degrees of freedom, is also generated.
  • The program parts, for which a hardware module is to be implemented in an optimized manner, now not only have parameters defined with respect to the PAEs, but rather it is at the same time clear in which configuration a certain PAE is to be operated in the program part that is to be converted to a hardware module. This configuration now has the consequence that it is, if applicable, immediately clear that certain parts of the PAE are not used, which is the case for example if in the transformation compiler a floating point unit must still be provided for other program parts, but no floating point operations are required in a currently considered program part that is to be translated into a hardware module. The configuration that is defined for purposes of the present consideration (bearing in mind that multiple configurations to be processed successively may be present in the PAE for sequencer-like PAEs or PAEs operated in a sequencer-like manner) thus indicates that certain units are not required and it is then possible to ascertain that for example a multiplexer connected downstream from an operand combination stage, which is used to select which operand combination unit should set its output or outputs to an output region, is dispensable or partially dispensable. The multiplexer typically situated behind the multiple operand combination units of a typical PAE may thus as a rule be readily simplified in a given hardware module. An invention per se is likewise seen in the removal of multiplexer stages and/or complete multiplexer units in the determination of hardware modules with recourse to hyper PAEs or a quasi-maximally free set of hyper PAEs. It should be mentioned that the removal of elements not required in a configuration to be executed in a PAE may occur by the NML2V converter, that is, in the isomorphous hardware simplification means, and/or that the selection of hardware elements to be removed as not required may also be performed by way of a synthesis. Incidentally, it should be pointed out that in the hardware module or the parts intended for the latter the configuration register does not necessarily have to contain only one constant value as was, e.g., depicted for reasons of better illustration. Rather, particularly if wave-like changes or reconfigurations of the operating mode and/or conditional changes of the operating mode of an individual element are required for the hardware module, for example as a function of data processing stages above or below, multiple possible configurations may be stored in the configuration register. The selection among such previously stored configurations, which are disclosed by the applicant in other applications, is pointed out in a manner fully incorporating by reference, compare in particular, although not exclusively, PCT/DE 98/00334 (PACT08/PCT). Incidentally, it should also be pointed out that not only trigger vectors etc. are transmittable, but possibly, within the hardware module and/or from outside in an accordingly limited range of function, also data are transmittable directly to a unit, which may be regarded as configuration data, work instructions (commands etc.) and/or which may contain respective instructions, in particular set between operands. Incidentally, it should be pointed out that the hardware module may also be defined in such a way that freely definable configurations are still executable on the defined hardware module, these freely definable configurations then in each individual element accessing a reduced set of functions and/or a limited connectivity, for example only with respect to next-neighbor connections instead of global bus connection extending over many cells being possibly provided between the individual elements of the thus defined hardware module, whereas nevertheless a multidimensional, that is, also possibly clearly more than two-dimensional connectivity and/or a toroidal, even multi-dimensionally toroidal connectivity is feasible.
  • The hardware description code of the NMLV2 converter thus generated preferably automatically is now still optimized in a particularly preferred variant of the present invention. The aim of this optimization is on the one hand to allow for the elimination of the registers, combination units etc. in a parameterizable PAE that are not required for the respective functionality; reference being made in this connection to the earlier applications of the present applicant, compare PCT/EP 03/08080 (PACT30/PCTE) and PCT/EP 03/08081 (PACT33/PCTE). These provided for a configuration of a field or of an individual PAE to be defined once by the use of fuses, that is, breakable elements and the like in order to allow for a problem-free construction of chips having ASIC functionality without the requirement of a mask construction for each ASIC embodiment; although in this previously known variant possibly not required elements of functionality remained in the ALU or another unit of a PAE. If, for example, a PAE having an ALU, which included a subtracter, a divider, an adder and a multiplier, was configured in a fixed manner in order to provide an adder, then the silicon surface area used for producing the multiplier had to be provided nevertheless. The present application and invention among other things in one of its aspects aims to avoid this, which contributes toward a reduction of the size and thus possibly also of the execution speeds of a dedicated hardware area. The corresponding changes in the parameterizable and already partially parameterized hyper PAE take place in a retiming stage, in which initially unnecessary registers are removed. The removal of the registers first results in a decapsulation of functional parts previously encapsulated by the use of the PAE definition. This is by no means critical, however. On the contrary, in the case of a suitably intelligent design chain, it is rather very advantageous.
  • The design chain hereby provided according to the present invention inherently features the intelligent layout, which renders obsolete the complex encapsulation required in the related art, for example by input-output FIFOs and/or registers, which are practically controllable only via suitable protocols such as RDY/ACK protocols. For this purpose, e.g., initially the internal registers are removed, that is, the registers situated between the considered cells at their mutual junctions. The removal of the registers, however, does not occur blindly for all registers, but rather there is a preferably readily automated selection of registers that are removable or that must remain in the piece of hardware. First, constants should remain in the piece of hardware. Further, it is strongly preferred if registers for preloading values (PRELOAD registers) are not removed. Additional registers are initially not required in a given implementation of the method.
  • This obviously changes the timing behavior or the overall system. Now, the present invention provides for the registers to be removed nevertheless, but for a synthesis step to be performed in order to ensure a correct timing of the data processing by the considered piece of hardware. Preferably, therefore, a synthesis step is performed according to the present invention. This also applies to the inputs/outputs of the hardware module to be constructed.
  • It should be pointed out that by and for suitable logging bus-internal registers may readily be used, that a feeding-in/reading-out of data in RAM-PAEs having sufficient memory depth is possible and/or a reading-in/reading-out of data in the preload memory, if required at all, may occur, or the provision of input-output registers at the end and at the beginning of the piece of hardware, unless for example the long-familiar FORWARD-BACKWARD registers are also to be provided for purposes of use by other PAEs. In a preferred design, constant contents of RAMs are implemented by ROMs or mapped onto ROMs.
  • The removal of the registers will now change the timing behavior. Initially, the frequency behavior of the considered circuit to be provided may deteriorate, possibly even significantly. This may be compensated by again inserting registers in suitable places, which are either arranged according to fixed rules, for example by inserting less deep register stages in places where previously deeper register stages were provided, by inserting register stages of the same depth as those that were previously removed, or, particularly preferably, by considering the signal run times through the remaining hardware circuits in order to identify places at which registers are required to increase the frequency; one skilled in the art being able to perform such a procedure per se without deeper explanation.
  • It must further be kept in mind that, while the considered software part may be regarded as initially balanced, balancing is normally performed or could be performed by providing register stages between different data-processing functionality areas in or between the PAEs etc. The initial removal of the registers now impairs the possible or already given balance of the data-processing paths, which must be coupled at certain points. In another register insertion step, the attempt is now made either to arrange the registers already provided again in such a way that not only the possibly demanded and required frequency increase is obtained, but rather at the same time also a data run time balance is achieved. Thus an automatic balancing in the retiming means by register insertion is brought about by retiming only on the basis of program parts possibly to be made into hardware modules, in which it is pointed out that certain data paths are to be balanced against one another.
  • Something else has to be kept in mind as well when retiming: The hyper PAE, even in the case of a given parameterization, will normally still include functionalities that are not required in the hardware module. For example, it would be conceivable that a hardware module is written for a program part in which no divisions are required at all. In this case, a divider stage could be omitted in a PAE. A division now requires a certain delay, that is, a run time across the module. This will be significantly greater than for example the run time across an adder stage. The primarily given data run time balance of the parameterized or hyper PAE will be such that the run times of a divider stage are taken into account as well. If, however, in a hardware module at a certain point a divider stage is no longer required, which is discernible, then such non-required unit may and preferably will be removed from the PAE, which then changes the delay of the data run through the unit. The hardware module should also be adapted accordingly when retiming. Fundamentally, it should be pointed out that this is not absolutely necessary, however. A certain advantage is already obtained if between the individual stages of a hardware module composed of multiple hyper PAEs non-required register stages are removed. In the preferred case, however, non-required parts are also removed from the hyper PAEs, which may occur during the synthesis, for example, such as, e.g., the removal of a divider stage discussed above, other stages such as memory stage elements, multipliers, floating point units etc. being also removable, if indicated. This too may be taken into account when retiming. For this purpose, a synthesis is preferably performed, by which the timing behavior is analyzed in an automated manner in order then either automatically to insert registers in required places and/or to provide indications where a programmer should insert registers in order to ensure a proper timing behavior.
  • Incidentally, it should be pointed out that divider stages were mentioned above. With regard to this and to the removability of register it should be pointed out explicitly, although exemplarily, that on the one hand protocol-relevant and data communication-relevant registers may be provided in a module or array; such being readily removed at first. Precisely the division shows, however, that certain registers shall not and/or cannot be removed. The division may be implemented in two ways if a division stage to be provided in hardware is to be constructed. The first possibility provides for a combinatorial network, in which no registers are required. The second variant provides for a sequential division, in which a value is computed iteratively again and again, comparable to the manual computation of a division. In the latter case, intermediary results must be written into registers. These must not be removed when retiming since they are algorithmically required. The non-removal may be brought about, e.g., by indications in the hardware-defining code of the hyper PAE, which may lead to comments in a compiler code of the transformation compiler that are not required for actual program purposes. Alternatively and/or additionally, variants are conceivable, in which first a removal and subsequently a reinsertion may be performed.
  • In a particularly preferred variant, therefore, the hyper PAEs may be marked as to whether certain registers are algorithmically required such that they are not automatically removed in an initial removal of the registers. Alternatively and/or additionally, when removing superfluous registers, analyses may be performed to the effect that registers having a feedback to circuit regions located upstream of the data flow are not removed. For such registers are automatically algorithmically relevant registers. It should be pointed out that even algorithmically required registers are obviously removable if the algorithm with which they are associated is not executed; something that happens for example in the case of a sequential division generally provided in a hyper PAE if the division per se is not implemented in the hardware module to be constructed. Incidentally, it should be pointed out that feedbacks are implemented in the standard PAEs provided by the applicant by backward registers. If these are actually required in a given program part, it is advantageous not to remove them or not to remove them without verification and/or not to remove them completely.
  • If indicated, registers are then inserted with the retimer. It should be mentioned that it is in principle possible to insert the registers at any place in the hardware module, as required. In particular, if performance efficiency is the sole concern, then it is possible to insert register within a (parameterized) hyper PAE that is provided in the hardware module. It should be pointed out, however, that a simpler method of register insertion is obtained if on the interfaces between multiple hyper PAEs in the hardware module to be designed again those registers or a part of those registers are inserted, which were initially removed. The reason for this is to be seen in the fact that an optimum insertion in these places is possible for the reason that the entire starting definition of the hyper PAEs is selected to be such that an insertion is automatically possible in these places. Reference is made to FIG. 4, which shows how initially registers are removed for an only exemplarily pipeline-like, only exemplarily unbranched hardware module. These are shown as “removed registers” in a shaded manner. In the hyper PAEs, which are drawn upon in the parameterized faun of the hardware module description, these registers are the input/output protocol registers, that is, for example the FREG/BREG of the hyper PAEs. Alternatively it is possible to provide PAEs without FREG/BREG only with those registers that are provided in the direct coupling path of the ALUs and other logic elements for operand combination in the PAE in the connections to the buses as protocol registers. Reference is made in particular to OREG and PREG from PCT/DE 97/02949 (PACT02/PCT). The newly inserted registers, which ensure the balancing or the desired performance/surface area efficiency/latency following the removal of the shaded registers, are drawn in FIG. 4 by dashed lines and indicated as “inserted register” or for multi-stage registers as “inserted FIFO.”
  • It should be pointed out once more that the represented insertion of registers, FIFOs and the like between the predefined hyper PAEs not only simplifies the structural layout, but also facilitates the verification and calculation of the delay times across the circuits provided in the hardware module since the run time behavior etc. of the underlying elements may be assumed as well-known in the register removal step or the retiming step, which facilitates a possibly iterative approach to the retiming task. In addition, the insertion of registers between the previously used and underlying (parameterized) hyper PAEs is particularly surface area-efficient since, e.g., the use of general ALUs in the hyper PAEs would there require a multitude of registers even though the insertion would readily be possible there as well, for example in order to achieve particularly high frequencies. In addition, there is hardly a positive effect in a cut within an ALU or a PAE core.
  • Incidentally, it should be mentioned that it is readily possible to design a hardware module in such a way that it has to run at a different working frequency than that provided for an XPP field or another reconfigurable unit field. On the one hand, it is possible to select the frequencies to be lower, for example to reduce latencies, to reduce the surface area and/or to reduce the power consumption. For the sake of completeness, it should also be disclosed that for lowering the power consumption it is also possible, if indicated, to work with other hardware definitions such as for example different gate thicknesses of transistors in comparison to a reconfigurable, processor field to be likewise provided. As an alternative to the purely power-saving considerations, it is also possible in certain cases to design the hardware modules for a certain frequency, which may be advantageous especially if a particularly high data throughput is required in the hardware module and/or if highly computing-intensive tasks must be processed in it.
  • Incidentally, it should be pointed out that the register stages or FIFO stages to be inserted or to be newly introduced or reintroduced are usable not only with a view to, e.g., latencies, but rather also in order to restore a balance of data flow paths possibly destroyed by the initial removal of registers. It should be pointed out that initially after removing the registers a balanced data path automatically exists, but that possibly timing conditions are not maintained; and that then initially the timing behavior is restored by inserting additional registers, but that because of that the balance between the individual data paths may be disturbed. In order to restore the balance as well after having restored the timing conditions and timing requirements, recourse may be taken readily to the techniques for balancing from the related art, particularly to those stemming from the applicant, by using in particular precisely those algorithms to which recourse is taken also in the construction of compilers such as for an NML compiler for computing executable configurations. Reference is made in particular to the applications PCT/EP 02/10065 (PACT11/PCTE), PCT/EP 02/06865 (PACT20/PCTE), PCT/EP 03/00624 (PACT27/PCTE), PCT/EP 2004/009640 (PACT48/PCTE). In these applications suitable methods for balancing are described.
  • The output from the retimer is then a hardware code definitely executable by recourse to the hyper PAEs or elements of the quasi-maximally free hyperset, which is frequency-optimized and/or throughput-optimized through the retiming. In addition, the surface area is automatically optimized. The definition thus obtained of new hardware areas as hard modules may now be integrated into the XPP library. There are many possibilities for the thus determined hardware module functionalities to be integrated into and/or be connected to an XPP field or, more generally, a field of reconfigurable and/or partially reconfigurable elements. One possibility, for example, is to provide a complete PAE, which does not have an ALU or an individual sequencer as central functionality, but rather the specified hardware functionality of the hardware module. In this instance, it is particularly preferred if in such a PAE, as is provided in PCT/EP 01/08534 (PACT14/PCT), an outwardly identical geometry and in particular a connection geometry is provided, as in other PAEs of the field. This has the great advantage that the homogeneity of the field remains largely unimpaired. Alternatively and/or additionally, it is possible to achieve a connection without a corresponding consideration of form factors and the like, compare DE 102 36 269.6 and DE 102 38 172.0-53 (PACT36 and 36I), by setting the specific hardware modules next to the actual field. For this purpose, it is possible to provide for an integral manufacture and/or to manufacture the parts separately and then to let them communicate via buses, via RAMs and the like with the reconfigurable field, compare SOC technology etc.
  • Other possibilities of connection are described in the figures.
  • FIG. 5 a shows on the left a combination of an XPP field or an FPGA field with a hardware module of the present invention, the connection of the hardware module to the field occurring via FIFO memories in the input path and/or output path, preferably via FIFOs in both paths. By providing a FIFO memory between the or each hardware module of the present invention, a decoupling is already achieved in principle, which allows for a more independent procedure and a deviating timing etc. especially with respect to the processing speed.
  • It is particularly advantageous, however, if the exchanged data packets are given identification information in the form of a packet header or additional identification bits on each individual word or the like. In this manner it is possible, for example, to execute different tasks in a multithreading, hyperthreading, multitasking, timeslotted or other manner either with the hardware module and/or the XPP or FPGA field or another field and then, in spite of the comparatively loose coupling effected via the FIFOs, to ensure nevertheless that an exchanged data packet or data word undergoes the correct processing in the receiver, that is, in the hardware module or the XPP field or the like.
  • It should be mentioned that it is already helpful if identification information in the hardware module remains unchanged and/or is changed only in such a way that the associated data packet is processed in the manner provided following the return of the processing result to the receiver, that is, for example the XPP field, for example in that it is processed further using the correct configuration.
  • Alternatively and/or additionally it is possible, however, to co-transmit, in place of pure identification information and/or in addition to the latter, also control instructions or the like, in order to choose for example in marginally changeable hardware modules, whether an addition or a subtraction of consecutive operands is to be performed and the like. In this manner, an increased flexibility of programming all the way to self-modifying code may be achieved.
  • FIG. 5 b shows how for coupling a hardware module in the input path and/or output path it is possible to provide coupling elements in the form of RAM memories, in particular even of RAM PAEs, rather than in the form of FIFOs. This makes it possible in particular to provide respectively dedicated memory areas both for writing data from the field for the hardware module as well as when writing from the hardware module for the field, that is, when transferring data from the field to the hardware module on the one hand, and when (here:) returning results from the hardware module to the field on the other hand. This facilitates on the hand the handling of different configurations and on the other hand allows for example for prioritizations in that work, that is, reading and writing, is performed primarily and preferably in a first memory area, and only if a data processing has been performed sufficiently often in the first memory area and/or no data are present there, will recourse be taken to other memory areas and thus other tasks.
  • Incidentally, it should be mentioned that in those places in the present document where there is talk of data input from the XPP field and the transfer of the result to the latter, an opposite course is possible as well in that the hardware module may use the XPP field as a more flexible data processing element and/or where mixed forms are possible, that is, where data are shifted back and forth in ping-pong-like fashion or in a less regular manner for overall processing.
  • FIG. 6 a shows a variant in which again data are exchangeable via FIFO memories and in particular again FIFO memories are present either in the input branch and, preferably or also in the output branch. In addition, trigger vectors are now transmitted. Regarding the significance and application of trigger vectors, reference is made to WO 98/35299 (PACT08/PCT). The combination of identification information with programming information and/or trigger information or status information, which are exchanged in order to trigger certain data processing events or processes, should be mentioned once more explicitly.
  • FIG. 6 b shows that in the data exchange, a “time stamp”, that is, information regarding the temporal priority or the temporal validity of a data packet is transmitted as well. In the present case shown in FIG. 6 b, this transmission occurs in read-write memories (RAMs). The time mark that is co-transmitted may be used to select those data packets, which are to be processed next.
  • It should be pointed out that in this manner the data processing may be controlled particularly favorably. The actual procedure of transmitting time marks along with a data word or data packet in data flow processing was already described in WO 02/071249 (PACT18/PCTE, butcher protocol). Irrespective of the fact that document WO 02/071249 is in its full extent incorporated by reference for disclosure purposes, it should be pointed out explicitly that the assignment of a time mark to data packets allows for both a data sequence to be reconstructed and/or restored at any later time as well as for operands to be combined with each other as required, which is advantageous particularly if branches supplying operands are balanced with respect to the latencies.
  • It should be mentioned that in the manner in which for FIG. 6 b reference was made to WO 02/071249 (PACT18/PCTE), with the other figures reference is made to WO 02/071248 (PACT15/PCTE) and WO 02/071196 (PACT25/PCTE) for FIG. 5 a as well as WO 02/071196 (PACT25/PCTE) and WO 98/29952 (PACT04/PCT) for FIG. 5 b as well as WO 98/35299 (PACT08/PCT) and WO 02/071196 (PACT25/PCTE) for FIG. 6 a, and that all of the mentioned documents are respectively incorporated in their full extent individually and in combination for disclosure purposes.
  • It should be mentioned that incidentally the coupling methods mentioned and disclosed here are also combinable, for example by connecting a FIFO upstream to a RAM-PAE while co-transmitting time marks in parallel and the like.
  • It should be mentioned that as far as the physical connectability of the hardware modules is concerned, the latter may be connected either by integration into the internal bus system of the XPP or of another processor field and/or via external, possibly bundled input/output lines. The possibility should be pointed out of combining a multitude of individual input/output lines to form buses in order to obtain a coupling of the hardware modules for example in finely granular fields. In this connection, reference is made to WO 02/29600 (PACT22aII/PCTE) and the parallel patents connected with this by way of priority, which are all incorporated to their full extent for disclosure purposes.
  • With respect to the spatial arrangement of hardware modules or hardware parts of the present invention in XPP fields or other fields, FIG. 8 shows that these may be provided either as columns or lines at the edge of a field, it obviously also being possible for a field to be surrounded by such hardware modules or hardware parts, and/or that individual elements or field groups may be distributed over the field, as shown in FIG. 8 on the lower left. Alternatively it should be mentioned that a hardware element and/or a group of hardware elements according to the present invention could also be set next to an XPP field or other field or, assuming appropriate manufacturing processes, could be placed on top or underneath such a field. The usability by integration on a single, jointly manufactured chip should be disclosed as a possibility in the same manner as those of manufacturing the separate elements independently and connecting them. It is understood that in the variants in which the hardware modules of the present invention are connected most closely to the field because they form an interposed column, represent a column at the edge, a frame and/or elements provided in a field, the setup is preferably connected via internal buses, whereas in an arrangement next to the field a connection via I/O connectors is preferred. In the case of an arrangement on the edge, connections may be established alternatively via I/O ports and/or via internal buses. It should also be mentioned that bus lines or other lines may be drawn across the hardware elements that are set between field elements, if necessary. Hardware elements that are set into a field may also be connectable by separate lines, as required. The arrangement in columns is incidentally clearly preferred, a positioning of the column at the edge or in between being preferred depending on for what purposes a data processing unit having a hardware part of the present invention is to be used.
  • In a preferred variant, the number of hardware modules will be selected in such a way that on the one hand the data processing tasks to be performed may be solved quickly and efficiently, and that on the other hand the form factor is observed when inserting into or next to a field.
  • In this connection, it should be mentioned incidentally that the hardware modules of the present invention, even when closely coupled to a field, may additionally have separate I/O connections for communication with external elements such as memories and the like, if necessary.
  • According to FIG. 9, it is possible incidentally to allow for a connection between the hardware modules of the present invention among one another and/or certain field element parts, which is either permanently fixed, alternatively and preferably, however, is set up only temporarily. This is readily possible particularly when a hierarchically ordered bus system allows for global bus lines that may be set up and/or dismantled. Regarding the setup and/or dismantling of bus lines, reference is made by incorporation of its entire disclosure to the document WO 98/35294 (PACT07/PCT).
  • It should be pointed out that prior to building a mask for manufacturing a dedicated chip, recourse may be taken, if necessary, to an emulation, the hardware parts being emulated using FPGA. It is pointed out that the applicant has already proposed building XPP fields, in which PAEs are provided that may represent small FPGA fields. By suitable wiring of several such FPGA PAEs, the hardware structures may then be emulated, if indicated. It is then possible to emulate a verification or emulation of a personalized or customer-specific design by a suitably designed XPP test chip having FPGA PAEs.
  • While it was indicated above that hardware modules may be constructed by hyper PAEs arranged linearly one behind the other only by way of example, which are suitably parameterized and defined, this is not absolutely necessary. It may be advantageous not to assign to each operand combination in the program part a separate PAE and provide for a linear processing. Rather, in particular in especially complex program parts, it would also be possible to break up the program parts in turn into a multiplicity of different configurations to be processed in the hard module. In such a case, for example, it may be established, for example, that a certain cut for breaking up the program part into two configurations would be advantageous. The manner in which such cuts may be applied is known per se. Reference is made in particular to PCT/EP 02/10065 (PACT11/PCTE). If such a procedure is desired, typically the range of function of the hard module is selected to be such that the range of function at the desired place respectively corresponds to the set union of the operand combinations etc. executed or to be executed using different configurations. It should be pointed out that in a multi-configuration hard module definition, fixed configurations may be provided, if indicated, which are provided in a fixed manner in the hardware module, compare PCT/EP 03/08080 (PACT30/PCTE).
  • Further, it should be pointed out that if multiple configurations are to be processed successively on the hardware module, the ranges of function of the individual hard module areas, which are obtained by parameterization, that is, the definition of parameters of the hyper PAEs, are preferably selected to be such that respective computing units, considered individually, have still a minimal range of function. This may possibly occur in that the configurations that are divided are executed in such a way that multiplications are always performed in the same PAE if in each configuration only one multiplication is required, and, instead of a multiplier stage, in another PAE, the data lines to be addressed by a certain configuration, required for the return of data or the transmission of data, in particular lines to be implemented here too as next-neighbor connections, are implemented possibly at a lower surface area requirement.

Claims (5)

1. (canceled)
2. A method for automatically generating at least a part of a hardware netlist of a chip, the method comprising:
assembling a definition for a chip, the definition defining a plurality of hardware modules, wherein, for each of at least some of the defined plurality of hardware modules, one or more features of the respective hardware modules is selectable from a respective plurality of features by selection of one or more of a plurality of corresponding parameters, the definition not defining the parameter selection;
transforming each of a plurality of algorithms into a respective form that is specific to execution on the defined plurality of hardware modules;
for each of the defined plurality of hardware modules, determining required functionality of the respective hardware module based on the transformed algorithms; and
for each of the defined hardware modules, in accordance with the determined required functionality of the respective hardware module, defining a respective selection of parameters from the respective plurality of corresponding parameters of the hardware module.
3. The method of claim 2, wherein the defined parameter selection for each of at least one of the defined hardware modules, defines a selection of fewer than all of the plurality of corresponding parameters of the respective hardware module, such that at least one of the plurality of corresponding parameters of the respective hardware modules is not selected by the definition.
4. The method of claim 3, wherein the parameter selections are performed to provide a minimal number of parameter selections.
5. The method of claim 2, wherein the parameter selections are performed for optimizing at least one of a size of the chip, an operation speed, and a power dissipation.
US13/491,935 2006-01-18 2012-06-08 Hardware definition method including determining whether to implement a function as hardware or software Abandoned US20120278772A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/491,935 US20120278772A1 (en) 2006-01-18 2012-06-08 Hardware definition method including determining whether to implement a function as hardware or software
US14/325,150 US20140331194A1 (en) 2006-01-18 2014-07-07 Method for manufacturing a chip from a system definition

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
EP06001043 2006-01-18
EP06400003 2006-01-18
EP06400003.7 2006-01-18
EP06001043.6 2006-01-18
DE102006003275.6 2006-01-23
DE102006003275 2006-01-23
DE102006004151 2006-01-27
DE102006004151.8 2006-01-27
PCT/EP2007/000380 WO2007082730A1 (en) 2006-01-18 2007-01-17 Hardware definition method
US8791608A 2008-12-02 2008-12-02
US13/491,935 US20120278772A1 (en) 2006-01-18 2012-06-08 Hardware definition method including determining whether to implement a function as hardware or software

Related Parent Applications (3)

Application Number Title Priority Date Filing Date
US12/087,916 Continuation US8250503B2 (en) 2006-01-18 2007-01-17 Hardware definition method including determining whether to implement a function as hardware or software
PCT/EP2007/000380 Continuation WO2007082730A1 (en) 2006-01-18 2007-01-17 Hardware definition method
US8791608A Continuation 2006-01-18 2008-12-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/325,150 Continuation US20140331194A1 (en) 2006-01-18 2014-07-07 Method for manufacturing a chip from a system definition

Publications (1)

Publication Number Publication Date
US20120278772A1 true US20120278772A1 (en) 2012-11-01

Family

ID=38093028

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/087,916 Active 2029-03-24 US8250503B2 (en) 2006-01-18 2007-01-17 Hardware definition method including determining whether to implement a function as hardware or software
US13/491,935 Abandoned US20120278772A1 (en) 2006-01-18 2012-06-08 Hardware definition method including determining whether to implement a function as hardware or software
US14/325,150 Abandoned US20140331194A1 (en) 2006-01-18 2014-07-07 Method for manufacturing a chip from a system definition

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/087,916 Active 2029-03-24 US8250503B2 (en) 2006-01-18 2007-01-17 Hardware definition method including determining whether to implement a function as hardware or software

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/325,150 Abandoned US20140331194A1 (en) 2006-01-18 2014-07-07 Method for manufacturing a chip from a system definition

Country Status (4)

Country Link
US (3) US8250503B2 (en)
EP (1) EP1974265A1 (en)
JP (1) JP2009524134A (en)
WO (1) WO2007082730A1 (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524134A (en) * 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Hardware definition method
DE102008001433A1 (en) 2008-04-28 2009-10-29 Evonik Degussa Gmbh Hydrophobised silicon-iron mixed oxide
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US8423983B2 (en) * 2008-10-14 2013-04-16 International Business Machines Corporation Generating and executing programs for a floating point single instruction multiple data instruction set architecture
US9652231B2 (en) * 2008-10-14 2017-05-16 International Business Machines Corporation All-to-all permutation of vector elements based on a permutation pattern encoded in mantissa and exponent bits in a floating-point SIMD architecture
EP2765528B1 (en) * 2013-02-11 2018-11-14 dSPACE digital signal processing and control engineering GmbH Unrestricted access to signal values of an FPGA during runtime
CN104981807B (en) 2013-02-11 2019-04-23 帝斯贝思数字信号处理和控制工程有限公司 Change the signal value of FPGA in operation
US8751997B1 (en) * 2013-03-14 2014-06-10 Xilinx, Inc. Processing a fast speed grade circuit design for use on a slower speed grade integrated circuit
US9846660B2 (en) 2014-11-12 2017-12-19 Xilinx, Inc. Heterogeneous multiprocessor platform targeting programmable integrated circuits
WO2016077393A1 (en) * 2014-11-12 2016-05-19 Xilinx, Inc. Heterogeneous multiprocessor program compilation targeting programmable integrated circuits
US9218443B1 (en) * 2014-11-12 2015-12-22 Xilinx, Inc. Heterogeneous multiprocessor program compilation targeting programmable integrated circuits
US9552456B2 (en) * 2015-05-29 2017-01-24 Altera Corporation Methods and apparatus for probing signals from a circuit after register retiming
US10394990B1 (en) * 2016-09-27 2019-08-27 Altera Corporation Initial condition support for partial reconfiguration
US10956241B1 (en) 2017-12-20 2021-03-23 Xilinx, Inc. Unified container for hardware and software binaries
US11087232B2 (en) * 2018-07-18 2021-08-10 IonQ, Inc. Quantum hybrid computation
US11036546B1 (en) 2019-04-16 2021-06-15 Xilinx, Inc. Multi-threaded shared memory functional simulation of dataflow graph
US10628622B1 (en) * 2019-05-10 2020-04-21 Xilinx, Inc. Stream FIFO insertion in a compilation flow for a heterogeneous multi-core architecture
US11138019B1 (en) * 2019-05-23 2021-10-05 Xilinx, Inc. Routing in a compilation flow for a heterogeneous multi-core architecture
US10831691B1 (en) * 2019-05-24 2020-11-10 International Business Machines Corporation Method for implementing processing elements in a chip card
US11392796B2 (en) * 2019-08-20 2022-07-19 Micron Technology, Inc. Feature dictionary for bandwidth enhancement
US11636334B2 (en) 2019-08-20 2023-04-25 Micron Technology, Inc. Machine learning with feature obfuscation
US11755884B2 (en) 2019-08-20 2023-09-12 Micron Technology, Inc. Distributed machine learning with privacy protection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149898A1 (en) * 1998-10-14 2005-07-07 Hakewill James R.H. Method and apparatus for managing the configuration and functionality of a semiconductor design
US7028283B1 (en) * 2003-01-30 2006-04-11 Xilinx, Inc. Method of using a hardware library in a programmable logic device
US20080222580A1 (en) * 2007-03-09 2008-09-11 Mips Technologies, Inc. System and method for managing the design and configuration of an integrated circuit semiconductor design
US8250503B2 (en) * 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software

Family Cites Families (594)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2067477A (en) 1931-03-20 1937-01-12 Allis Chalmers Mfg Co Gearing
GB971191A (en) 1962-05-28 1964-09-30 Wolf Electric Tools Ltd Improvements relating to electrically driven equipment
US3564506A (en) 1968-01-17 1971-02-16 Ibm Instruction retry byte counter
GB1253309A (en) 1969-11-21 1971-11-10 Marconi Co Ltd Improvements in or relating to data processing arrangements
US3753008A (en) 1970-06-20 1973-08-14 Honeywell Inf Systems Memory pre-driver circuit
US5459846A (en) 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
US3855577A (en) 1973-06-11 1974-12-17 Texas Instruments Inc Power saving circuit for calculator system
US4151611A (en) 1976-03-26 1979-04-24 Tokyo Shibaura Electric Co., Ltd. Power supply control system for memory systems
US4233667A (en) 1978-10-23 1980-11-11 International Business Machines Corporation Demand powered programmable logic array
US4442508A (en) 1981-08-05 1984-04-10 General Instrument Corporation Storage cells for use in two conductor data column storage logic arrays
US4498134A (en) 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
US4590583A (en) 1982-07-16 1986-05-20 At&T Bell Laboratories Coin telephone measurement circuitry
US4498172A (en) 1982-07-26 1985-02-05 General Electric Company System for polynomial division self-testing of digital networks
US4667190A (en) 1982-07-30 1987-05-19 Honeywell Inc. Two axis fast access memory
JPS5936857A (en) 1982-08-25 1984-02-29 Nec Corp Processor unit
US4663706A (en) 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
US4594682A (en) 1982-12-22 1986-06-10 Ibm Corporation Vector processing
US4739474A (en) 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
US4566102A (en) 1983-04-18 1986-01-21 International Business Machines Corporation Parallel-shift error reconfiguration
US5123109A (en) 1983-05-31 1992-06-16 Thinking Machines Corporation Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system
US4571736A (en) 1983-10-31 1986-02-18 University Of Southwestern Louisiana Digital communication system employing differential coding and sample robbing
US4870302A (en) 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
USRE34363E (en) 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
JPS60198618A (en) 1984-03-21 1985-10-08 Oki Electric Ind Co Ltd Dynamic logical circuit
US4761755A (en) 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
US4682284A (en) 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
EP0190813B1 (en) 1985-01-29 1991-09-18 The Secretary of State for Defence in Her Britannic Majesty's Government of the United Kingdom of Great Britain and Processing cell for fault tolerant arrays
US4720778A (en) 1985-01-31 1988-01-19 Hewlett Packard Company Software debugging analyzer
US5023775A (en) 1985-02-14 1991-06-11 Intel Corporation Software programmable logic array utilizing "and" and "or" gates
US5247689A (en) 1985-02-25 1993-09-21 Ewert Alfred P Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments
US4706216A (en) 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US5015884A (en) 1985-03-29 1991-05-14 Advanced Micro Devices, Inc. Multiple array high performance programmable logic device family
US5225719A (en) 1985-03-29 1993-07-06 Advanced Micro Devices, Inc. Family of multiple segmented programmable logic blocks interconnected by a high speed centralized switch matrix
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4967340A (en) 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
GB8517376D0 (en) 1985-07-09 1985-08-14 Jesshope C R Processor array
US4720780A (en) 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
DE3687400T2 (en) 1985-11-04 1993-07-15 Ibm DIGITAL NEWS TRANSMISSION NETWORKS AND STRUCTURE OF TRANSMISSION WAYS IN THESE NETWORKS.
US4852048A (en) 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
US4882687A (en) 1986-03-31 1989-11-21 Schlumberger Technology Corporation Pixel processor
US5021947A (en) 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US5034914A (en) 1986-05-15 1991-07-23 Aquidneck Systems International, Inc. Optical disk data storage method and apparatus with buffered interface
GB8612396D0 (en) 1986-05-21 1986-06-25 Hewlett Packard Ltd Chain-configured interface bus system
US4791603A (en) 1986-07-18 1988-12-13 Honeywell Inc. Dynamically reconfigurable array logic
US4910665A (en) 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
US4860201A (en) 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US5367208A (en) 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
US4884231A (en) 1986-09-26 1989-11-28 Performance Semiconductor Corporation Microprocessor system with extended arithmetic logic unit
GB2211638A (en) 1987-10-27 1989-07-05 Ibm Simd array processor
FR2606184B1 (en) 1986-10-31 1991-11-29 Thomson Csf RECONFIGURABLE CALCULATION DEVICE
US4918440A (en) 1986-11-07 1990-04-17 Furtek Frederick C Programmable logic cell and array
US4811214A (en) 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5226122A (en) 1987-08-21 1993-07-06 Compaq Computer Corp. Programmable logic system for filtering commands to a microprocessor
CA1299757C (en) 1987-08-28 1992-04-28 Brent Cameron Beardsley Device initiated partial system quiescing
US5119290A (en) 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
CA1286421C (en) 1987-10-14 1991-07-16 Martin Claude Lefebvre Message fifo buffer controller
US5115510A (en) 1987-10-20 1992-05-19 Sharp Kabushiki Kaisha Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information
US5113498A (en) 1987-11-10 1992-05-12 Echelon Corporation Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
US4918690A (en) 1987-11-10 1990-04-17 Echelon Systems Corp. Network and intelligent cell for providing sensing, bidirectional communications and control
NL8800053A (en) 1988-01-11 1989-08-01 Philips Nv VIDEO PROCESSOR SYSTEM, IMAGE SYSTEM AND IMAGE STORAGE SYSTEM, PROVIDED WITH SUCH A VIDEO PROCESSOR SYSTEM.
US5197016A (en) * 1988-01-13 1993-03-23 International Chip Corporation Integrated silicon-software compiler
USRE34444E (en) 1988-01-13 1993-11-16 Xilinx, Inc. Programmable logic device
NL8800071A (en) 1988-01-13 1989-08-01 Philips Nv DATA PROCESSOR SYSTEM AND VIDEO PROCESSOR SYSTEM, PROVIDED WITH SUCH A DATA PROCESSOR SYSTEM.
EP0325421B1 (en) 1988-01-20 1994-08-10 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations
US5303172A (en) 1988-02-16 1994-04-12 Array Microsystems Pipelined combination and vector signal processor
US4959781A (en) 1988-05-16 1990-09-25 Stardent Computer, Inc. System for assigning interrupts to least busy processor that already loaded same class of interrupt routines
JPH06101043B2 (en) 1988-06-30 1994-12-12 三菱電機株式会社 Microcomputer
US4939641A (en) 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
US5287511A (en) 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
JPH03500461A (en) 1988-07-22 1991-01-31 アメリカ合衆国 Data flow device for data-driven calculations
US5010401A (en) 1988-08-11 1991-04-23 Mitsubishi Denki Kabushiki Kaisha Picture coding and decoding apparatus using vector quantization
US4901268A (en) 1988-08-19 1990-02-13 General Electric Company Multiple function data processor
US5204935A (en) 1988-08-19 1993-04-20 Fuji Xerox Co., Ltd. Programmable fuzzy logic circuits
US5353432A (en) 1988-09-09 1994-10-04 Compaq Computer Corporation Interactive method for configuration of computer system and circuit boards with user specification of system resources and computer resolution of resource conflicts
ES2047629T3 (en) 1988-09-22 1994-03-01 Siemens Ag CIRCUIT PROVISION FOR TELECOMMUNICATION SWITCHING FACILITIES, ESPECIALLY TEMPORARY MULTIPLEXING TELEPHONE SWITCHING FACILITIES-PCM WITH CENTRAL COUPLING FIELD AND PARTIAL COUPLING FIELDS.
JP3060018B2 (en) 1988-10-05 2000-07-04 クイックターン デザイン システムズ インコーポレイテッド A method for constructing a logic configuration using a plurality of electrically reconfigurable gate arrays
EP0390907B1 (en) 1988-10-07 1996-07-03 Martin Marietta Corporation Parallel data processor
US5014193A (en) 1988-10-14 1991-05-07 Compaq Computer Corporation Dynamically configurable portable computer system
US5136717A (en) 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5041924A (en) 1988-11-30 1991-08-20 Quantum Corporation Removable and transportable hard disk subsystem
US5081375A (en) 1989-01-19 1992-01-14 National Semiconductor Corp. Method for operating a multiple page programmable logic device
GB8906145D0 (en) 1989-03-17 1989-05-04 Algotronix Ltd Configurable cellular array
US5203005A (en) 1989-05-02 1993-04-13 Horst Robert W Cell structure for linear array wafer scale integration architecture with capability to open boundary i/o bus without neighbor acknowledgement
US5237686A (en) 1989-05-10 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Multiprocessor type time varying image encoding system and image processor with memory bus control table for arbitration priority
US5109503A (en) 1989-05-22 1992-04-28 Ge Fanuc Automation North America, Inc. Apparatus with reconfigurable counter includes memory for storing plurality of counter configuration files which respectively define plurality of predetermined counters
JP2584673B2 (en) 1989-06-09 1997-02-26 株式会社日立製作所 Logic circuit test apparatus having test data change circuit
US5343406A (en) 1989-07-28 1994-08-30 Xilinx, Inc. Distributed memory architecture for a configurable logic array and method for using distributed memory
CA2021192A1 (en) 1989-07-28 1991-01-29 Malcolm A. Mumme Simplified synchronous mesh processor
US5233539A (en) 1989-08-15 1993-08-03 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure, input/output structure and configurable logic block
US5212652A (en) 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5489857A (en) 1992-08-03 1996-02-06 Advanced Micro Devices, Inc. Flexible synchronous/asynchronous cell structure for a high density programmable logic device
US5128559A (en) 1989-09-29 1992-07-07 Sgs-Thomson Microelectronics, Inc. Logic block for programmable logic devices
JP2968289B2 (en) 1989-11-08 1999-10-25 株式会社リコー Central processing unit
GB8925723D0 (en) 1989-11-14 1990-01-04 Amt Holdings Processor array system
GB8925721D0 (en) 1989-11-14 1990-01-04 Amt Holdings Processor array system
US5212777A (en) 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
US5522083A (en) 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
EP0428770B1 (en) 1989-11-21 1995-02-01 Deutsche ITT Industries GmbH Data controlled array processor
US5099447A (en) 1990-01-22 1992-03-24 Alliant Computer Systems Corporation Blocked matrix multiplication for computers with hierarchical memory
WO1991011765A1 (en) 1990-01-29 1991-08-08 Teraplex, Inc. Architecture for minimal instruction set computing system
US5125801A (en) 1990-02-02 1992-06-30 Isco, Inc. Pumping system
US5036493A (en) 1990-03-15 1991-07-30 Digital Equipment Corporation System and method for reducing power usage by multiple memory modules
US5142469A (en) 1990-03-29 1992-08-25 Ge Fanuc Automation North America, Inc. Method for converting a programmable logic controller hardware configuration and corresponding control program for use on a first programmable logic controller to use on a second programmable logic controller
US5555201A (en) 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
EP0463721A3 (en) 1990-04-30 1993-06-16 Gennum Corporation Digital signal processing device
WO1991017507A1 (en) 1990-05-07 1991-11-14 Mitsubishi Denki Kabushiki Kaisha Parallel data processing system
US5198705A (en) 1990-05-11 1993-03-30 Actel Corporation Logic module with configurable combinational and sequential blocks
US5483620A (en) 1990-05-22 1996-01-09 International Business Machines Corp. Learning machine synapse processor system apparatus
US5193202A (en) 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
CA2045773A1 (en) 1990-06-29 1991-12-30 Compaq Computer Corporation Byte-compare operation for high-performance processor
US5111079A (en) 1990-06-29 1992-05-05 Sgs-Thomson Microelectronics, Inc. Power reduction circuit for programmable logic device
SE9002558D0 (en) 1990-08-02 1990-08-02 Carlstedt Elektronik Ab PROCESSOR
DE4129614C2 (en) 1990-09-07 2002-03-21 Hitachi Ltd System and method for data processing
US5274593A (en) 1990-09-28 1993-12-28 Intergraph Corporation High speed redundant rows and columns for semiconductor memories
US5144166A (en) 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
US5617577A (en) 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5625836A (en) 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5734921A (en) 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5752067A (en) 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US5794059A (en) 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5765011A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
EP0485690B1 (en) 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
CA2051222C (en) 1990-11-30 1998-05-05 Pradeep S. Sindhu Consistent packet switched memory bus for shared memory multiprocessors
US5613128A (en) 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5276836A (en) 1991-01-10 1994-01-04 Hitachi, Ltd. Data processing device with common memory connecting mechanism
US5301284A (en) 1991-01-16 1994-04-05 Walker-Estes Corporation Mixed-resolution, N-dimensional object space method and apparatus
US5301344A (en) 1991-01-29 1994-04-05 Analogic Corporation Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets
JP2867717B2 (en) 1991-02-01 1999-03-10 日本電気株式会社 Microcomputer
US5212716A (en) 1991-02-05 1993-05-18 International Business Machines Corporation Data edge phase sorting circuits
US5218302A (en) 1991-02-06 1993-06-08 Sun Electric Corporation Interface for coupling an analyzer to a distributorless ignition system
EP0642094B1 (en) 1991-02-22 1998-09-02 Siemens Aktiengesellschaft Method for programming a logic unit
JPH04290155A (en) 1991-03-19 1992-10-14 Fujitsu Ltd Parallel data processing system
JPH04293151A (en) 1991-03-20 1992-10-16 Fujitsu Ltd Parallel data processing system
US5617547A (en) 1991-03-29 1997-04-01 International Business Machines Corporation Switch network extension of bus architecture
KR0125623B1 (en) 1991-04-09 1998-07-01 세끼자와 다다시 Data processor and data processing method
JPH04328657A (en) 1991-04-30 1992-11-17 Toshiba Corp Cache memory
US5551033A (en) 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
JPH06507990A (en) 1991-05-24 1994-09-08 ブリティッシュ・テクノロジー・グループ・ユーエスエイ・インコーポレーテッド Optimizing compiler for computers
US5659797A (en) 1991-06-24 1997-08-19 U.S. Philips Corporation Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface
JP3259969B2 (en) 1991-07-09 2002-02-25 株式会社東芝 Cache memory controller
US5347639A (en) 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method
US5338984A (en) 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5581731A (en) 1991-08-30 1996-12-03 King; Edward C. Method and apparatus for managing video data for faster access by selectively caching video data
US5260610A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5633830A (en) 1995-11-08 1997-05-27 Altera Corporation Random access memory block circuitry for programmable logic array integrated circuit devices
US5550782A (en) 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
FR2681791B1 (en) 1991-09-27 1994-05-06 Salomon Sa VIBRATION DAMPING DEVICE FOR A GOLF CLUB.
CA2073516A1 (en) 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
WO1993011503A1 (en) 1991-12-06 1993-06-10 Norman Richard S Massively-parallel direct output processor array
US5208491A (en) 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
FR2686175B1 (en) 1992-01-14 1996-12-20 Andre Thepaut MULTIPROCESSOR DATA PROCESSING SYSTEM.
US5412795A (en) 1992-02-25 1995-05-02 Micral, Inc. State machine having a variable timing mechanism for varying the duration of logical output states of the state machine based on variation in the clock frequency
JP2791243B2 (en) 1992-03-13 1998-08-27 株式会社東芝 Hierarchical synchronization system and large scale integrated circuit using the same
US5452401A (en) 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
JP2647327B2 (en) 1992-04-06 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション Massively parallel computing system equipment
US5493663A (en) 1992-04-22 1996-02-20 International Business Machines Corporation Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses
JP2572522B2 (en) 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション Computing device
US5611049A (en) 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
EP0643855A1 (en) 1992-06-04 1995-03-22 Xilinx, Inc. Timing driven method for laying out a user's circuit onto a programmable integrated circuit device
DE4221278C2 (en) 1992-06-29 1996-02-29 Martin Vorbach Bus-linked multi-computer system
US5475803A (en) 1992-07-10 1995-12-12 Lsi Logic Corporation Method for 2-D affine transformation of images
JP3032382B2 (en) 1992-07-13 2000-04-17 シャープ株式会社 Digital signal sampling frequency converter
US5386154A (en) 1992-07-23 1995-01-31 Xilinx, Inc. Compact logic cell for field programmable gate array chip
US5365125A (en) 1992-07-23 1994-11-15 Xilinx, Inc. Logic cell for field programmable gate array having optional internal feedback and optional cascade
US5590348A (en) 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5802290A (en) 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5581778A (en) 1992-08-05 1996-12-03 David Sarnoff Researach Center Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
ATE194247T1 (en) 1992-09-03 2000-07-15 Sony Corp DATA RECORDING DEVICE AND METHOD
US5572710A (en) 1992-09-11 1996-11-05 Kabushiki Kaisha Toshiba High speed logic simulation system using time division emulation suitable for large scale logic circuits
US5425036A (en) 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
JPH06180653A (en) 1992-10-02 1994-06-28 Hudson Soft Co Ltd Interruption processing method and device therefor
US5857109A (en) 1992-11-05 1999-01-05 Giga Operations Corporation Programmable logic device for real time video processing
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5497498A (en) 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
US5392437A (en) 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5361373A (en) 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5311079A (en) 1992-12-17 1994-05-10 Ditlow Gary S Low power, high performance PLA
US5428526A (en) 1993-02-03 1995-06-27 Flood; Mark A. Programmable controller with time periodic communication
US5386518A (en) 1993-02-12 1995-01-31 Hughes Aircraft Company Reconfigurable computer interface and method
GB9303084D0 (en) 1993-02-16 1993-03-31 Inmos Ltd Programmable logic circuit
JPH06276086A (en) 1993-03-18 1994-09-30 Fuji Xerox Co Ltd Field programmable gate array
US5548773A (en) 1993-03-30 1996-08-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digital parallel processor array for optimum path planning
US5596742A (en) 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5418953A (en) 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
US5473266A (en) 1993-04-19 1995-12-05 Altera Corporation Programmable logic device having fast programmable logic array blocks and a central global interconnect array
AU6774894A (en) 1993-04-26 1994-11-21 Comdisco Systems, Inc. Method for scheduling synchronous data flow graphs
DE4416881C2 (en) 1993-05-13 1998-03-19 Pact Inf Tech Gmbh Method for operating a data processing device
US5435000A (en) 1993-05-19 1995-07-18 Bull Hn Information Systems Inc. Central processing unit using dual basic processing units and combined result bus
US5349193A (en) 1993-05-20 1994-09-20 Princeton Gamma Tech, Inc. Highly sensitive nuclear spectrometer apparatus and method
IT1260848B (en) 1993-06-11 1996-04-23 Finmeccanica Spa MULTIPROCESSOR SYSTEM
US5444394A (en) 1993-07-08 1995-08-22 Altera Corporation PLD with selective inputs from local and global conductors
JPH0736858A (en) 1993-07-21 1995-02-07 Hitachi Ltd Signal processor
US5581734A (en) 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
CA2129882A1 (en) 1993-08-12 1995-02-13 Soheil Shams Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same
US5457644A (en) 1993-08-20 1995-10-10 Actel Corporation Field programmable digital signal processing array integrated circuit
US5440538A (en) 1993-09-23 1995-08-08 Massachusetts Institute Of Technology Communication system with redundant links and data bit time multiplexing
GB2282244B (en) 1993-09-23 1998-01-14 Advanced Risc Mach Ltd Integrated circuit
US5502838A (en) 1994-04-28 1996-03-26 Consilium Overseas Limited Temperature management for integrated circuits
US6219688B1 (en) 1993-11-30 2001-04-17 Texas Instruments Incorporated Method, apparatus and system for sum of plural absolute differences
US5455525A (en) 1993-12-06 1995-10-03 Intelligent Logic Systems, Inc. Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array
US5535406A (en) 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
US5680583A (en) 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
JP3993634B2 (en) 1994-03-22 2007-10-17 ハイパーチップ インコーポレイテッド Efficient direct cell switching fault tolerant architecture supporting fully integrated systems with means for direct communication with system operators
US5574927A (en) 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US5561738A (en) 1994-03-25 1996-10-01 Motorola, Inc. Data processor for executing a fuzzy logic operation and method therefor
US5504439A (en) 1994-04-01 1996-04-02 Xilinx, Inc. I/O interface cell for use with optional pad
US5781756A (en) 1994-04-01 1998-07-14 Xilinx, Inc. Programmable logic device with partially configurable memory cells and a method for configuration
US5761484A (en) 1994-04-01 1998-06-02 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5430687A (en) 1994-04-01 1995-07-04 Xilinx, Inc. Programmable logic device including a parallel input device for loading memory cells
US5896551A (en) 1994-04-15 1999-04-20 Micron Technology, Inc. Initializing and reprogramming circuitry for state independent memory array burst operations control
US5426378A (en) 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
JP2671804B2 (en) 1994-05-27 1997-11-05 日本電気株式会社 Hierarchical resource management method
US5532693A (en) 1994-06-13 1996-07-02 Advanced Hardware Architectures Adaptive data compression system with systolic string matching logic
EP0690378A1 (en) 1994-06-30 1996-01-03 Tandem Computers Incorporated Tool and method for diagnosing and correcting errors in a computer programm
JP3308770B2 (en) 1994-07-22 2002-07-29 三菱電機株式会社 Information processing apparatus and calculation method in information processing apparatus
US5600845A (en) 1994-07-27 1997-02-04 Metalithic Systems Incorporated Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
JP3365581B2 (en) 1994-07-29 2003-01-14 富士通株式会社 Information processing device with self-healing function
US5703793A (en) 1994-07-29 1997-12-30 Discovision Associates Video decompression
US5574930A (en) 1994-08-12 1996-11-12 University Of Hawaii Computer system and method using functional memory
US5513366A (en) 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5619720A (en) 1994-10-04 1997-04-08 Analog Devices, Inc. Digital signal processor having link ports for point-to-point communication
US5450022A (en) 1994-10-07 1995-09-12 Xilinx Inc. Structure and method for configuration of a field programmable gate array
EP0707269A1 (en) 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
US5530946A (en) 1994-10-28 1996-06-25 Dell Usa, L.P. Processor failure detection and recovery circuit in a dual processor computer system and method of operation thereof
US5815726A (en) 1994-11-04 1998-09-29 Altera Corporation Coarse-grained look-up table architecture
JPH08137824A (en) 1994-11-15 1996-05-31 Mitsubishi Semiconductor Software Kk Single-chip microcomputer with built-in self-test function
US6154826A (en) 1994-11-16 2000-11-28 University Of Virginia Patent Foundation Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order
US5584013A (en) 1994-12-09 1996-12-10 International Business Machines Corporation Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
EP0721157A1 (en) 1994-12-12 1996-07-10 Advanced Micro Devices, Inc. Microprocessor with selectable clock frequency
US5537580A (en) 1994-12-21 1996-07-16 Vlsi Technology, Inc. Integrated circuit fabrication using state machine extraction from behavioral hardware description language
JP3598139B2 (en) 1994-12-28 2004-12-08 株式会社日立製作所 Data processing device
US6128720A (en) 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5682491A (en) 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US5696791A (en) 1995-01-17 1997-12-09 Vtech Industries, Inc. Apparatus and method for decoding a sequence of digitally encoded data
US5532957A (en) 1995-01-31 1996-07-02 Texas Instruments Incorporated Field reconfigurable logic/memory array
US5493239A (en) 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US5659785A (en) 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US5742180A (en) 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
US6052773A (en) 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5537057A (en) 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
DE69632424T2 (en) 1995-02-17 2005-05-12 Kabushiki Kaisha Toshiba, Kawasaki Continuous data server and data transfer scheme for multiple concurrent data access
US5892961A (en) 1995-02-17 1999-04-06 Xilinx, Inc. Field programmable gate array having programming instructions in the configuration bitstream
US5675743A (en) 1995-02-22 1997-10-07 Callisto Media Systems Inc. Multi-media server
US5757207A (en) 1995-03-22 1998-05-26 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5570040A (en) 1995-03-22 1996-10-29 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5752035A (en) 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
US5748979A (en) 1995-04-05 1998-05-05 Xilinx Inc Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table
JP3313007B2 (en) 1995-04-14 2002-08-12 三菱電機株式会社 Microcomputer
US5933642A (en) 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
US5794062A (en) 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US6077315A (en) 1995-04-17 2000-06-20 Ricoh Company Ltd. Compiling system and method for partially reconfigurable computing
WO1996034346A1 (en) 1995-04-28 1996-10-31 Xilinx, Inc. Microprocessor with distributed registers accessible by programmable logic device
US5701091A (en) 1995-05-02 1997-12-23 Xilinx, Inc. Routing resources for hierarchical FPGA
US5600597A (en) 1995-05-02 1997-02-04 Xilinx, Inc. Register protection structure for FPGA
GB9508931D0 (en) 1995-05-02 1995-06-21 Xilinx Inc Programmable switch for FPGA input/output signals
US5541530A (en) 1995-05-17 1996-07-30 Altera Corporation Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks
US5649179A (en) 1995-05-19 1997-07-15 Motorola, Inc. Dynamic instruction allocation for a SIMD processor
US5821774A (en) 1995-05-26 1998-10-13 Xilinx, Inc. Structure and method for arithmetic function implementation in an EPLD having high speed product term allocation structure
JPH08328941A (en) 1995-05-31 1996-12-13 Nec Corp Memory access control circuit
JP3677315B2 (en) 1995-06-01 2005-07-27 シャープ株式会社 Data-driven information processing device
US5652529A (en) 1995-06-02 1997-07-29 International Business Machines Corporation Programmable array clock/reset resource
US5671432A (en) 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
US5815715A (en) 1995-06-05 1998-09-29 Motorola, Inc. Method for designing a product having hardware and software components and product therefor
US5646544A (en) 1995-06-05 1997-07-08 International Business Machines Corporation System and method for dynamically reconfiguring a programmable gate array
ZA965340B (en) 1995-06-30 1997-01-27 Interdigital Tech Corp Code division multiple access (cdma) communication system
US5889982A (en) 1995-07-01 1999-03-30 Intel Corporation Method and apparatus for generating event handler vectors based on both operating mode and event type
US5559450A (en) 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5978583A (en) 1995-08-07 1999-11-02 International Business Machines Corp. Method for resource control in parallel environments using program organization and run-time support
US5649176A (en) 1995-08-10 1997-07-15 Virtual Machine Works, Inc. Transition analysis and circuit resynthesis method and device for digital circuit modeling
US5996083A (en) 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
GB2304438A (en) 1995-08-17 1997-03-19 Kenneth Austin Re-configurable application specific device
US5778439A (en) 1995-08-18 1998-07-07 Xilinx, Inc. Programmable logic device with hierarchical confiquration and state storage
US5646545A (en) 1995-08-18 1997-07-08 Xilinx, Inc. Time multiplexed programmable logic device
US5583450A (en) 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5784313A (en) 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5737565A (en) 1995-08-24 1998-04-07 International Business Machines Corporation System and method for diallocating stream from a stream buffer
US5737516A (en) 1995-08-30 1998-04-07 Motorola, Inc. Data processing system for performing a debug function and method therefor
US5734869A (en) 1995-09-06 1998-03-31 Chen; Duan-Ping High speed logic circuit simulator
US6430309B1 (en) 1995-09-15 2002-08-06 Monogen, Inc. Specimen preview and inspection system
US5652894A (en) 1995-09-29 1997-07-29 Intel Corporation Method and apparatus for providing power saving modes to a pipelined processor
US5745734A (en) 1995-09-29 1998-04-28 International Business Machines Corporation Method and system for programming a gate array using a compressed configuration bit stream
US5754827A (en) 1995-10-13 1998-05-19 Mentor Graphics Corporation Method and apparatus for performing fully visible tracing of an emulation
US5642058A (en) 1995-10-16 1997-06-24 Xilinx , Inc. Periphery input/output interconnect structure
US5815004A (en) 1995-10-16 1998-09-29 Xilinx, Inc. Multi-buffered configurable logic block output lines in a field programmable gate array
US5608342A (en) 1995-10-23 1997-03-04 Xilinx, Inc. Hierarchical programming of electrically configurable integrated circuits
US5656950A (en) 1995-10-26 1997-08-12 Xilinx, Inc. Interconnect lines including tri-directional buffer circuits
US5675262A (en) 1995-10-26 1997-10-07 Xilinx, Inc. Fast carry-out scheme in a field programmable gate array
US5943242A (en) 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5732209A (en) 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points
US5773994A (en) 1995-12-15 1998-06-30 Cypress Semiconductor Corp. Method and apparatus for implementing an internal tri-state bus within a programmable logic circuit
JPH09231788A (en) 1995-12-19 1997-09-05 Fujitsu Ltd Shift register and programmable logic circuit and programmable logic circuit system
US5804986A (en) 1995-12-29 1998-09-08 Cypress Semiconductor Corp. Memory in a programmable logic device
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
WO2002029600A2 (en) 2000-10-06 2002-04-11 Pact Informationstechnologie Gmbh Cell system with segmented intermediate cell structure
JP3247043B2 (en) 1996-01-12 2002-01-15 株式会社日立製作所 Information processing system and logic LSI for detecting failures using internal signals
JP2795244B2 (en) 1996-01-17 1998-09-10 日本電気株式会社 Program debugging system
US5760602A (en) 1996-01-17 1998-06-02 Hewlett-Packard Company Time multiplexing a plurality of configuration settings of a programmable switch element in a FPGA
US5854918A (en) 1996-01-24 1998-12-29 Ricoh Company Ltd. Apparatus and method for self-timed algorithmic execution
US5898602A (en) 1996-01-25 1999-04-27 Xilinx, Inc. Carry chain circuit with flexible carry function for implementing arithmetic and logical functions
US5936424A (en) 1996-02-02 1999-08-10 Xilinx, Inc. High speed bus with tree structure for selecting bus driver
US5635851A (en) 1996-02-02 1997-06-03 Xilinx, Inc. Read and writable data bus particularly for programmable logic devices
US5727229A (en) 1996-02-05 1998-03-10 Motorola, Inc. Method and apparatus for moving data in a parallel processor
US5754459A (en) 1996-02-08 1998-05-19 Xilinx, Inc. Multiplier circuit design for a programmable logic device
KR0165515B1 (en) 1996-02-17 1999-01-15 김광호 Fifo method and apparatus of graphic data
GB9604496D0 (en) 1996-03-01 1996-05-01 Xilinx Inc Embedded memory for field programmable gate array
US6020758A (en) 1996-03-11 2000-02-01 Altera Corporation Partially reconfigurable programmable logic device
US5841973A (en) 1996-03-13 1998-11-24 Cray Research, Inc. Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory
US6279077B1 (en) 1996-03-22 2001-08-21 Texas Instruments Incorporated Bus interface buffer control in a microprocessor
US6311265B1 (en) 1996-03-25 2001-10-30 Torrent Systems, Inc. Apparatuses and methods for programming parallel computers
US6154049A (en) 1998-03-27 2000-11-28 Xilinx, Inc. Multiplier fabric for use in field programmable gate arrays
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5687325A (en) 1996-04-19 1997-11-11 Chang; Web Application specific field programmable gate array
US6173434B1 (en) 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules
US5960200A (en) 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure
US5894565A (en) 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5784636A (en) 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications
EP0978051A1 (en) 1996-06-21 2000-02-09 Mirage Technologies, Inc. Dynamically reconfigurable hardware system for real-time control of processes
US5892370A (en) 1996-06-21 1999-04-06 Quicklogic Corporation Clock network for field programmable gate array
US6785826B1 (en) 1996-07-17 2004-08-31 International Business Machines Corporation Self power audit and control circuitry for microprocessor functional units
US6023742A (en) 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US6023564A (en) 1996-07-19 2000-02-08 Xilinx, Inc. Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions
KR100280285B1 (en) 1996-08-19 2001-02-01 윤종용 Multimedia processor suitable for multimedia signals
US5838165A (en) 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US5933023A (en) 1996-09-03 1999-08-03 Xilinx, Inc. FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines
US6624658B2 (en) 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
US5859544A (en) 1996-09-05 1999-01-12 Altera Corporation Dynamic configurable elements for programmable logic devices
US6049866A (en) 1996-09-06 2000-04-11 Silicon Graphics, Inc. Method and system for an efficient user mode cache manipulation using a simulated instruction
JP3934710B2 (en) 1996-09-13 2007-06-20 株式会社ルネサステクノロジ Microprocessor
US5828858A (en) 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
US6178494B1 (en) 1996-09-23 2001-01-23 Virtual Computer Corporation Modular, hybrid processor and method for producing a modular, hybrid processor
US5694602A (en) 1996-10-01 1997-12-02 The United States Of America As Represented By The Secretary Of The Air Force Weighted system and method for spatial allocation of a parallel load
US5901279A (en) 1996-10-18 1999-05-04 Hughes Electronics Corporation Connection of spares between multiple programmable devices
US5832288A (en) 1996-10-18 1998-11-03 Samsung Electronics Co., Ltd. Element-select mechanism for a vector processor
US5892962A (en) 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US5844422A (en) 1996-11-13 1998-12-01 Xilinx, Inc. State saving and restoration in reprogrammable FPGAs
US5895487A (en) 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
US5860119A (en) 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US6005410A (en) 1996-12-05 1999-12-21 International Business Machines Corporation Interconnect structure between heterogeneous core regions in a programmable array
DE19651075A1 (en) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Unit for processing numerical and logical operations, for use in processors (CPU's), multi-computer systems, data flow processors (DFP's), digital signal processors (DSP's) or the like
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654595A1 (en) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0 and memory bus system for DFPs as well as building blocks with two- or multi-dimensional programmable cell structures
DE19654593A1 (en) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Reconfiguration procedure for programmable blocks at runtime
EP1329816B1 (en) 1996-12-27 2011-06-22 Richter, Thomas Method for automatic dynamic unloading of data flow processors (dfp) as well as modules with bidimensional or multidimensional programmable cell structures (fpgas, dpgas or the like)
DE19654846A1 (en) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Process for the independent dynamic reloading of data flow processors (DFPs) as well as modules with two- or multi-dimensional programmable cell structures (FPGAs, DPGAs, etc.)
US6427156B1 (en) 1997-01-21 2002-07-30 Xilinx, Inc. Configurable logic block with AND gate for efficient multiplication in FPGAS
EP0858167A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor device
EP0858168A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor array
DE19704044A1 (en) 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Address generation with systems having programmable modules
US5865239A (en) 1997-02-05 1999-02-02 Micropump, Inc. Method for making herringbone gears
US6055619A (en) 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (en) 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Method for self-synchronization of configurable elements of a programmable module
DE19704742A1 (en) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internal bus system for DFPs, as well as modules with two- or multi-dimensional programmable cell structures, for coping with large amounts of data with high networking effort
US6150837A (en) 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US5927423A (en) 1997-03-05 1999-07-27 Massachusetts Institute Of Technology Reconfigurable footprint mechanism for omnidirectional vehicles
US5884075A (en) 1997-03-10 1999-03-16 Compaq Computer Corporation Conflict resolution using self-contained virtual devices
US5857097A (en) 1997-03-10 1999-01-05 Digital Equipment Corporation Method for identifying reasons for dynamic stall cycles during the execution of a program
US6125408A (en) 1997-03-10 2000-09-26 Compaq Computer Corporation Resource type prioritization in generating a device configuration
US6085317A (en) 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6507898B1 (en) 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
US6321366B1 (en) 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6389379B1 (en) 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6035371A (en) 1997-05-28 2000-03-07 3Com Corporation Method and apparatus for addressing a static random access memory device based on signals for addressing a dynamic memory access device
US6421817B1 (en) 1997-05-29 2002-07-16 Xilinx, Inc. System and method of computation in a programmable logic device using virtual instructions
US6047115A (en) 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
US6339840B1 (en) 1997-06-02 2002-01-15 Iowa State University Research Foundation, Inc. Apparatus and method for parallelizing legacy computer code
US6011407A (en) 1997-06-13 2000-01-04 Xilinx, Inc. Field programmable gate array with dedicated computer bus interface and method for configuring both
US5996048A (en) 1997-06-20 1999-11-30 Sun Microsystems, Inc. Inclusion vector architecture for a level two cache
US5838988A (en) 1997-06-25 1998-11-17 Sun Microsystems, Inc. Computer product for precise architectural update in an out-of-order processor
US6240502B1 (en) 1997-06-25 2001-05-29 Sun Microsystems, Inc. Apparatus for dynamically reconfiguring a processor
US5966534A (en) 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US5970254A (en) 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
US6437441B1 (en) 1997-07-10 2002-08-20 Kawasaki Microelectronics, Inc. Wiring structure of a semiconductor integrated circuit and a method of forming the wiring structure
US6020760A (en) 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
US6282701B1 (en) 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US6170051B1 (en) 1997-08-01 2001-01-02 Micron Technology, Inc. Apparatus and method for program level parallelism in a VLIW processor
US6026478A (en) 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US6078736A (en) 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
US6038656A (en) 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
JP3612186B2 (en) 1997-09-19 2005-01-19 株式会社ルネサステクノロジ Data processing device
US6539415B1 (en) 1997-09-24 2003-03-25 Sony Corporation Method and apparatus for the allocation of audio/video tasks in a network system
US5966143A (en) 1997-10-14 1999-10-12 Motorola, Inc. Data allocation into multiple memories for concurrent access
SG82587A1 (en) 1997-10-21 2001-08-21 Sony Corp Recording apparatus, recording method, playback apparatus, playback method, recording/playback apparatus, recording/playback method, presentation medium and recording medium
JP4128251B2 (en) 1997-10-23 2008-07-30 富士通株式会社 Wiring density prediction method and cell placement apparatus
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6076157A (en) 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6247147B1 (en) 1997-10-27 2001-06-12 Altera Corporation Enhanced embedded logic analyzer
US6108760A (en) 1997-10-31 2000-08-22 Silicon Spice Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
US6122719A (en) 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US5915123A (en) 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6127908A (en) 1997-11-17 2000-10-03 Massachusetts Institute Of Technology Microelectro-mechanical system actuator device and reconfigurable circuits utilizing same
JP4197755B2 (en) 1997-11-19 2008-12-17 富士通株式会社 Signal transmission system, receiver circuit of the signal transmission system, and semiconductor memory device to which the signal transmission system is applied
US6212650B1 (en) 1997-11-24 2001-04-03 Xilinx, Inc. Interactive dubug tool for programmable circuits
US6091263A (en) 1997-12-12 2000-07-18 Xilinx, Inc. Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM
EP0926594B1 (en) 1997-12-17 2007-05-23 Hewlett-Packard Company, A Delaware Corporation Method of using primary and secondary processors
DE69841256D1 (en) 1997-12-17 2009-12-10 Panasonic Corp Command masking for routing command streams to a processor
US6567834B1 (en) 1997-12-17 2003-05-20 Elixent Limited Implementation of multipliers in programmable arrays
DE69827589T2 (en) 1997-12-17 2005-11-03 Elixent Ltd. Configurable processing assembly and method of using this assembly to build a central processing unit
DE19861088A1 (en) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Repairing integrated circuits by replacing subassemblies with substitutes
US6172520B1 (en) 1997-12-30 2001-01-09 Xilinx, Inc. FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA
US6049222A (en) 1997-12-30 2000-04-11 Xilinx, Inc Configuring an FPGA using embedded memory
US6260114B1 (en) 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6301706B1 (en) 1997-12-31 2001-10-09 Elbrus International Limited Compiler method and apparatus for elimination of redundant speculative computations from innermost loops
US6105106A (en) 1997-12-31 2000-08-15 Micron Technology, Inc. Computer system, memory device and shift register including a balanced switching circuit with series connected transfer gates which are selectively clocked for fast switching times
US6216223B1 (en) 1998-01-12 2001-04-10 Billions Of Operations Per Second, Inc. Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US6034538A (en) 1998-01-21 2000-03-07 Lucent Technologies Inc. Virtual logic system for reconfigurable hardware
WO1999038071A1 (en) 1998-01-26 1999-07-29 Chameleon Systems, Inc. Reconfigurable logic for table lookup
US6230307B1 (en) 1998-01-26 2001-05-08 Xilinx, Inc. System and method for programming the hardware of field programmable gate arrays (FPGAs) and related reconfiguration resources as if they were software by creating hardware objects
DE69919059T2 (en) 1998-02-04 2005-01-27 Texas Instruments Inc., Dallas Data processing system with a digital signal processor and a coprocessor and data processing method
US6086628A (en) 1998-02-17 2000-07-11 Lucent Technologies Inc. Power-related hardware-software co-synthesis of heterogeneous distributed embedded systems
US7152027B2 (en) 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6198304B1 (en) 1998-02-23 2001-03-06 Xilinx, Inc. Programmable logic device
US6096091A (en) 1998-02-24 2000-08-01 Advanced Micro Devices, Inc. Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip
DE19807872A1 (en) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Method of managing configuration data in data flow processors
US6088800A (en) 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6298043B1 (en) 1998-03-28 2001-10-02 Nortel Networks Limited Communication system architecture and a connection verification mechanism therefor
US6374286B1 (en) 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6456628B1 (en) 1998-04-17 2002-09-24 Intelect Communications, Inc. DSP intercommunication network
US6421808B1 (en) 1998-04-24 2002-07-16 Cadance Design Systems, Inc. Hardware design language for the design of integrated circuits
AU3755599A (en) * 1998-04-24 1999-11-16 E.I. Du Pont De Nemours And Company Phytic acid biosynthetic enzymes
US6084429A (en) 1998-04-24 2000-07-04 Xilinx, Inc. PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays
US6173419B1 (en) 1998-05-14 2001-01-09 Advanced Technology Materials, Inc. Field programmable gate array (FPGA) emulator for debugging software
US6449283B1 (en) 1998-05-15 2002-09-10 Polytechnic University Methods and apparatus for providing a fast ring reservation arbitration
US5999990A (en) 1998-05-18 1999-12-07 Motorola, Inc. Communicator having reconfigurable resources
US6092174A (en) 1998-06-01 2000-07-18 Context, Inc. Dynamically reconfigurable distributed integrated circuit processor and method
US6298396B1 (en) 1998-06-01 2001-10-02 Advanced Micro Devices, Inc. System for loading a current buffer desciptor register with a value different from current value to cause a previously read buffer descriptor to be read again
JP3123977B2 (en) 1998-06-04 2001-01-15 日本電気株式会社 Programmable function block
US6282627B1 (en) 1998-06-29 2001-08-28 Chameleon Systems, Inc. Integrated processor and programmable data path chip for reconfigurable computing
US6202182B1 (en) 1998-06-30 2001-03-13 Lucent Technologies Inc. Method and apparatus for testing field programmable gate arrays
DE69803373T2 (en) 1998-07-06 2002-08-14 Hewlett-Packard Co.(A Delaware Corporation), Palo Alto Wiring cells in logical fields
GB2368415B (en) 1998-07-21 2002-10-30 Seagate Technology Llc Improved memory system apparatus and method
EP0974898A3 (en) 1998-07-24 2008-12-24 Interuniversitair Microelektronica Centrum Vzw A method for determining a storage-bandwidth optimized memory organization of an essentially digital device
US6137307A (en) 1998-08-04 2000-10-24 Xilinx, Inc. Structure and method for loading wide frames of data from a narrow input bus
DE19835189C2 (en) 1998-08-04 2001-02-08 Unicor Rohrsysteme Gmbh Device for the continuous production of seamless plastic pipes
US20020152060A1 (en) 1998-08-31 2002-10-17 Tseng Ping-Sheng Inter-chip communication system
JP2000076066A (en) 1998-09-02 2000-03-14 Fujitsu Ltd Signal processing circuit
US7100026B2 (en) 2001-05-30 2006-08-29 The Massachusetts Institute Of Technology System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values
US6205458B1 (en) 1998-09-21 2001-03-20 Rn2R, L.L.C. Adder and multiplier circuits employing logic gates having discrete, weighted inputs and methods of performing combinatorial operations therewith
JP3551353B2 (en) 1998-10-02 2004-08-04 株式会社日立製作所 Data relocation method
US6215326B1 (en) 1998-11-18 2001-04-10 Altera Corporation Programmable logic device architecture with super-regions having logic regions and a memory region
WO2000031652A2 (en) 1998-11-20 2000-06-02 Altera Corporation Reconfigurable programmable logic device computer system
US6977649B1 (en) 1998-11-23 2005-12-20 3Dlabs, Inc. Ltd 3D graphics rendering with selective read suspend
JP2000181566A (en) 1998-12-14 2000-06-30 Mitsubishi Electric Corp Multiclock parallel processor
US6044030A (en) 1998-12-21 2000-03-28 Philips Electronics North America Corporation FIFO unit with single pointer
US6434695B1 (en) 1998-12-23 2002-08-13 Apple Computer, Inc. Computer operating system using compressed ROM image in RAM
US6757847B1 (en) 1998-12-29 2004-06-29 International Business Machines Corporation Synchronization for system analysis
US6496902B1 (en) 1998-12-31 2002-12-17 Cray Inc. Vector and scalar data cache for a vector multiprocessor
JP3585800B2 (en) 1999-01-13 2004-11-04 株式会社東芝 Information processing equipment
US6539438B1 (en) 1999-01-15 2003-03-25 Quickflex Inc. Reconfigurable computing system and method and apparatus employing same
US6490695B1 (en) 1999-01-22 2002-12-03 Sun Microsystems, Inc. Platform independent memory image analysis architecture for debugging a computer program
US6321298B1 (en) 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
DE10028397A1 (en) 2000-06-13 2001-12-20 Pact Inf Tech Gmbh Registration method in operating a reconfigurable unit, involves evaluating acknowledgement signals of configurable cells with time offset to configuration
US6243808B1 (en) 1999-03-08 2001-06-05 Chameleon Systems, Inc. Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups
US6512804B1 (en) 1999-04-07 2003-01-28 Applied Micro Circuits Corporation Apparatus and method for multiple serial data synchronization using channel-lock FIFO buffers optimized for jitter
GB9909196D0 (en) 1999-04-21 1999-06-16 Texas Instruments Ltd Transfer controller with hub and ports architecture
US6286134B1 (en) 1999-04-23 2001-09-04 Sun Microsystems, Inc. Instruction selection in a multi-platform environment
JP2000311156A (en) 1999-04-27 2000-11-07 Mitsubishi Electric Corp Reconfigurable parallel computer
US6381624B1 (en) 1999-04-29 2002-04-30 Hewlett-Packard Company Faster multiply/accumulator
US6298472B1 (en) 1999-05-07 2001-10-02 Chameleon Systems, Inc. Behavioral silicon construct architecture and mapping
US6748440B1 (en) 1999-05-12 2004-06-08 Microsoft Corporation Flow of streaming data through multiple processing modules
US7007096B1 (en) 1999-05-12 2006-02-28 Microsoft Corporation Efficient splitting and mixing of streaming-data frames for processing through multiple processing modules
US6211697B1 (en) 1999-05-25 2001-04-03 Actel Integrated circuit that includes a field-programmable gate array and a hard gate array having the same underlying structure
DE19926538A1 (en) 1999-06-10 2000-12-14 Pact Inf Tech Gmbh Hardware with decoupled configuration register partitions data flow or control flow graphs into time-separated sub-graphs and forms and implements them sequentially on a component
EP1061439A1 (en) 1999-06-15 2000-12-20 Hewlett-Packard Company Memory and instructions in computer architecture containing processor and coprocessor
US6757892B1 (en) 1999-06-24 2004-06-29 Sarnoff Corporation Method for determining an optimal partitioning of data among several memories
US6347346B1 (en) 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
JP3420121B2 (en) 1999-06-30 2003-06-23 Necエレクトロニクス株式会社 Nonvolatile semiconductor memory device
GB2352548B (en) 1999-07-26 2001-06-06 Sun Microsystems Inc Method and apparatus for executing standard functions in a computer system
US6745317B1 (en) 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
US6370596B1 (en) 1999-08-03 2002-04-09 Chameleon Systems, Inc. Logic flag registers for monitoring processing system events
US6341318B1 (en) 1999-08-10 2002-01-22 Chameleon Systems, Inc. DMA data streaming
US6204687B1 (en) 1999-08-13 2001-03-20 Xilinx, Inc. Method and structure for configuring FPGAS
US6507947B1 (en) 1999-08-20 2003-01-14 Hewlett-Packard Company Programmatic synthesis of processor element arrays
US6438747B1 (en) 1999-08-20 2002-08-20 Hewlett-Packard Company Programmatic iteration scheduling for parallel processors
US6606704B1 (en) 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6349346B1 (en) 1999-09-23 2002-02-19 Chameleon Systems, Inc. Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit
US6288566B1 (en) 1999-09-23 2001-09-11 Chameleon Systems, Inc. Configuration state memory for functional blocks on a reconfigurable chip
US6311200B1 (en) 1999-09-23 2001-10-30 Chameleon Systems, Inc. Reconfigurable program sum of products generator
US6631487B1 (en) 1999-09-27 2003-10-07 Lattice Semiconductor Corp. On-line testing of field programmable gate array resources
DE19946752A1 (en) 1999-09-29 2001-04-12 Infineon Technologies Ag Reconfigurable gate array
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6665758B1 (en) 1999-10-04 2003-12-16 Ncr Corporation Software sanity monitor
US6434642B1 (en) 1999-10-07 2002-08-13 Xilinx, Inc. FIFO memory system and method with improved determination of full and empty conditions and amount of data stored
JP2001167066A (en) 1999-12-08 2001-06-22 Nec Corp Inter-processor communication method and multiprocessor system
US6625654B1 (en) 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6633181B1 (en) 1999-12-30 2003-10-14 Stretch, Inc. Multi-scale programmable array
EP1630685B1 (en) 2000-01-07 2008-04-09 Nippon Telegraph and Telephone Corporation Function reconfigurable semiconductor device and integrated circuit configuring the semiconductor device
JP2001202236A (en) 2000-01-20 2001-07-27 Fuji Xerox Co Ltd Data processing method for programmable logic circuit device and the same device and information processing system and circuit reconstituting method for the same device
WO2001055864A1 (en) 2000-01-28 2001-08-02 Morphics Technology Inc. A method of generating a configuration for a configurable spread spectrum communication device
US6496971B1 (en) 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US6487709B1 (en) 2000-02-09 2002-11-26 Xilinx, Inc. Run-time routing for programmable logic devices
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6519674B1 (en) 2000-02-18 2003-02-11 Chameleon Systems, Inc. Configuration bits layout
JP2001236221A (en) 2000-02-21 2001-08-31 Keisuke Shindo Pipe line parallel processor using multi-thread
US6865663B2 (en) 2000-02-24 2005-03-08 Pts Corporation Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode
JP3674515B2 (en) 2000-02-25 2005-07-20 日本電気株式会社 Array type processor
US6434672B1 (en) 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
US6539477B1 (en) 2000-03-03 2003-03-25 Chameleon Systems, Inc. System and method for control synthesis using a reachable states look-up table
KR100841411B1 (en) 2000-03-14 2008-06-25 소니 가부시끼 가이샤 Transmission apparatus, reception apparatus, transmission method, reception method and recording medium
US6657457B1 (en) 2000-03-15 2003-12-02 Intel Corporation Data transfer on reconfigurable chip
US6871341B1 (en) 2000-03-24 2005-03-22 Intel Corporation Adaptive scheduling of function cells in dynamic reconfigurable logic
US6624819B1 (en) 2000-05-01 2003-09-23 Broadcom Corporation Method and system for providing a flexible and efficient processor for use in a graphics processing system
US6362650B1 (en) 2000-05-18 2002-03-26 Xilinx, Inc. Method and apparatus for incorporating a multiplier into an FPGA
US6373779B1 (en) 2000-05-19 2002-04-16 Xilinx, Inc. Block RAM having multiple configurable write modes for use in a field programmable gate array
US6725334B2 (en) 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US7340596B1 (en) 2000-06-12 2008-03-04 Altera Corporation Embedded processor with watchdog timer for programmable logic
JP2004506261A (en) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト Pipeline CT protocol and CT communication
US6285624B1 (en) 2000-07-08 2001-09-04 Han-Ping Chen Multilevel memory access method
DE10129237A1 (en) 2000-10-09 2002-04-18 Pact Inf Tech Gmbh Integrated cell matrix circuit has at least 2 different types of cells with interconnection terminals positioned to allow mixing of different cell types within matrix circuit
DE10036627A1 (en) 2000-07-24 2002-02-14 Pact Inf Tech Gmbh Integrated cell matrix circuit has at least 2 different types of cells with interconnection terminals positioned to allow mixing of different cell types within matrix circuit
JP2002041489A (en) 2000-07-25 2002-02-08 Mitsubishi Electric Corp Synchronizing signal generation circuit, processor system using the same and synchronizing signal generating method
US6538468B1 (en) 2000-07-31 2003-03-25 Cypress Semiconductor Corporation Method and apparatus for multiple boot-up functionalities for a programmable logic device (PLD)
US6542844B1 (en) 2000-08-02 2003-04-01 International Business Machines Corporation Method and apparatus for tracing hardware states using dynamically reconfigurable test circuits
US6754805B1 (en) 2000-08-07 2004-06-22 Transwitch Corporation Method and apparatus for configurable multi-cell digital signal processing employing global parallel configuration
EP1356401A2 (en) * 2000-08-07 2003-10-29 Altera Corporation Software-to-hardware compiler
EP1182559B1 (en) 2000-08-21 2009-01-21 Texas Instruments Incorporated Improved microprocessor
US7249351B1 (en) 2000-08-30 2007-07-24 Broadcom Corporation System and method for preparing software for execution in a dynamically configurable hardware environment
US6829697B1 (en) 2000-09-06 2004-12-07 International Business Machines Corporation Multiple logical interfaces to a shared coprocessor resource
US6538470B1 (en) 2000-09-18 2003-03-25 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US7346644B1 (en) 2000-09-18 2008-03-18 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US6518787B1 (en) 2000-09-21 2003-02-11 Triscend Corporation Input/output architecture for efficient configuration of programmable input/output cells
US6525678B1 (en) 2000-10-06 2003-02-25 Altera Corporation Configuring a programmable logic device
US20040015899A1 (en) 2000-10-06 2004-01-22 Frank May Method for processing data
US20020045952A1 (en) 2000-10-12 2002-04-18 Blemel Kenneth G. High performance hybrid micro-computer
US6398383B1 (en) 2000-10-30 2002-06-04 Yu-Hwei Huang Flashlight carriable on one's person
JP3636986B2 (en) 2000-12-06 2005-04-06 松下電器産業株式会社 Semiconductor integrated circuit
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
EP1346280A1 (en) 2000-12-20 2003-09-24 Koninklijke Philips Electronics N.V. Data processing device with a configurable functional unit
US6426649B1 (en) 2000-12-29 2002-07-30 Quicklogic Corporation Architecture for field programmable gate array
US6483343B1 (en) 2000-12-29 2002-11-19 Quicklogic Corporation Configurable computational unit embedded in a programmable device
US6392912B1 (en) 2001-01-10 2002-05-21 Chameleon Systems, Inc. Loading data plane on reconfigurable chip
US7020673B2 (en) 2001-01-19 2006-03-28 Sony Corporation Reconfigurable arithmetic device and arithmetic system including that arithmetic device and address generation device and interleave device applicable to arithmetic system
US20020099759A1 (en) 2001-01-24 2002-07-25 Gootherts Paul David Load balancer with starvation avoidance
US6847370B2 (en) 2001-02-20 2005-01-25 3D Labs, Inc., Ltd. Planar byte memory organization with linear access
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6792588B2 (en) 2001-04-02 2004-09-14 Intel Corporation Faster scalable floorplan which enables easier data control flow
US20020143505A1 (en) 2001-04-02 2002-10-03 Doron Drusinsky Implementing a finite state machine using concurrent finite state machines with delayed communications and no shared control signals
US6836849B2 (en) 2001-04-05 2004-12-28 International Business Machines Corporation Method and apparatus for controlling power and performance in a multiprocessing system according to customer level operational requirements
WO2002082267A1 (en) 2001-04-06 2002-10-17 Wind River Systems, Inc. Fpga coprocessing system
US6836842B1 (en) 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
US6999984B2 (en) 2001-05-02 2006-02-14 Intel Corporation Modification to reconfigurable functional unit in a reconfigurable chip to perform linear feedback shift register function
US6976239B1 (en) * 2001-06-12 2005-12-13 Altera Corporation Methods and apparatus for implementing parameterizable processors and peripherals
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
JP3580785B2 (en) 2001-06-29 2004-10-27 株式会社半導体理工学研究センター Look-up table, programmable logic circuit device having look-up table, and method of configuring look-up table
US7043416B1 (en) 2001-07-27 2006-05-09 Lsi Logic Corporation System and method for state restoration in a diagnostic module for a high-speed microprocessor
US7383421B2 (en) 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US7036114B2 (en) 2001-08-17 2006-04-25 Sun Microsystems, Inc. Method and apparatus for cycle-based computation
US6874108B1 (en) 2001-08-27 2005-03-29 Agere Systems Inc. Fault tolerant operation of reconfigurable devices utilizing an adjustable system clock
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US20030056091A1 (en) 2001-09-14 2003-03-20 Greenberg Craig B. Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
US7472230B2 (en) 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
US20030055861A1 (en) 2001-09-18 2003-03-20 Lai Gary N. Multipler unit in reconfigurable chip
US20030052711A1 (en) 2001-09-19 2003-03-20 Taylor Bradley L. Despreader/correlator unit for use in reconfigurable chip
US6854073B2 (en) 2001-09-25 2005-02-08 International Business Machines Corporation Debugger program time monitor
US6625631B2 (en) 2001-09-28 2003-09-23 Intel Corporation Component reduction in montgomery multiplier processing element
US6798239B2 (en) 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US7000161B1 (en) 2001-10-15 2006-02-14 Altera Corporation Reconfigurable programmable logic system with configuration recovery mode
US20030123579A1 (en) 2001-11-16 2003-07-03 Saeid Safavi Viterbi convolutional coding method and apparatus
US6886092B1 (en) 2001-11-19 2005-04-26 Xilinx, Inc. Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion
US6668237B1 (en) 2002-01-17 2003-12-23 Xilinx, Inc. Run-time reconfigurable testing of programmable logic devices
US20030154349A1 (en) 2002-01-24 2003-08-14 Berg Stefan G. Program-directed cache prefetching for media processors
DE10204044A1 (en) 2002-02-01 2003-08-14 Tridonicatco Gmbh & Co Kg Electronic ballast for gas discharge lamp
US6476634B1 (en) 2002-02-01 2002-11-05 Xilinx, Inc. ALU implementation in single PLD logic cell
US6961924B2 (en) 2002-05-21 2005-11-01 International Business Machines Corporation Displaying variable usage while debugging
US20070083730A1 (en) 2003-06-17 2007-04-12 Martin Vorbach Data processing device and method
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US6908227B2 (en) 2002-08-23 2005-06-21 Intel Corporation Apparatus for thermal management of multiple core microprocessors
US6976131B2 (en) 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US6931494B2 (en) 2002-09-09 2005-08-16 Broadcom Corporation System and method for directional prefetching
US6803787B1 (en) 2002-09-25 2004-10-12 Lattice Semiconductor Corp. State machine in a programmable logic device
US6802206B2 (en) 2002-10-11 2004-10-12 American Axle & Manufacturing, Inc. Torsional actuation NVH test method
US6816814B2 (en) * 2002-11-12 2004-11-09 Sonics, Inc. Method and apparatus for decomposing and verifying configurable hardware
US7873811B1 (en) 2003-03-10 2011-01-18 The United States Of America As Represented By The United States Department Of Energy Polymorphous computing fabric
US7139985B2 (en) 2003-06-18 2006-11-21 Ambric, Inc. Development system for an integrated circuit having standardized hardware objects
US7412581B2 (en) 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
US7870182B2 (en) 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7567997B2 (en) 2003-12-29 2009-07-28 Xilinx, Inc. Applications of cascading DSP slices
US7472155B2 (en) 2003-12-29 2008-12-30 Xilinx, Inc. Programmable logic device with cascading DSP slices
US8495122B2 (en) 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
US7840627B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
US7038952B1 (en) 2004-05-04 2006-05-02 Xilinx, Inc. Block RAM with embedded FIFO buffer
US7290238B2 (en) * 2004-05-12 2007-10-30 International Business Machines Corporation Method, system and program product for building an automated datapath system generating tool
US7455450B2 (en) 2005-10-07 2008-11-25 Advanced Micro Devices, Inc. Method and apparatus for temperature sensing in integrated circuits
US7759968B1 (en) 2006-09-27 2010-07-20 Xilinx, Inc. Method of and system for verifying configuration data
US7971051B2 (en) 2007-09-27 2011-06-28 Fujitsu Limited FPGA configuration protection and control using hardware watchdog timer
US20090193384A1 (en) 2008-01-25 2009-07-30 Mihai Sima Shift-enabled reconfigurable device
JP2010277303A (en) 2009-05-28 2010-12-09 Renesas Electronics Corp Semiconductor device and failure detection method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149898A1 (en) * 1998-10-14 2005-07-07 Hakewill James R.H. Method and apparatus for managing the configuration and functionality of a semiconductor design
US7028283B1 (en) * 2003-01-30 2006-04-11 Xilinx, Inc. Method of using a hardware library in a programmable logic device
US8250503B2 (en) * 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US20080222580A1 (en) * 2007-03-09 2008-09-11 Mips Technologies, Inc. System and method for managing the design and configuration of an integrated circuit semiconductor design

Also Published As

Publication number Publication date
US20140331194A1 (en) 2014-11-06
JP2009524134A (en) 2009-06-25
US20090199167A1 (en) 2009-08-06
WO2007082730A1 (en) 2007-07-26
EP1974265A1 (en) 2008-10-01
US8250503B2 (en) 2012-08-21

Similar Documents

Publication Publication Date Title
US8250503B2 (en) Hardware definition method including determining whether to implement a function as hardware or software
CN100543753C (en) Hardware description language (HDL) program implementation
EP3719654A1 (en) Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US7200735B2 (en) High-performance hybrid processor with configurable execution units
Putnam et al. CHiMPS: A C-level compilation flow for hybrid CPU-FPGA architectures
WO2002061630A2 (en) System, method and article of manufacture for distributing ip cores
WO2002061633A2 (en) System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures
WO2002061631A2 (en) System, method and article of manufacture for using a library map to create and maintain ip cores effectively
WO2002061632A2 (en) System, method and article of manufacture for extensions in a programming language capable of programming hardware architectures
Neumann et al. A generic library for adaptive computing environments
Abdelhamid et al. A highly-efficient and tightly-connected many-core overlay architecture
Casseau et al. Design of multi-mode application-specific cores based on high-level synthesis
De Man et al. CATHEDRAL-II—a computer-aided synthesis system for digital signal processing VLSI systems
Nielsen et al. A behavioral synthesis frontend to the haste/tide design flow
Stripf et al. A compilation-and simulation-oriented architecture description language for multicore systems
Chong et al. Custom floating-point unit generation for embedded systems
Mami et al. XSG-based HLS flow for optimized signal processing designs for FPGAs
Sahin A compilation tool for automated mapping of algorithms onto FPGA-based custom computing machines
Chen et al. Twine: a chisel extension for component-level heterogeneous design
Diniz et al. Hardware Compilation Using SSA
Coussy et al. Constrained algorithmic IP design for system-on-chip
Braunes et al. RECAST: An evaluation framework for coarse-grain reconfigurable architectures
Oliveira Filho Description and Specialization of Coarse-grained Reconfigurable Architectures
Assadikhomami A mix-grained architecture for improving HLS-generated controllers on FPGAs
Tan et al. An Energy-Aware Synthesis Methodology for OS-Driven Multi-Process Embedded Software.

Legal Events

Date Code Title Description
AS Assignment

Owner name: PACT XPP TECHNOLOGIES AG, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RICHTER, THOMAS;KRASS, MAREN;REEL/FRAME:032225/0089

Effective date: 20140117

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION