WO2007082730A1 - Hardwaredefinitionsverfahren - Google Patents
Hardwaredefinitionsverfahren Download PDFInfo
- Publication number
- WO2007082730A1 WO2007082730A1 PCT/EP2007/000380 EP2007000380W WO2007082730A1 WO 2007082730 A1 WO2007082730 A1 WO 2007082730A1 EP 2007000380 W EP2007000380 W EP 2007000380W WO 2007082730 A1 WO2007082730 A1 WO 2007082730A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- hardware
- data
- registers
- paes
- pae
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Definitions
- the present invention relates to the preamble and thus deals with a preferably reconfigurable architecture, or a preferably partially reconfigurable architecture, and a method for programming a cell array, wherein the elements of the array can perform a number of different functions, in particular one Variety of features that a general-purpose processor is obtained.
- a reconfigurable architecture is understood in the broadest sense to mean an architecture in which at least one of elements of networks of data processing, storing and / or forwarding elements or elements itself is changeable;
- a dynamically reconfigurable architecture is understood to mean the concept of reconfigurable architecture, as long as nothing else results from the respective context of meaning.
- Dynamic may mean that it can be reconfigured at a rate that allows full and / or partial reconfiguration at run time; the reconfiguration can therefore take place for all cell elements, connecting elements etc. of a field, only for a subgroup of a field and / or for a single element of the field.
- Reconfiguration may, and for the purpose of disclosure, refer to prior patent documents of the Applicant, all of which are incorporated in their entirety
- the cell-to-cell direct data connection may alternatively and / or in addition to connecting multiple cells together by connecting to longer areas extending over extended portions of the field and / or with a reconfiguration entity and / or external entities such as data storage , Data sources and / or data receivers.
- data receivers or sources may be, for example, displays, data interfaces, external (host) processors, co-processors, microcontrollers and / or on-chip sequencer units and the like.
- Reconfiguration information may e.g. B. also be transmitted together with the data, eg. B. also interleaved in data words of a longer data packet, in any case, the data exchange between the cell elements can be done in a-synchronous manner anyway.
- the transfer of configuration data from cell to cell can be done by transferring Licher configuration words for configuring a configurable cell element done and / or by transmission of triggers, in particular in trigger vector form, which is selected with these triggers between a plurality of still to be fed and / or already fed configurations for the trigger vector target receiver cell element ,
- Hierarchical structures which can be constructed with and for processor fields of the present type, be it for configuration data and / or data to be processed, should be noted. It should be mentioned that trigger vectors can also be interposed in a data stream in order to select between a multiplicity of different, in particular previously stored, configurations in the manner of a configuration ID. If possible, consider several configurations on a configurable cell element in a time-mixing manner, as suggested, for example, in PCT / EP 02/02402 (PACT25 / PCTE), all of which are to the present assignee, supra In a preferred manner, it may be possible to also send information to cell elements during the data transmission, which relate to the affiliation of a data packet with a specific 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 Applicant, a plurality of cells is provided with in particular segmented buses therebetween, wherein the cells may be A-LUs, some with extended functionality (EALUs), compare PCT / DE 97/02949 (PACTO2 / PCT) but not mandatory, and wherein on both sides of the ALU with the input and output buses coupled (multi-stage) register units may be provided, cf. B.
- EALUs extended functionality
- PACTO2 / PCT compare PCT / DE 97/02949
- multi-stage register units may be provided, cf. B.
- the communication of the cell elements is thereby preferably subjected to protocols, as described by the Applicant 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) and the other protocols described there, such as CREDIT protocols, etc., eg. B. Protocols with Rej ect option. The fact that the applicant has already indicated in previous applications that any received but no longer needed data packets can be discarded, is also mentioned. Mentioned here only by way of example also fully for other purposes, such as for applications with respect to the reconfigurable architecture, for example in connection with hyperthreading, processor coupling, etc. relevant PCT / EP 2004/003603 (PACT50 / PCTE), which are considered to be fully incorporated for purposes of disclosure is.
- the cell elements may be formed and / or comprise in particular as ALU-PAEs EALU-PAEs, RAM-PAEs, RAM + ALU-PAEs, function-folding PAEs, cf. 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, (PACT62 ff), graph-folding PAEs, sequencer structures connected via command lines, and PAEs in addition to a configurable or adjustable one Unit such as an ALU, a memory such as ring memory and the like, especially those with multiple pointers, etc., also fixed in their function once defined parts, such as FPGA-type logic circuits that are fixed, FPGA-like, only rarely and preferably without recourse to preferred, in particular faster configuration method reconfigurable groups and / or logic components in their functionality such as
- the ASIC-like logic circuits that may be included in the cell elements may refer to fixed functions such as ASIC-type programmed DCT algorithms, FIR or IIR filters, VITERBI algorithms, etc., which are useful for various applications such as in General purpose processors, general purpose co-processors, microcontrollers, sequencers, image processing and / or processing such as for HDTV, cameras, base stations, mobile phones, software-definded radio, smart antennas, CODECs and / or parts thereof , may be of importance.
- FIG. 1 shows a known method of creating and programming a reconfigurable architecture in the sense of the above remarks.
- a library is provided which includes modules for a larger chip, including, but not limited to, an ALU-PAE definition, a RAMPACE definition, and so forth.
- modules for a larger chip including, but not limited to, an ALU-PAE definition, a RAMPACE definition, and so forth.
- a library is provided for a number of programs (software parts) in a language such as NML, this particular language, as mentioned, being known from other publications of the Applicant.
- a program is written using such library software parts, and, apparently, software parts not included in the library may additionally and / or exclusively be used.
- the program is then compiled, with compilation here to include placement and routing as required. To do this, the compiler needs information related to the actual target hardware design; the compiler has such information too.
- the compiler generated configuration (s) will then be run as runtime configuration on the hardware.
- the object of the present invention is to provide new products for commercial use.
- FIG. 1 shows a procedure according to the prior art
- FIG. 2 shows an inventively improved method for creating and / or programming hardware
- Fig. 2 shows, as will be explained below, essentially parts of the design flow, as they are also known in Fig. 1 of the prior art, supplements and extends or changes this but in an inventive manner.
- This program can be written in conventional high-level languages such as C ++, JAVA, MATLAB and so on.
- C ++ C ++
- JAVA JAVA
- MATLAB MATLAB
- a quasi-maximum-free hyperset that is to say a superset of possible hardware objects, which can comprise a plurality of variants of individual objects, wherein these variants are, for example, also preferred Parameter distinguishable manner from each other in one or more properties, as translated per se known translated.
- a quasi-maximum-free hyperset that is to say a superset of possible hardware objects, which can comprise a plurality of variants of individual objects, wherein these variants are, for example, also preferred Parameter distinguishable manner from each other in one or more properties, as translated per se known translated.
- the modules in the library may be intended for parameterized or parameterizable elements of the hyperset and, as well as the translation described above as done by the transform compiler, both completely and / or partially manufac tured by machine as well as optionally on request - hurry coding can happen. It should be mentioned that the use of modules in machine and / or manual translation is not mandatory.
- the parameterization can be carried out interactively by a programmer, in particular by interaction with a placement and route tool, but possibly also fully automatically proposed by the programmer and if necessary only confirmed and / or determined without confirmation.
- heuristic methods if appropriate also interactively and / or under the control and regulation of a placement and routing tool are possible.
- an iterative approach can be done using the placement and route or other tool in the programming and hardware definition environment; It should be noted that such iterations can be carried out manually, semi-automatically and / or alternatively and more preferably fully automatically.
- the heuristic can be used to specify desired sizes which are to be achieved with the iteration, for example by trial and error.
- the methods of "simulated annealing" are explicitly referred to in this context for disclosure purposes.
- quasimaximal free means for the hypermenge that the number of restrictions on generally available objects is as small as possible, that is, a maximum of degrees of freedom remain. Restrictions may be due to certain factors such.
- the quasi-maxi- mum hyperset only has to contain one PAE that can be pam- eterized to a large extent and in many parameters, from which many different PAEs can be derived under parameterization ,
- the final result is thus a program of a plurality of function blocks, which are indicated in FIG. 2 as f (n) for different n.
- program parts may and will be configurations or configuration parts or a single configuration for an XPP field or the like from an at least partially reconfigurable set of elements described or to be described in the hyperset, in particular fully parameterizable under parameterization, such as ALU-PAEs, charting PAEs, function PAEs, MAC-PAEs, RAM-PAEs, ROP-PAEs and / or input-output PAEs.
- Selection of program parts by hand which can be done in particular by inserting suitable text in the program code, such. By inserting control characters; Selection of those program parts which occur particularly frequently in the entire program code and / or have to be executed or are supposed to be executed in a large number of program codes which are to be executed independently on the hardware to be produced, that is to say Execution duration and / or frequency;
- Modules where it can be seen that they are otherwise difficult or with increased clock frequency compared to other elements executable, that is, program parts that prove to be performance critical; the selection of such program parts may be preferred in order to to be able to execute certain program parts on a specific piece of hardware;
- the selected program parts are initially on the already known and in the hyperset existing PAEs, which can also include PAEs in addition to the previously listed PAEs, consisting of a combination of the functionalities of the previously listed PAEs, so for example a paramet- rable or parameterized PAE with a configurable amount of parameterizable bit width and parameterizable range of functions, whereby further graph-folding, parameterizable elements may belong to this PAE, as well as function-folding, parameterizable elements which can be parameterized with regard to the bit width and / or in particular configurable memory areas with pointers and / or command control lines from one or more ALUs, or other data-changing parts in the PAE, to implement sequencers or microprocessors, input-output elements, and the like.
- PAEs in addition to the previously listed PAEs, consisting of a combination of the functionalities of the previously listed PAEs, so for example a paramet- rable or parameterized PAE with a configurable amount of parameter
- the buses are each k-bit wide, with k again representing a parameter, and n different buses are provided, from which the m different inputs are tapped. Also, n, the total number of buses, sets one In the exemplary embodiment of FIG.
- a divider with combinatorial network for example, a multiplier, an ALU stage, a Boolean logic, a barrel shift stage (barrel shifter) are represented within the PAE by way of example
- the above-mentioned units themselves are in turn parameterizable, for example with respect to the operand width, that is to say they may be, for example, 8-bit, 16-bit, 32-bit Bitwise or 64-bit stages or levels also obviously have a different bit width, and moreover the functional scope of, for example, the ALU, the flow point unit, etc. can be defined by parameters; agreed, omitted elements that might also be present in a hyper-PAE, such as sequencer units, function-folding PAEs, cf.
- PCT / EP 03/09957 can be provided; It should also be noted in this context that reference is made in particular to the prior applications of the present applicant, in which a multiplicity of different logic elements as well as FPGA-type structures, SIMD arithmetic units etc. for PAEs are disclosed; this disclosure is fully incorporated.
- the parameterizable range of functions it is possible, for example only in the case of the flux point unit, to be a floating-point unit which is capable of at least one, preferably a plurality of the following combinations in the still parameterizable definition: multiplication, addition, subtraction, division, floating-point combination, look-up tables, optionally with interpolation option for certain Functions such as trigonometric (sine, cosine, tangent), sequential calculations as for Taylor series, where special hardware may be provided for certain approximations / interpolations, and preferably further a parameterization of the floating point unit with respect to the data word width in Mantissa and / or exponent can be provided.
- Functions such as trigonometric (sine, cosine, tangent)
- Taylor series where special hardware may be provided for certain approximations / interpolations, and preferably further a parameterization of the floating point unit with respect to the data word width in Mantissa and / or exponent can be provided.
- a parameterizable library for such a hyper-PAE may refer to a procedure using so-called if-def constructs. These lead certain program sections only to a translation (in hardware circuits that are actually to be provided on a chip), provided that corresponding definitions, for example by specifying the parameters, for example the range of functions, are given. That this is also possible for sizes and elements of the hyper-PAE, such as the configuration registers which are also provided at different depths, if appropriate, the protocols that can be implemented on a PAE (compare RDY / ACK, credit protocols, RDY / ABLE, etc.) as well as the parameterization of an output, different multiplexer stages in a PAE etc.
- hyper-PAEs in the definition of the program parts, which are then used to implement hardware modules, proves surprisingly as not disturbing for the converter to hardware code. This is due to the fact that certain parameterizable properties, such as the bit width of the PAE, are already to be specified when determining the actual program for the transformation compiler, while other properties, such as the actual functional scope, ie the provision of a divider stage , a multiplier stage, an adder stage and / or a subtraction stage in an ALU-PAE need not yet be determined.
- the quasi-maximum-free hyperset is set to a parameterized and / or Partially reduced Hyperteilmenge reduced, in particular less degrees of freedom are given, so must not be modified.
- the bus widths to the cells can already be specified;
- the NML-VERILOG converter or, more generally, the hardware-language description-generating converter are provided with the parameters already defined, for example, during the transformation compilation, which is indicated by corresponding statements in the program parts, for example Form of comment lines and / or by means of separate, • separate from the actual program part data can be done.
- the transformation compiler is thus designed to generate parameterization information of hardware to be based on it. In contrast to conventional compilers, it also generates hardware-descriptive code that describes degrees of freedom.
- the removal can not be done in a configuration of required elements in a PAE by the NML2V converter, that is in the isomorphic hardware simplification means, and / or that the selection of hardware elements to be removed is not made by synthesis can be.
- the configuration register does not necessarily have to contain only a constant value, as is the case for better clarity. B. was shown. Rather, it is particularly when the hardware module waveartige changes or reconfigurations of the operation and / or conditional changes in the operation of a single element, such as depending on above or below data processing levels are required, several possible configurations can be stored in the configuration register.
- the hardware module can also be defined so that freely definable configurations can still be processed on the defined hardware module, whereby these freely definable configurations then access a reduced set of functions in each individual element and / or limited connectivity between the individual elements of the hardware module defined in this way can be provided, for example, only in the case of neighbor-neighbor connections instead of global bus connections extending over many cells, although a multi-dimensional, that is also possibly significantly above two-dimensional connectivity and / or or a toroidal, also multi-dimensional toroidal connectivity can be implemented.
- the preferably automatically generated hardware description code of the NMLV2 converter is now optimized in a particularly preferred variant of the invention.
- the registers, linking units etc. which are not required for the respective functionality, are omitted in a parameterisable PII can be;
- PCT / EP 03/08080 PACT30 / PCTE
- PCT / EP 03/08081 PACT33 / PCTE
- PAE-defintion encapsulated functional parts result. However, this is by no means critical, but on the contrary, with a suitably intelligent design chain, even very beneficial.
- the proposed design chain according to the invention inherently has the intelligent design, which requires the elaborate encapsulation, which is required in the prior art.
- for. B. first removes the internal, ie between the cells considered at their transitions to each other lying registers. The removal of the registers, however, does not happen blindly to all registers, but rather takes place more specifically, preferably without further automated selection of registers which are removable or which must remain in the hardware piece.
- the hardware piece should first contain • constants.
- registers for pre-loading of values PRELOAD register
- Additional registers are initially not needed in a given process implementation.
- bus registers can be readily used, feeding / reading data into RAM-PAEs with sufficient memory depth is possible and / or reading in / out of data in pre-load memory, if any - required, or the provision of input-output registers at the end and at the beginning of the hardware piece, unless the long-known FORWARD BACKWARD Register also for purposes of use by other PAEs should be made available. Constant contents of RAMs are realized in a preferred embodiment by ROMs or mapped to such.
- the balancing would normally be or could be done by providing register levels between different data processing functionalities in or between the PAEs, etc.
- the balancing would normally be or could be done by providing register levels between different data processing functionalities in or between the PAEs, etc.
- the Hyper-PAE even with a given parameterization, will usually still have features that are not needed 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 needed at all. In this case, a divider stage in a PAE would be dispensable. A division now requires a specific delay, ie a runtime via the module. This will be significantly greater than about the duration of an adder stage. The primary data runtime compensation of the parameterized or hyper-PAE will be such that the runtimes of a divider stage are taken into account.
- a divider stage is no longer needed in a hardware module at a certain point, such an unneeded unit can and will preferably also be removed from the PAE, which then alters the delay of the data run by the unit.
- the hardware module should also be adapted for re-timing. In principle, it should be noted that this is not absolutely necessary.
- a certain advantage is already obtained if between the individual stages of a hardware composed of several hyper PAEs. module unused register stages are removed; in the preferred case, however, unnecessary parts are removed from the hyper PAEs, which can happen during the synthesis, such as. For example, the predisposed removal of a divider stage, but other stages such as storage stage elements, multipliers, floating point units, etc., are optionally removable.
- a synthesis is preferably carried out, with which the timing behavior is analyzed automatically, in order to then automatically insert registers at required points and / or to give indications of where a programmer should insert registers in order to ensure a proper timing behavior.
- the non-removal can z. This can be caused, for example, by references in the hardware-defining code of the hyper-PAE, which can lead to comments that are not necessary for actual program purposes and into a compiler code of the transformation compiler; alternatively and / or additionally saind variants are conceivable in which only removed and can be subsequently inserted again.
- an identification of the hyper-PAEs can be made as to whether certain registers are algorithmically required so that they are not automatically removed upon initial removal of the registers; alternatively and / or additionally, in the removal of redundant registers, analyzes may be performed so that registers with a feedback to upstream circuit areas are not removed. In fact, such registers are automatically algorithmically relevant.
- algorithmically needed registers are removable if the algorithm to which they are to be assigned is not executed; this is the case 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 built.
- feedbacks in the standard PAEs provided by the Applicant are implemented by backward registers. As far as they are actually needed in a given program part, it is advantageous not to remove them or not unchecked and / or not completely.
- registers are inserted with the re-timer. It should be mentioned that it is possible in principle, the Use registers anywhere in the hardware module as needed. In particular, it is possible to use registers within a (parameterized) hyper-PAE provided in the hardware module, if only performance-efficient care must be taken. It should be noted, however, that a simpler method of register insertion is obtained when the registers or a part of those registers which were first removed are re-inserted at the interfaces between several hyper PAEs in the hardware module to be designed. The reason for this is that optimal insertion is possible at these locations because the entire output definition of the hyper-PAEs is chosen so that insertion is automatically possible at these locations. Reference is made to the corresponding figure.
- registers are the Hyper-PAEs used in parameterized form of the hardware module description, the input / output protocol registers, eg, the FREG / BREG of Hyper Alternatively, it is possible to provide PAEs without FREG / BREG only with those registers which are used in the direct coupling path of the ALUs and other logic elements for operand linking in the PAE in the connections to the buses as
- Protocol registers are provided. Reference is made in particular to OREG and RREG from PCT / DE 97/02949 (PACT02 / PCT).
- the newly inserted registers which ensure the balancing or the desired performance / area-efficient / latency after removal of the hatched registers, are shown by dashed lines in the figure and are referred to as "inserted register” or, for multi-level registers, as "inserted FIFO".
- the illustrated insertion of registers, FIFOs and the like between the predefined hyper PAEs not only simplifies the structural design, but also facilitates the verification and calculation of the delay times via the circuits provided in the hardware module, since the runtime behavior etc
- the underlying elements can be assumed to be well-known in the register removal step, which facilitates an optionally iterative approach to the re-timing task.
- the insertion of registers between the pre-used and underlying (param- eterized) hyper-PAEs is particularly space-efficient, since, for. For example, using general ALUs in the hyper PAEs would require a large number of registers there, although the addition would also be readily possible there, for example to achieve very high frequencies. In addition, there is hardly a positive effect when cutting within an ALU or a PAE core.
- a hardware module it is readily possible to design a hardware module to run at an operating frequency other than that intended for an XPP field or other reconfigurable unit field.
- frequencies for example to reduce latencies, reduce the area and / or reduce power consumption. That may be worked to reduce the power consumption with other hardware definitions such as different gate thicknesses of transistors compared to a reconfigurable, also to be provided processor field, is disclosed for the sake of completeness.
- other hardware definitions such as different gate thicknesses of transistors compared to a reconfigurable, also to be provided processor field
- the register or FIFO stages to be inserted or newly inserted or to be reloaded not only with regard to z.
- latencies may be used, but also to restore any balance of data flow paths destroyed, if any, by the initial removal of registers.
- timing conditions may not be met; that then by the insertion of additional registers, the timing behavior is restored first, but thereby the balancing between individual data paths may be disturbed.
- the output from the re-timer is an undoubtedly executable hardware code which is frequency-optimized and / or throughput-optimized by the re-timing by recourse to the hyper-PAEs or elements of the quasi-maximum-free hyper-quantity.
- automatic area optimization results.
- the resulting definition of new hardware areas as hard modules can now be integrated into the [XPP] library.
- ways to integrate and / or connect the particular hardware module functionality into an XPP field or, more generally, a field of reconfigurable and / or partially reconfigurable elements For example, one possibility is to provide a complete PAE that does not have an ALU or a single sequencer as the central functionality, but rather the specified hardware functionality of the hardware module.
- FIG 5a shows on the left a combination of an XPP field or FPGA field with a hardware module of the present invention, wherein the coupling of the hardware module to the field via FIFO memory takes place in the input and / or output path, preferably via FIFOs in FIG both ways.
- the present invention is already achieved by the provision of a decoupling of a FIFO memory between the or JE the hardware module, which allows a particularly in terms of processing speed "more independent approach and a different timing and so on.
- the exchanged data packets are provided with 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.
- control commands or the like instead of a pure identification information and / or in order to select, for example, for slightly modifiable hardware modules, such as an addition or subtraction of successive operands is to execute and the like. In this way it can be achieved that an increased flexibility of the programming up to self-modifying code is achieved.
- FIG. 5b shows how, for the coupling of a hardware module in the input and / or output path, a plurality of coupling elements which are now formed not as FIFOs but as RAM memory, in particular even as RAM PAEs, can be provided.
- This allows in particular, both for writing data from the field for the hardware module and 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 in the (here :) return results from the Hardware module to the field on the other hand each dedicated memory areas provide.
- this facilitates handling with different configurations and, on the other hand, makes it possible, for example, to prioritize and preferably work on a first memory area, ie read and write, and only if data processing has been carried out sufficiently often on the first memory area and / or there There is no data available to other memory areas and therefore other tasks are resorted to.
- the hardware module can use the XPP-FeId as a flexible data processing element and / or where hybrids are possible, so data ping-pong-like or pushed in a less regular manner for a total processing back and forth.
- Fig. 6a shows a variant, wherein in turn data on FIFO memory are interchangeable and in particular again present at least either in the input and, preferably or in the output branch FI-FO memory.
- trigger vectors will now be transmitted. With regard to the meaning 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 that is exchanged to trigger certain data processing or processes should be explicitly mentioned again.
- RAMs read Write memories
- the timestamp, which is transmitted, can be used to select those data packets with which processing is to take place next. It should be noted that in this way a particularly favorable control of the data processing is possible.
- the actual procedure for transmitting time stamps with a data word or data packet in data flow processing is already described in WO 02/071249 (PACT18 / PCTE, butcher protocol).
- WO 02/071249 PACTl8 / PCTE
- WO 02/071248 PACT15 / PCTE
- WO 02 / 071196 PACT25 / PCTE
- WO 98/29952 PACT04 / PCT
- WO 98/35299 PACT08 / PCT
- WO 02/071196 PACT25 / PCTE
- XPP or other fields are shown to be contiguous to one field as columns or rows, and, where appropriate, an array of such hardware modules as well or hardware parts would be umbbarbar and / or that individual elements or field groups may be distributed over the field, as shown in Fig. 8 bottom left.
- a hardware element and / or a group of hardware elements according to the present invention could also be set next to an XPP or other field or, assuming corresponding manufacturing processes, could be placed on or below it.
- the usability by integration on a single, co-manufactured chip is disclosed as a possibility in the same way as that to separately manufacture and connect the separate elements.
- the arrangement is preferably connected via internal buses, whereas when arranged next to the field, a connection via I / O ports is preferred.
- connections can alternatively be made via I / O ports and / or via internal buses.
- bus lines or other lines can be pulled over via the hardware elements which are set between field elements.
- hardware elements placed in a field may be connectable by separate lines as required.
- the arrangement in columns is uniquely preferred, wherein depending on the purpose for which a data processing unit with hardware part of the present invention is to be used, an edge-side or intermediate setting of the column is preferred.
- the number of hardware modules will be chosen such that, on the one hand, the pending data processing tasks can be solved quickly and efficiently, and, on the other hand, the form factor when inserted into or onto a field is taken into account.
- the hardware modules of the present invention may additionally have their own I / O connections for communication with external elements such as memories and the like, even when they are tightly coupled to a field.
- the functional scope of the hard module is typically chosen so that the functional scope at the desired location corresponds in each case to the union of the operand links executed or to be executed with different configurations. It should be noted that, where appropriate, in a multi-configuration hard-module definition, fixed configurations can be provided which are fixedly provided in the hard module, cf. PCT / EP 03/08080 (PACT30 / PCTE).
- the functional scopes of the individual hard module areas obtained by parameterization that is to say determination of parameters of the hyper PAEs, are selected so that respective arithmetic units are considered individually have a minimal functionality. This may possibly be done by performing the configurations that are shared so that multiplications are always performed in the same PAE, if in each configuration only one multiplication is required, and, if necessary, with a multiplier in another PAE less space required for data return or data line, to be addressed by a particular configuration data lines, especially here as
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
Die Erfindung betrifft ein Verfahren zur Hardwaredefinition. Hierbei ist vorgesehen, dass eine Bibliothek paramatrierbarer, lauffähiger Elemente bereitgestellt, eine Parameter-Auswahl vorgenommen, die Elemente mit ausgewählten Parametern zusammengestellt und dann die Zusammenstellung vereinfacht wird.
Description
Titel : Hardwaredefinitionsverfahren
Beschreibung
Die vorliegende Erfindung betrifft das Oberbegrifflieh Beanspruchte und befasst sich somit mit einer vorzugsweise rekon- figurierbaren Architektur, bzw. einer vorzugsweise partiell rekonfigurierbaren Architektur, sowie einem Verfahren zur Programmierung eines Zeilelementefeldes, wobei die Elemente des Feldes eine Anzahl unterschiedlicher Funktionen ausführen können, insbesondere eine derartige Vielzahl von Funktionen, dass ein Allzweck-Prozessor erhalten wird.
Unter einer rekonfigurierbaren Architektur wird in der vorliegenden Anmeldung im weitesten Sinne eine Architektur verstanden, bei der zumindest eines von Vernetzungen von Daten verarbeitenden, speichernden und/oder weiterleitenden Elementen bzw. Elemente selbst veränderbar ist; in einer bevorzug- ten Variante wird, ohne dass jedes Mal darauf Bezug genommen wird, eine dynamisch rekonfigurierbare Architektur unter dem Begriff rekonfigurierbare Architektur verstanden, sofern sich aus dem jeweiligen Sinnzusammenhang nichts anderes ergibt. Dynamisch kann dabei bedeuten, dass mit einer Geschwindigkeit rekonfiguriert werden kann, die eine vollständige und/oder partielle Umkonfiguration zur Laufzeit ermöglicht; die Umkon- figuration kann also für alle Zellelemente, Verbindungselemente usw. eines Feldes erfolgen, nur für eine Teilgruppe eines Feldes und/oder für ein einzelnes Element des Feldes. Die Rekonfigurierung kann, und hier sei zu Offenbarungszwecken auf frühere Patentdokumente des Anmelders Bezug genommen, die allesamt vollumfänglich eingegliedert sind, veranlasst werden
- l -
z. B. durch eine gegebenenfalls separat aufgebaute und/oder vorgeladene Zentralinstanz, durch eine benachbarte Zelle und/ oder eine Zelle innerhalb des Elementes selbst, die im Laufe der durch sie erfolgenden Datenverarbeitung feststellt, dass nachfolgend eine andere oder weitere Datenverarbeitung vor bzw. bei Weiterleitung und/oder Ausgabe der Daten an eine andere Zelle oder nach außerhalb des Zeilelementefeldes erforderlich ist. Auch ist eine Rekonfiguration stromaufwärts im Datenpfad liegender Elemente veranlassbar. Die Rekonfigurati- on kann erzwungen werden von außen, d. h. außerhalb des Feldes, und/oder von innen und/oder angefordert werden. Rekonfi- gurationsinformationeri sind übertragbar über separate Rekon- figurationsleitungen, (Daten-) Busse und/oder in direkter Verbindung von Zelle zu Zelle.
Die direkte Datenverbindung von Zelle zu Zelle kann alternativ und/oder zusätzlich zu einer Verbindung von mehreren Zellen miteinander durch Auf- bzw. Anschaltung an längere, sich über ausgedehnte Teile des Feldes erstreckende Bereiche und/oder mit einer Umkonfigurierungsinstanz und/oder externen Einheiten wie Datenspeicher, Datenquellen und/oder Datenempfänger erfolgen. Derartige Datenempfänger- bzw. quellen können beispielsweise Displays, Datenschnittstellen, externe (Host-) Prozessoren, Co-Prozessoren, Microcontroller und/oder chipintegrierte Sequenzereinheiten und dergleichen sein.
Rekonfigurationsinformation kann z. B. auch übertragen werden zusammen mit den Daten, z. B. auch zwischengeschachtelt in Datenwörter eines längeren Datenpaketes, wobei ohnehin der Datenaustausch zwischen den Zellelementen vorzugsweise in a- synchroner Weise erfolgen kann. Die Übertragung von Konfigurationsdaten von Zelle zu Zelle kann durch Übertragen eigent-
licher Konfigurationsworte zur Konfiguration eines konfigurierbaren Zellelementes erfolgen und/oder durch Übertragung von Triggern, insbesondere in Trigger-Vektor-Form, wobei mit diesen Triggern ausgewählt wird zwischen einer Mehrzahl noch einzuspeisender und/oder bereits eingespeister Konfigurationen für das Trigger-Vektor-Zielempfänger-Zellelement.
Es ist bevorzugt, jedoch nicht zwingend erforderlich für Zwecke der vorliegenden Anmeldung, wenn zumindest eine, bevor- zugt mehrere Konfigurationen für eine aktuelle und/oder ■ nachfolgende Verarbeitung in oder bei den Zellelementen abgelegt werden, wobei entweder ein Konfigurationsspeicher in jeder Zelle und/oder für eine Gruppe von Zellen wie per se aus den früheren Patentdokumenten der Anmelderin bekannt, vorgesehen sein kann.
Auf hierarchische Strukturen, die mit und für Prozessorfelder der vorliegenden Art aufbaubar sind, sei es für Konfigurationsdaten und/oder zu verarbeitende Daten, sei hingewiesen. Es sei erwähnt, dass in einen Datenstrom Trigger-Vektoren auch zwischengeschaltet sein können, um zwischen einer Vielzahl von unterschiedlichen, insbesondere vorab abgespeicherten Konfigurationen nach Art einer Konfigurations-ID auszuwählen. Sind, was als möglich betrachtet wird, .mehrere Konfi- gurationen auf einem konfigurierbaren Zellelement in einer zeitmischenden Weise abarbeitbar, wie dies beispielsweise vorgeschlagen wird in der PCT/EP 02/02402 (PACT25/PCTE) , alle zurückgehend auf die vorliegende Anmelderin, so kann es in einer bevorzugten Weise möglich sein, Zellelementen auch bei der Datenübertragung Informationen mitzusenden, welche sich auf die Zugehörigkeit eines Datenpaketes zu einer bestimmten, abzuarbeitenden Aufgabe beziehen. Hinsichtlich dieser, mit
Daten mitübertragenen identifizierenden Angaben wird verwiesen auf PCT/EP 02/02403 (PACT18/PCT) , vergleiche dort insbesondere die Ausführungen zu APID, sowie in PCT/EP 02/10572 (PACT31/PCToe) , vergleiche hier die Ausführungen zur CONFIG- ID. Was die Zellelemente angeht, so ist es per se möglich, dass es sich bei einer momentan betrachteten rekonfigurierba- ren Architektur, für die ein spezifisches Programm kompiliert werden soll, um ein (voll) homogenes Feld handelt, bei dem beispielsweise wie in der bekannten XPP der Anmelderin, eine Vielzahl von Zellen mit insbesondere segmentierten Bussen dazwischen vorgesehen ist, wobei es sich bei den Zellen um A- LUs, zum Teil mit erweitertem Funktionsumfang (EALUs) , vergleiche PCT/DE 97/02949 (PACTO2/PCT), handeln kann, jedoch nicht zwingend muss, und wobei beidseits der ALU mit den Ein- gangs- bzw. Ausgangsbussen gekoppelte (mehrstufige) Registereinheiten vorgesehen sein können, vergleiche z. B. FREG, BREG in PCT/EP 01/11299 (PACT22a/PCT) , sowie entsprechende Ausgestaltungen in anderen Patentdokumenten der Anmelderin. Weiter wird diesbezüglich verwiesen auf Eingangs-Ausgangs-register vor der ALU selbst, die unter anderer Bezeichnung auch in anderen Schriften der Anmelderin zu finden sind.
Die Kommunikation der Zellelemente wird dabei bevorzugt Protokollen unterworfen, wie die Anmelderin sie bereits in Ver- bindung mit der XPP-Architektur beschrieben hat. Erwähnt seien insbesondere das RDY/ACK-Protokoll, das RDY/ABLE-Protokoll aus PCT/DE 03/00489 (PACT16/PCTD) sowie die weiteren dort beschriebenen Protokolle wie CREDIT-Protokolle etc., z. B. Protokolle mit Rej ect -Möglichkeit . Dass die Anmelderin bereits in früheren Anmeldungen darauf hingewiesen hat, dass eventuell empfangene, aber nicht mehr benötigte Datenpakete verworfen werden können, sei gleichfalls erwähnt. Erwähnt sei hier
nur beispielhaft die gleichfalls vollumfanglich auch zu anderen Zwecken, etwa für Anwendungszwecke bezüglich der rekonfi- gurierbaren Architektur etwa in Zusammenhang mit Hyperthrea- ding, Prozessorkopplung usw. relevante PCT/EP 2004/003603 (PACT50/PCTE) , die zu Offenbarungszwecken als vollumfänglich eingegliedert anzusehen ist.
Die Zellelemente können gebildet sein und/oder umfassen insbesondere als ALU-PAEs EALU-PAEs, RAM-PAEs, RAM+ALU-PAEs, funktionsfaltende PAEs, vergleiche 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, (PACT62 ff), graph-faltende PAEs, über Kommandoleitungen verbundene Sequenzerstrukturen sowie PAEs, die zusätzlich zu einer konfigurierbaren oder einstellbaren Einheit wie einer ALU, einem Speicher wie Ringspeicher und dergleichen, insbesondere solche mit mehreren Pointern etc., auch fest in ihrer Funktion einmal definierte Teile, beispielsweise FPGA-artige Logikschaltungen, die festgelegt sind, FPGA-artige, nur selten und bevorzugt ohne Rückgriff auf bevorzugte, insbesondere schnellere Konfigurationsverfahren umkonfigurierbare Gruppen und/oder fest in ihrer Funktionalität liegende Logikschaltungen wie ASICs, die zum Beispiel eingesetzt werden können für bestimmte I/O-Protokolle wie RS232, LAN, VGA, XVGA, DVI, USB, S/PDIF, Firewire, RAMBUS etc., aufweisen können.
Weiter kann mit den ASIC-artigen Logikschaltungen, die zu den Zellelementen gehören können, auf feststehende Funktionen Rückgriff genommen werden, beispielsweise ASIC-artig einprogrammierte DCT-Algorithmen, FIR- oder IIR-Filter, VITERBI- Algorithmen usw. , was für unterschiedliche Anwendungen wie in
Allgemeinzweck-Prozessoren, Allgemeinzweck-Co-Prozessoren, Microcontrollern, Sequenzern, Bildbe- und/oder -Verarbeitung wie für HDTV, Kameras, Base-Stations, Mobiltelefone, Radioempfänger (software-definded radio) , Smart Antennas, CODECs und/oder Teile hierfür, von Bedeutung sein kann.
Um derartige Strukturen und Verfahren des Strukturbetriebs nutzen zu können, muss nun die entsprechende Hardware entworfen werden und es müssen auf dieser Hardware abarbeitbare Da- tenverarbeitungsprozesse definiert werden.
Die Erfahrung hat gezeigt, dass es bereits problemfrei möglich ist, Hardware mit der vorangegebenen Architektur, Protokollen etc. zu entwerfen und Programme hierfür zu schreiben. Was Programme für die Architektur angeht, so wird insbesondere hingewiesen auf die Sprache NML sowie die hierfür vorliegenden Dokumentationen, Manuals und allgemeinen Beschreibungen; dass Programmiersprachen per se bekannt sind und gegebenenfalls anwendbar auch für die spezifische Architektur, sei erwähnt. Nur beispielhaft seien genannt als womöglich relevante Programmierhochsprachen BASIC, LISP, COBOL, PL-M, ADA, ALGOL, FORTRAN, BASH, TCL, aber auch JAVA, C in verschiedenen Dialekten wie C++, PASCAL, OBERON, EIFFEL, PERL, A, B, XML, UML.
Nichtsdestoweniger wäre es wünschenswert, beim Entwurf und/oder hinsichtlich der Verwendbarkeit von eingangs genannten Strukturen und Architekturen zumindest partiell Verbesserungen zu ermöglichen.
Ein Verfahren nach dem Stand der Technik bezüglich des Designflusses ist in Fig. 1 gezeigt. Fig. 1 zeigt dabei ein be-
kanntes Verfahren des Erstellens und Programmierens einer re- konfigurierbaren Architektur im Sinne der obenstehenden Bemerkungen. Rechts in der Figur ist angezeigt, dass eine Bibliothek vorgesehen wird, die Module für einen größeren Chip enthält, die unter anderem eine ALU-PAE-Definition, eine RAM- PAE-Definition usw. betrifft. Diese unterschiedlichen Defin- tionen werden in einem XPP-Generator wie erforderlich und vorgegeben kombiniert und danach wird eine Synthese für die aus dem XPP-Generator erhaltene Ausgabe vorgenommen, um an- hand des Syntheseergebnisses einen Maskensatz für die synthetisierte Hardware zu erzeugen, so dass ein Chip produziert werden kann.
Auf der linken Seite der Grafik ist eine Bibliothek für eine Anzahl von Programmen (Software-Teilen) in einer Sprache wie NML vorgesehen, wobei diese spezielle Sprache, wie erwähnt, aus anderen Veröffentlichungen der Anmelderin bekannt ist. Dann wird ein Programm unter Verwendung derartiger Bibliothekssoftwareteile geschrieben, wobei einleuchtenderweise auch nicht in der Bibliothek enthaltene Softwareteile zusätzlich und/oder ausschließlich verwendet werden können. Das Programm wird dann kompiliert, wobei die Kompilierung hier das Plazieren und Routen wie erforderlich mit einschließen soll. Dazu benötigt der Kompiler Informationen, die sich auf den tatsächlichen Zielhardwareentwurf bezieht; der Kompiler hat solche Informationen auch. Die vom Kompiler erzeugte (n) Konfiguration bzw. die Konfigurationen werden dann als Laufzeitkonfiguration auf der Hardware zum Ablaufen gebracht .
Es ist auch schon vorgeschlagen worden (WO 2004/114166) , beim Hardwareentwurf einen sogenannten Bottom-up-Ansatz vorzusehen, wobei ein integriertes Schaltkreisentwicklungssystem
vorgeschlagen wurde, das eine Beschreibungsbibliothek einer Vielzahl von Hardwareobjekten umfasste, die jeweils strukturiert sind, um auf Nachrichtenpaketen zu operieren, wobei jedes Objekt relativ ähnliche elektrische Belastungscharakte- ristiken aufweisen soll; und wobei das integrierte Schaltkreisentwicklungssystem weiter einen Modellierer umfasst, der auf die Bibliothek Bezug nimmt und strukturiert sein soll, um einen Befehl zu akzeptieren, der eine Instantiierung von einer der Beschreibungen schafft, und ein Kommando zu akzeptie- ren, der zwei oder mehr der geschafften Instantiierungen miteinander verbindet. Die umständliche Programmierung dieses bekannten Verfahrens instantiierter Hardwareobjekte sieht dann vor, dass eine Sammlung von Softwareobjekten akzeptiert werden soll, die selbst Abstraktionen der instantiierten Hardwareobjekte sein sollen, wobei jedes Softwareobjekt eine Liste von Hardwareobjekten, die in dem Softwareobjekt verwendet werden, umfassen soll, sowie eine Liste von Regeln zum Verbinden der aufgelisteten Hardwareobjekte und eine Anweisungsdatei, die in die gelisteten Hardwareobjekte geladen werden soll; wobei dann eine Beschreibung der Sammlung physikalisch instantiierter Hardwareobjekte akzeptiert werden soll; ein Identifizierer jedem der physikalisch instantiierten Hardwareobjekte aus der Liste der Hardwareobjekte allo- ziert werden soll und eine Initialisierungsdatei für die Sammlung physikalisch instantiierter Hardwareobjekte unter
Verwendung der Identifizierer geschaffen werden soll, um symbolische Information in den Anweisungsdateien zu ersetzen. Die letztgenannte Technik nach WO 2004/114166 ist insbesondere deshalb nachteilig, weil weder absolut zuverlässig davon ausgegangen werden kann, dass tatsächlich ein Hardware- Software- Isomorphismus gegeben und nicht ausschließlich behauptet wird, und weil überdies die nach dem System entworfe-
nen Anwendungen oftmals ein Übermaß an nicht erforderlicher Hardware auf einem Siliziumchip vorsehen müssen. Zugleich ist nicht sichergestellt, dass bei dem bekannten Vorgehen nach WO 2004/114166 eine optimale Ausführgeschwindigkeit der aus vor- definierten, unveränderlichen Hardwarebausteinen zusammengebundenen Hardwareobjekte realisiert ist.
Weiterhin bleibt bei dem unter Bezug genommenen Stand der Technik nach WO 2004/114166 die Notwendigkeit bestehen, dass Hardware-Ingenieure die Hardware entwerfen. Es ist nicht möglich, den Bau eines Chips für eine dedizierte Anwendung dem Programmierer der dedizierten Anwendung komplett oder wenigstens weitestgehend zu überlassen.
Die Aufgabe der vorliegenden Erfindung besteht darin, Neues für die gewerbliche Anwendung bereitzustellen.
Die Erfindung wird im Folgenden nur beispielsweise beschrieben unter Bezugnahme auf die Zeichnung. In dieser ist gezeigt durch
Fig. 1 ein Vorgehen nach dem Stand der Technik; Fig. 2 ein erfindungsgemäß verbessertes Verfahren zur Erstellung und/oder Programmierung von Hardware ;
Fig. 2 zeigt, wie nachfolgend noch erläutert werden wird, im wesentlichen Teile des Designflusses, wie sie auch in Fig. 1 aus dem Stand der Technik bekannt sind, ergänzt und erweitert bzw. verändert diesen aber auf erfinderische Weise. Wie nachfolgend ersichtlich sein wird und erläutert werden wird, ist dabei das Folgende von besonderer Bedeutung.
Es wird zunächst ein Hochsprachenprogramm bereitgestellt, bei dem zunächst nicht zwingend auf tatsächliche Hardware-Eigenschaften Bezug genommen werden muss. Dieses Programm kann in den herkömmlichen Hochsprachen wie C++, JAVA, MATLAB usw. geschrieben sein. Es wird also beim Programmieren abstrahiert von jedweder Hardware gearbeitet, man verwendet ergo an dieser Stelle bevorzugt, jedoch nicht zwingend, eine vollständig, zumindest partiell hardwareabstrahierte Sprache. Diese hardwareabstrahierten Programme bzw. dieses hardwareabstrahierte Programm wird dann bevorzugt unter Bezugnahme auf eine quasimaximalfreie Hypermenge, das heißt eine Übermenge an möglichen Hardwareobjekten, die zu einzelnen Objekten eine Mehrzahl Varianten umfassen kann, wobei diese Varianten sich beispielsweise auch, was bevorzugt ist, in einer durch Parameter bestimmbaren Weise voneinander in einer oder in mehreren Eigenschaften unterscheiden können, wie per se bekannt übersetzt. Wenn das hardwareabstrahierte Hochsprachenprogramm unter Bezugnahme auf eine quasimaximalfreie Hypermenge an möglichen Hardwarestrukturen etc. übersetzt wird, wozu ein Transformation-Kompiler verwendet wird, kann dabei auf eine Vielzahl von für diese Hypermenge parametrierten PAEs und dergleichen geeignete, in einer Software-Bibliothek hinterlegte Module Rückgriff genommen werden. Die Module in der Bi- bliothek können für parametrisierte oder noch parametrierbare Elemente der Hypermenge bestimmt sein, und, genauso wie die vorstehend als durch den Transformations-Kompiler erfolgte, beschriebene Übersetzung, sowohl durch maschinelle als auch gegebenenfalls auf Wunsch vollständig und/oder partiell manu- eile Codierung geschehen kann. Dass die Verwendung von Modulen bei maschineller und/oder manueller Übersetzung nicht zwingend erforderlich ist, sei erwähnt.
Die Parametrierung kann interaktiv durch einen Programmierer, insbesondere durch Interaktion mit einem Plazierungs- und Route-Werkzeug erfolgen, von einem solchen aber gegebenen- falls auch vollautomatisch vorgeschlagen und gegebenenfalls nur bestätigt werden und/oder ohne Bestätigung festgelegt werden. Alternativ sind heuristische Methoden, gegebenenfalls auch interaktiv und/oder unter Steuerung und Regelung eines Plazierungs- und Routewerkzeuges möglich. Bei heuristischen Methoden kann ein iteratives Vorgehen mit dem Plazierungsund Route- oder einem anderen Werkzeug (Tool) in der Programmier- und Hardwaredefinition-Umgebung erfolgen; es sei darauf hingewiesen, dass derartige Iterationen manuell, semi- automatisch und/oder alternativ und besonders bevorzugt, vollautomatisch erfolgen können.
Mit der Heuristik können dabei SOLL-Größen vorgegeben werden, die mit der Iteration, etwa durch Ausprobieren, erreicht werden sollen. Auf die Methoden des „simulated annealing" sei in diesem Zusammenhang zu Offenbarungszwecken explizit hingewiesen.
Neben Methoden des simulated annealing sind einleuchtenderweise auch evolutionäre Verfahren wie genetische Algorithmen ohne weiteres anwendbar.
Quasimaximalfrei bedeutet dabei im übrigen für die Hypermen- ge, dass die Zahl von Einschränkungen auf allgemein verfügbare Objekte möglichst gering ist, also maximal viele Frei- heitsgrade verbleiben. Einschränkungen können aber durch bestimmte Faktoren wie z. B. der Baubarkeit von Modulen in der Ziel-Halbleiterumsetzung ungeachtet der Forderung nach mög-
- Ii -
liehst vielen Freiheitsgraden erforderlich sein; deswegen wird nur von „quasi "maximalfrei gesprochen. Im übrigen sei darauf hingewiesen, dass in bestimmten Fällen die quasimaxi- malfreie Hypermenge lediglich eine, dann aber weitgehend und in vielen Parametern pametrierbare PAE enthalten muss, aus der unter Parametrierung viele voneinander unterschiedliche PAEs ableitbar sind.
Das letztendliche Ergebnis ist somit ein Programm aus einer Vielzahl von Funktionsblöcken, die in Fig. 2 als f (n) für verschiedene n angegeben sind.
Ausgehend von diesem Programm, das bereits durch den Rückgriff auf Hypermengenelemente aus dem Hochsprachenprogramm und somit auf erfindungsgemäße, gegenüber dem Stand der Technik neue und als für sich patentgemäß betrachtete Weise erzeugt wurde, kann nun weiter eine Verbesserung erzielt werden. Zunächst ist es möglich (im Bild nach rechts fortschreitend) , bestimmte der Programmteile auszuwählen dafür, auf der später das Programm ausführenden Hardware nicht durch für allgemeine Zwecke vorgesehene, aus der Hypermenge ausgewählte und durch Parametrierung etc. vollständig in ihrem Hardwareaufbau festgelegte Elemente, die programmierbar bzw. konfigurierbar auch für quasi jedwede andere, auf dem rekonfigurier- baren Feld abzuarbeitende Aufgabe zur Verfügung stehen, abgearbeitet zu werden, sondern einzeln und/oder gemeinsam in einer durch Dedizierung spezialisierten und optimierten bzw. optimierbaren Hardwareanordnung implementiert zu werden. In Fig. 2 sind hierzu die Programmteile f(3), f (n) , f(n-2) aus- gewählt . Typisch kann und wird es sich bei solchen Programmteilen um Konfigurationen oder Konfigurationsteile oder eine einzelne Konfiguration für ein XPP-FeId oder dergleichen, das
aus einer zumindest teilrekonfigurierbaren Menge von in der Hypermenge beschriebenen oder mit dieser beschreibbaren, insbesondere unter Parametrierung vollständig beschreibbaren E- lementen wie ALU-PAEs, graph- faltende PAEs, Funktions-PAEs, MAC-PAEs, RAM-PAEs, ROP-PAEs und/oder Eingabe-Ausgabe-PAEs handeln. Die Auswahl der Art zu implementierender Module kann auf unterschiedliche Arten erfolgen; genannt seien nur beispielhaft die folgenden Möglichkeiten, wobei einsichtig sein wird, dass es möglich und bevorzugt ist, in einer praktisch bevorzugten Ausführung der Erfindung nicht ausschließlich auf eine einzige der Möglichkeiten Rückgriff zu nehmen, sondern mehrere oder alle der Möglichkeiten zur simultanen oder sukzessiven Implementierung als Hardwaremodul von Programmteilen vorzusehen:
Auswahl von Programmteilen von Hand, was insbesondere durch das Einfügen geeigneter Textstellen im Programmcode geschehen kann, wie z. B. durch Einfügen von Steuerzeichen; - Auswahl von jenen Programmteilen, die besonders häufig im gesamten Programmcode auftreten und/oder ausgeführt werden müssen bzw. in einer Vielzähl von Programmcodes, die unabhängig voneinander auf der herzustellenden Hardware ausgeführt werden sollen, vermutlich zur Ausführung ge- langen werden, das heißt Auswahl nach Ausführungsdauer und/oder -häufigkeit ;
Module, an denen erkennbar ist, dass sie gegenüber anderen Elementen andernfalls nur schwer oder mit erhöhter Taktfrequenz ausführbar sind, das heißt Programmteile, die sich als performancekritisch erweisen; die Selektion derartiger Programmteile kann bevorzugt sein, um über-
haupt bestimmte Programmteile auf einem bestimmten Stück Hardware ausführen zu können;
Auswahl von Programmteilen, die andernfalls eine besonders große Verlustleistung auf der herzustellenden Hard- wäre erzeugen würden;
Programmteile, die zu einem besonders großen Flächenbedarf des Hardware-Chips führen könnten;
Auswahl von Programmteilen nach heuristischen Verfahren, die insbesondere anhand des Programmeödes eine - auch für sich mögliche - Parametrierung ermöglicht;
Auswahl von Programmteilen durch ProfHing oder vergleichbare Techniken; es kann vorgesehen werden, entweder anhand einer Source-Code-Analyse jene Teile zu identifizieren, für die sich dedizierte Hardwaremodule besonders anbieten, etwa im Hinblick auf die oben genannten Parameter betreffend Ausführbarkeit, Umsetzbarkeit etc. Alternativ und/oder zusätzlich ist es möglich, gegebenenfalls auch ein ProfHing während der Ausführung von Programmen vorzunehmen. Hierbei kann z. B. analysiert werden, welche Programmteile, Unterprogrammteile, Konfigurationen, Konfigurationsteile usw. einer besonders häufigen Ausführung unterliegen, performancekritisch sind, flächenkritisch sind, viele und/oder lange Speicherzugriffe benötigen, in verschiedenen Konfigurationen besonders häufig benutzt werden usw. Der Vorteil eines solchen ProfHing besteht darin, dass damit für typische Anwendungen, die eine Vielzahl von Programmen aufrufen, beispielsweise die Anwendung eines Prozessors als Allgemeinzweckprozessor auf einem Server, einem Laptop oder einer Workstation, Pro- zessoren, Co-Prozessoren und dergleichen definiert werden können, die für einen oder typische Anwender optimiert sind. Zwar ist es möglich, ein derartiges ProfHing auch
auf einem Simulator durchzuführen, der besondere Vorteil der vorliegenden Technik des Top-down-Ansatzes ist es a- ber, dass zunächst ein schon hochperformanter und damit Echtzeitbedinungen vorgebender Chip verwendet werden kann, der einen Benutzer, dessen Profil erfasst werden soll, nicht beeinträchtigt, zur Verfügung gestellt wird. Es kann also unter Verwendung der Zielarchitektur erkannt werden, wie diese ohne Performanceverluste, sondern vielmehr unter Verbesserung der Performance hinsichtlich kri- tischer Parameter, einem Designänderungsprozess bestmöglich unterworfen werden kann. Es wird darauf hingewiesen, dass das Ausgehen von der tatsächlichen Zielarchitektur, abgesehen von den hier beschriebenen, durch Definition von Hardwaremodulen präzise der späteren, gewünschten Ar- chi tektur entsprechenden Schaltkreisen zur Definition veränderter Schaltkreise durch Auswahl bestimmter Programmteile und beschriebener Definition der Hardwareteile als für sich erfinderisch angesehen wird; insbesondere bleibt hierfür und/oder für Teile dieser Aspekte die Ein- reichung von Teilanmeldungen und dergleichen vorbehalten. Auf die Möglichkeit, eine sukzessive Prozessorverbesserung durch Übertragung einer Vielzahl von Profilen an eine Zentraleinheit, z. B. ein Prozessorherstellungshaus, insbesondere durch Übertragung über das Internet, vorzu- nehmen, sei hingewiesen. Dies lässt sich z. B. für Standardprogramme und für andere Prozessoren nutzen.
Es sei in diesem Zusammenhang im übrigen erwähnt, dass unter Zugrundelegung der per ProfHing erhaltenen Daten eine manu- eile Auswahl vorgenommen werden kann und/oder ein automatisierte.
Es sei erwähnt, dass bei der Selektion nicht ausschließlich immer nur auf einen Parameter geachtet werden muss. Vielmehr kann es, etwa unter Rückgriff auf Methoden der unscharfen Logik (Fuzzy-logic) möglich sein, mehrere oder alle der obenge- nannten Einflussparameter, insbesondere mit geeigneter Wich- tung und/oder in alinearer Weise, zu berücksichtigen. Die ausgewählten Programmteile sind zunächst auf den bereits bekannten und in der Hypermenge vorhandenen PAEs, die im übrigen neben den zuvor aufgeführten PAEs auch PAEs umfassen kön- nen, die aus einer Kombination der Funktionalitäten der- vor- gelisteten PAEs bestehen, also beispielsweise eine paramet- rierbare oder parametrierte PAE mit einer parametrierbaren Menge an ALUs parametrierbarer Bitbreite und parametrierbarem Funktionsumfang, wobei zu dieser PAE weiter graph-faltende, parametrierbare Elemente gehören können, genauso wie funkti- onsfaltende, parametrierbare, etwa hinsichtlich der Bitbreite parametrierbare Elemente und/oder insbesondere parametrierbare Speicherbereiche mit Pointern und/oder Kommando-Steuerleitung von einer oder mehrerer ALUs, oder anderer datenver- ändernder Teile in der PAE, um Sequenzer bzw. Mikroprozessoren zu implementieren, Eingangs-Ausgangs-Elemente und dergleichen.
Ein Beispiel für eine noch parametrierbare Hyper-PAE ist in einer der Figuren gezeigt. Dort finden sich verschiedene parametrierbare Einheiten wie z. B. Buseingänge mit m-Ein- gängen, wobei m einen Parameter darstellt, das heisst es können m unterschiedliche Operanden an eine PAE zugeführt werden. Die Busse sind jeweils k-Bit breit, wobei k wiederum ei- nen Parameter darstellt, und es sind n unterschiedliche Busse vorgesehen, von denen die m verschiedenen Eingänge abgegriffen werden. Auch n, die Gesamtanzahl der Busse, stellt einen
Parameter dar. Innerhalb der PAE sind dann beispielhaft verschiedene operandenverknüpfende Einheiten dargestellt, im Ausführungsbeispiel von Fig. 3 beispielsweise ein Dividierer mit kombinatorischem Netzwerk, ein Multiplizierer, eine ALU- Stufe, eine Boolsche Logik, eine Fass-Verschiebe-Stufe (bar- rel shifter) sowie eine Fließkommaeinheit „floating point" . Bs sei darauf hingewiesen, dass die vorgenannten Einheiten ihrerseits wiederum parametrierbar sind, etwa hinsichtlich der Operandenbreite, das heisst es kann sich um z. B. 8-Bit-, 16-Bit-, 32-Bit- oder 64-Bit-Stufen oder um Stufen einleuchtenderweise auch anderer Bitbreite handeln, wobei überdies auch der Funktionsumfang etwa der ALU, der Fließpunkteinheit usw. über Parameter definiert sein kann; es sei darauf hingewiesen, dass aus Gründen der Einfachheit der Zeichnung be- stimmte, weggelassene, gleichfalls in einer Hyper-PAE möglicherweise vorzusehenden Elemente wie Sequenzereinheiten, funktionsfaltende PAEs, vergleiche PCT/EP 03/09957, vorgesehen werden können; dass gleichfalls Speicher parametrierbarer Breite und Tiefe vorgesehen sein können usw., sei erwähnt, es wird in diesem Zusammenhang insbesondere auf die Voranmeldungen der vorliegenden Anmelderin hingewiesen, in der eine Vielzahl unterschiedlicher Logikelemente wie auch FPGA-artige Strukturen, SIMD-Rechenwerke etc. für PAEs offenbart sind; diese Offenbarung wird vollumfänglich miteingegliedert .
Hinsichtlich des parametrierbaren Funktionsumfanges kann es sich, nur beispielsweise bei der Flußpunkteinheit um eine Fließkommaeinheit handeln, die zu wenigstens einer, bevorzugt mehreren der folgenden Verknüpfungen in der noch parametrier- baren Definition fähig ist: Multiplikation, Addition, Subtraktion, Division, Fließkommaverknüpfung, Nachschautabellen, gegebenenfalls mit Interpolationsmöglichkeit für bestimmte
Funktionen wie trigonometrische (Sinus, Cosinus, Tangens) , sequenzielle Berechnungen wie für Taylor-Reihen, wobei Spezi - alhardware vorgesehen sein kann für bestimmte Aproximatio- nen/Interpolationen, und wobei bevorzugt weiter eine Paramet- rierung der Fließkommaeinheit hinsichtlich der Datenwortbrei- te in Mantisse und/oder Exponent vorgesehen sein kann.
Eine parametrierbare Bibliothek für eine solche Hyper-PAE kann beispielsweise auf eine Vorgehensweise Rückgriff nehmen, bei der sogenannte If-Def-Konstrukte verwendet werden. Diese führen bestimmte Programmabschnitte lediglich dann einer Ü- bersetzung (in Hardware-Schaltkreise, die tatsächlich auf einem Chip vorzusehen sind) zu, sofern dafür entsprechende Definitionen, etwa durch Vorgabe der Parameter, beispielsweise des Funktionsumfanges, vorgegeben sind. Dass dies auch für Größen und Elemente der Hyper-PAE, wie die auch in unterschiedlicher Tiefe vorgegebenen Konfigurationsregister, gegebenenfalls die auf einer PAE implementierbaren Protokolle (vergleiche RDY/ACK, Credit-Protokolle, RDY/ABLE etc.) usw. möglich ist, sei erwähnt, genauso wie die Parametrierung eines Ausgangs, unterschiedlicher Multiplexer-Stufen in einer PAE usw.
Um die gewünschten Verbesserungen entweder hinsichtlich eini- ger der vorab gewählten kritischen Kriterien wie Leistungsverbrauch, Flächeneffizienz oder Ausführungsperformance zu erreichen und/oder eine besonders starke Verbesserung in wenigstens einem der Bereiche unter allenfalls partieller Verbesserung anderer Bereiche bzw. vollständiger Vernachlässi- gung derselben, etwa wenn es bei hochperformancekritischen Programmteilen nicht auf Leistung und/oder Fläche ankommt, wird jetzt in einer bevorzugten Ausführung ein bevorzugt au-
tomatischer und/oder teilautomatischer Konverterschritt durchgeführt. Dieser ist in der Figur als NML2V bezeichnet und stellt einen Konverterschritt dar, mit welchem zu den Programmteilen, die selektiert wurden, gegebenenfalls unter Berücksichtigung des Selektionsgrundes, eine Hardwaresprachenbeschreibung bestimmt wird. Angesichts des Umstandes, dass die Programmteile für die Hardwaremodule ausgewählt wurden unter Bezugnahme auf ein oder mehrere Elemente in einer Hypermenge ist es möglich, eine identische Übersetzung zu finden, das heißt es ist sichergestellt, dass bei der Konvertierung in einen hardwarebeschreibenden Code wie VERILOG keine Fehler auftreten, was, sollte dies gewünscht sein, durch intermediär durchführbare Simulationsschritte bestätigbar sein kann. Man erhält somit zunächst einen hardwarebeschrei- benden Code, z. B. einen VERILOG-Code, der die entsprechende Funktionalität der parametrierten PAE in der/den untersuchten Konfigurationen aufweist.
Die Verwendung von Hyper-PAEs bei der Definition der Pro- grammteile, die dann zur Implementierung von Hardwaremodulen eingesetzt werden, erweist sich dabei überraschenderweise als für den Konverter zu Hardware-Code nicht störend. Dies findet sich darin begründet, dass bereits bei der Bestimmung des eigentlichen Programmes für den Transformationskompiler be- stimmte der parametrierbaren Eigenschaften, wie etwa die Bitbreite der PAE, festzulegen sind, während andere Eigenschaften, wie etwa die eigentlichen Funktionsumfänge, also etwa das Vorsehen einer Dividiererstufe, einer Multipliziererstufe, einer Addiererstufe und/oder einer Subtrahierstufe in ei- ner ALU-PAE noch nicht festgelegt werden müssen. Mit anderen Worten wird zugleich mit der Transformationskompilierung die quasimaximalfreie Hypermenge auf eine parametrierte und/oder
teilparametrierte Hyperteilmenge reduziert, wobei insbesondere weniger Freiheitsgrade vorgeben sind, also nicht modifiziert werden muss. Dabei können etwa die Busbreiten zu den Zellen bereits festgelegt sein; es sei erwähnt, dass dem NML- nach VERILOG-Konverter bzw. , allgemeiner, dem hardwarespra- chenbeschreibungserstellenden Konverter die bereits festgelegten Parameter, die etwa bei der Transformationskompilierung festgelegt wurden, zur Verfügung gestellt werden, was durch entsprechende Angaben an den Programmteilen, etwa in Form von Kommentarzeilen und/oder vermittels separater, • vom eigentlichen Programmteil getrennter Daten geschehen kann. Der Transformationskompiler ist somit auf die Erzeugung von Parametrierungsinformation von ihm zugrundezulegender Hardware ausgelegt. Es wird, anders als bei herkömmlichen Kompi- lern, auch hardewarebeschreibender, nämlich Freiheitsgrade beschreibender Code erzeugt .
Die Programmteile, zu denen ein Hardwaremodul optimiert implementiert werden soll, haben jetzt nicht nur hinsichtlich der PAEs festgelegte Parameter, sondern es ist zugleich auch klar, in welcher Konfiguration eine bestimmte PAE in dem Programmteil betrieben werden soll, das zu einem Hardwaremodul umgesetzt werden soll. Diese Konfiguration hat nun die Folge, dass gegebenenfalls unmittelbar ersichtlich ist, dass be- stimmte Teile der PAE nicht benützt werden, was beispielsweise dann der Fall ist, wenn zwar im Transformationskompiler noch eine Floating-point-Einheit für andere Programmteile vorgesehen werden muss, aber im in ein Hardwaremodul zu übersetzenden, momentan betrachteten Programmteil keine Fließkom- maoperationen benötigt werden. Die Konfiguration, die für Zwecke der vorliegenden Betrachtung (unter Hinweis darauf, dass für sequenzerartige bzw. sequenzerartig betriebene PAEs
mehrere, sukzessive abzuarbeitende Konfigurationen in der PAE vorliegen können) festliegt, deutet somit an, dass bestimmte Einheiten nicht benötigt werden und es kann dann auch beispielsweise ein operandenverknüpfungsstufennachgeschalteter Multiplexer, mit dem ausgewählt wird, welche Operandenverknüpfungseinheit ihren Ausgang oder ihre Ausgänge an einen Ausgangsbereich legen soll, als entbehrlich oder teilentbehrlich ermittelt werden. Der typisch hinter den mehreren Operandenverknüpfungseinheiten einer typischen PAE angeordnete Multiplexer ist daher bei einem gegebenen Hardwaremodul ■ in der Regel ohne weiteres zu vereinfachen. Auch in der Entfernung von Multiplexerstufen und/oder vollständiger Multiple- xereinheiten bei der Bestimmung von Hardwaremodulen unter Rückgriff auf Hyper-PAEs bzw. eine quasimaximalfreie Menge an Hyper-PAEs wird eine Erfindung per se gesehen. Es sei erwähnt, dass die Entfernung nicht in einer auszuführenden Konfiguration benötigter Elemente in einer PAE durch den NML2V- Konverter, das heißt im isomorphen Hardwarevereinfachungsmittel, erfolgen kann und/oder, dass die Auswahl zu entfernender Hardwareelemente als nicht benötigt auch im Wege einer Synthese vorgenommen werden kann. Es sei im übrigen darauf hingewiesen, dass im Hardwaremodul bzw. den dafür bestimmten Teilen das Konfigurationsregister nicht zwingend nur einen konstanten Wert enthalten muss, wie es aus Gründen der besse- ren Anschaulichkeit z. B. dargestellt wurde. Vielmehr ist es insbesondere dann, wenn für das Hardwaremodul waveartige Änderungen bzw. Umkonfigurierungen der Betriebsweise und/oder bedingte Änderungen der Betriebsweise eines einzelnen Elementes, etwa in Abhängigkeit von darüber oder darunter liegenden Datenverarbeitungsstufen erforderlich sind, können im Konfigurationsregister mehrere mögliche Konfigurationen abgelegt sein. Auf die Auswahl unter derartigen vorabgelegten Konfigu-
rationen, die durch den Anmelder in anderen Anmeldungen, vergleiche insbesondere, jedoch nicht ausschließlich PCT/DE 98/00334 (PACT08/PCT) offenbart sind, wird, durch Bezugnahme vollumfänglich eingliedernd, hingewiesen. Es sei im übrigen auch darauf hingewiesen, dass nicht nur Triggervektoren etc. übertragbar sind, sondern gegebenenfalls, innerhalb des Hardwaremoduls und/oder von außen in entsprechend beschränktem Funktionsumfang, auch Daten unmittelbar an eine Einheit übertragbar sind, die als Konfigurationsdaten, Arbeitsanweisungen (Befehle usw.) auffassbar sind und/oder die entsprechende Anweisungen, insbesondere zwischen Operanden gesetzt, enthalten können. Es sei im übrigen darauf hingewiesen, dass das Hardwaremodul auch so definiert werden kann, dass auf dem definierten Hardwaremodul immer noch frei definierbare Konfigura- tionen abarbeitbar sind, wobei diesen frei definierbaren Konfigurationen dann in jedem einzelnen Element auf einen reduzierten Funktionssatz zugreifen und/oder wobei zwischen den einzelnen Elementen des so definierten Hardwaremoduls eine beschränkte Konnektivität, etwa nur hinsichtlich Nächste- Nachbar-Verbindungen anstelle von globaler, sich über viele Zellen hinweg erstreckende Busverbindungen vorgesehen werden kann, wobei gleichwohl eine multidimensionale, das heißt auch gegebenenfalls deutlich über zweidimensionale Konnektivität und/oder eine toroidale, auch mehrdimensional toroidale Kon- nektivität implementierbar ist.
Der so vorzugsweise automatisch generierte Hardwarebeschreibungscode des NMLV2-Konverters wird nun in einer besonders bevorzugten Variante der Erfindung noch optimiert. Bei dieser Optimierung soll erreicht werden, dass einerseits die für die jeweilige Funktionalität nicht benötigten Register, Verknüpfungseinheiten usw. in einer parametrierbaren PAE weggelassen
werden können; es wird in diesem Zusammenhang hingewiesen auf die früheren Anmeldungen der vorliegenden Anmelderin, vergleiche PCT/EP 03/08080 (PACT30/PCTE) und PCT/EP 03/08081 (PACT33/PCTE) . Bei diesen wurde vorgeschlagen, dass eine Kon- figuration eines Feldes oder einer einzelnen PAE einmal durch Verwendung von Fuses, das heisst durchtrennbaren Elementen und dergleichen festgelegt wird, um einen problemfreien Bau von Chips mit ASIC-Funktionalität ohne das Erfordernis eines Maskenbaus für jede ASIC-Ausgestaltung zu ermöglichen; bei dieser vorbekannten Variante blieben aber womöglich nicht benötigte Funktionalitätselemente in der ALU oder anderen Einheit einer PAE. Wurde beispielsweise eine PAE mit einer ALU, die einen Subtrahierer, einen Dividierer, einen Addierer und einen Multiplizierer umfasste, fix konfiguriert, um einen Ad- dierer zur Verfügung zu stellen, so war die für die Herstellung des Multiplizierers verwendete Siliziumfläche trotzdem vorzusehen. Die vorliegende Anmeldung und Erfindung zielt unter anderem mit einem Aspekt darauf, dies zu vermeiden, was zu einer Reduzierung der Größe und somit gegebenenfalls auch der Ausführgeschwindigkeiten eines dedizierten Hardwarebereiches beiträgt. Die entsprechenden Veränderungen an der para- metrierbaren und bereits teilparametrierten Hyper-PAE erfol-
I gen in einer Re-Timing-Stufe, bei der zunächst nicht benötigte Register entfernt werden. Die Entfernung der Register hat zunächst eine Entkapselung zuvor durch die Verwendung der
PAE-defintion gekapselter Funktionsteile zur Folge. Dies ist jedoch keinesfalls kritisch, sondern im Gegenteil, bei geeignet intelligenter Entwurfskette, sogar sehr vorteilhaft.
Die erfindungsgemäß hiermit vorgeschlagene Entwurfskette weist inhärent die intelligente Auslegung auf, die die im Stand der Technik erforderliche, aufwendige Einkapselung, et-
wa durch Eingangs-Ausgangs-FIFOs und/oder Register, die nur über geeignete Protokolle, wie RDY/ACK-Protokolle sinnvoll ansteuerbar sind, obsolet macht. Hierzu werden z. B. zunächst die internen, das heißt zwischen den betrachteten Zellen an deren Übergängen zueinander liegenden Register entfernt. Die Entfernung der Register geschieht jedoch nicht blind für alle Register, sondern es findet vielmehr genauer eine bevorzugt ohne weiteres automatisierte Selektion von Registern statt, die entfernbar sind bzw. die in dem Hardwarestück verbleiben müssen. In dem Hardwarestück verbleiben sollen zunächst • Konstanten. Weiter ist es stark bevorzugt, wenn Register für das Vorladen von Werten (PRELOAD-Register) nicht entfernt werden. Weitere Register werden zunächst in einer gegebenen Verfahrensimplementierung nicht benötigt.
Dies verändert einsichtigerweise das Timing-Verhalten der Gesamtanordnung. Es wird jetzt erfindungsgemäß vorgeschlagen, dessenungeachtet die Register gleichwohl zu entfernen, aber einen Syntheseschritt durchzuführen, um einen korrekten Zeit- ablauf der Datenverarbeitung mit dem betrachteten Hardwarestück zu gewährleisten. Bevorzugt wird daher ein Synthese- schritt erfindungsgemäß durchgeführt. Dies gilt auch für Ein- /Ausgänge des zu bauenden Hardwaremoduls.
Es sei darauf hingewiesen, dass durch und für geeignete Protokollierung ohne weiteres buseigene Register verwendet werden können, ein Einspeisen/Auslesen von Daten in RAM-PAEs mit genügender Speichertiefe möglich ist und/oder ein Ein- /Auslesen von Daten in Vorladespeicher, sofern überhaupt er- forderlich, erfolgen kann, oder aber das Vorsehen von Ein- Ausgangs-Registern am Ende und am Anfang des Hardwarestückes, sofern nicht etwa die längst bekannten FORWARD-BACKWARD-
Register auch zu Zwecken der Benutzung durch andere PAEs zur Verfügung gestellt werden sollen. Konstante Inhalte von RAMs werden in einer bevorzugten Ausführungsweise durch ROMs realisiert bzw. auf solche abgebildet.
Das Entfernen der Register wird nun das Timingverhalten ändern; zunächst kann sich, gegebenenfalls auch in signifikanter Weise, das Frequenzverhalten der betrachteten, vorzusehenden Schaltung verschlechtern. Dies kann durch neuerliches Einsetzen von Registern an geeigneten Stellen kompensiert werden, die entweder nach festen Regeln angeordnet werden, etwa durch Einsetzen weniger tiefer Registerstufen an Stellen, wo zuvor tiefere Registerstufen vorgesehen waren, durch Einsetzen von Registerstufen derselben Tiefe wie jene, die zuvor entfernt worden waren, oder aber, besonders bevorzugt, durch Betrachtung der Signallaufzeiten durch die verbleibenden Hardwareschaltkreise, um Stellen zu identifizieren, an denen Register zur Erhöhung der Frequenz erforderlich werden; ein solches Vorgehen ist per se für den Fachmann ohne tiefer- gehende Erläuterung durchführbar.
Weiter ist zu beachten, dass, während der betrachtete Softwareteil zunächst als ausbalanciert angesehen werden kann, die Ausbalancierung im Regelfall vorgenommen wird oder vorge- nommen werden könnte durch das Vorsehen von Registerstufen zwischen verschiedenen datenverarbeitenden Funktionalitätsbereichen in bzw. zwischen den PAEs usw. Durch das anfängliche Entfernen der Register wird nun das mögliche oder bereits gegebene Balancing der Datenverarbeitungspfade, die an bestimm- ten Stellen zusammengeschaltet werden müssen, beeinträchtigt. Es wird nun in einem weiteren Registereinfügeschritt versucht, entweder die bereits wieder vorgesehenen Register so
anzuordnen, dass nicht nur die gegebenenfalls geforderte und erforderliche Frequenzerhöhung erhalten wird, sondern zugleich auch ein Datenlaufzeitausgleich (Balancing) erzielt wird. Es wird also durch das Re-Timing nur aufgrund eines ge- gebenenfalls mit den zu Hardwaremodulen zu machenden Programmteilen, in denen darauf hingewiesen wird, dass bestimmte Datenpfade gegeneinander auszubalancieren sind, ein automatisches Ausbalancieren in dem Re-Timing-Mittel durch Registereinfügen veranlasst .
Beim Re-Timing muss auch etwas anderes beachtet werden: Die Hyper-PAE, auch bei gegebener Parametrierung, wird im Regelfall noch Funktionalitäten aufweisen, die im Hardwaremodul nicht benötigt werden. Beispielsweise wäre denkbar, dass ein Hardwaremodul geschrieben wird für ein Programmteil, in welchem überhaupt keine Divisionen benötigt werden. In diesem Fall wäre eine Dividiererstufe in einer PAE entbehrlich. Eine Division benötigt nun ein bestimmtes Delay, das heißt eine Laufzeit über die Baugruppe. Diese wird signifikant größer sein als etwa die Laufzeit über eine Addiererstufe. Der primär gegebene Datenlaufzeitausgleich der parametrierten bzw. Hyper-PAE wird so sein, dass die Laufzeiten auch einer Dividiererstufe berücksichtigt sind. Wird aber, was erkennbar ist, in einem Hardwaremodul an einer bestimmten Stelle keine Dividiererstufe mehr benötigt, so kann und wird bevorzugt auch eine solche nicht benötigte Einheit aus der PAE entfernt werden, was dann das Delay des Datenlaufs durch die Einheit verändert. Das Hardwaremodul sollte auch hierauf beim Re- Timing angepasst werden. Prinzipiell sei darauf hingewiesen, dass dies aber nicht zwingend erforderlich ist. Ein gewisser Vorteil wird schon erhalten, wenn zwischen den einzelnen Stufen eines aus mehreren Hyper-PAEs zusammengesetzten Hardware-
moduls nicht benötigte Registerstufen entfernt werden; im bevorzugten Fall werden jedoch aus den Hyper-PAEs auch nicht benötigte Teile entfernt, was etwa während der Synthese geschehen kann, wie z. B. die vordiskutierte Entfernung einer Dividiererstufe, wobei aber auch andere Stufen, wie Speicherstufenelemente, Multiplizierer, Floating-Point-Einheiten usw. , gegebenenfalls entfernbar sind. Auch dies kann beim Re- Timing berücksichtigt werden. Hierzu wird bevorzugt eine Synthese durchgeführt, mit der automatisiert das Timingverhalten analysiert wird, um dann entweder an erforderlichen Stellen automatisch Register einzufügen und/oder um Hinweise zu geben, wo ein Programmierer Register einfügen sollte, um ein ordnungsgemäßes Timingverhalten sicherzustellen.
Es sei im übrigen darauf hingewiesen, dass vorstehend Dividiererstufen erwähnt wurden. Im Hinblick darauf und auf die Entfernbarkeit von Registern sei explizit, aber exemplarisch darauf hingewiesen, dass einerseits Protokoll- und datenkom- munikationsrelevante Register in einem Modul oder Array vor- gesehen werden können; derartige werden zunächst ohne weiteres entfernt. Gerade die Division zeigt aber, dass bestimmte Register nicht entfernt werden sollen und/oder können. Die Division ist umsetzbar auf zweierlei Arten, wenn eine in Hardware vorzusehende Divisionsstufe konstruiert werden soll. Die erste Möglichkeit sieht ein kombinatorisches Netzwerk vor, in welchem keine Register benötigt werden. Die zweite Variante sieht eine sequenzielle Division vor, bei der ein Wert iterativ immer wieder berechnet wird, vergleichbar der manuellen Berechnung einer Division. Im letztgenannten Fall müssen Zwischenergebnisse in Register geschrieben werden. Diese dürfen bei einem Re-Timing nicht entfernt werden, da sie algorithmisch benötigt werden. Die Nichtentfernung kann
z. B. durch Hinweise im hardwaredefinierenden Code der Hyper- PAE bedingt werden, der zu für eigentliche Programmzwecke nicht nötigen Kommentaren in einen Kompilercode des Transfor- mationskompilers führen kann; alternativ und/oder zusätzlich saind Varianten denkbar, bei denen erst entfernt und nachfolgend wieder eingefügt werden kann.
In einer besonders bevorzugten Variante kann daher eine Kennzeichnung der Hyper-PAEs dahingehend erfolgen, ob bestimmte Register algorithmisch erforderlich sind, damit sie bei einer anfänglichen Entfernung der Register nicht automatisch entfernt werden; alternativ und/oder zusätzlich können bei der Entfernung überflüssiger Register Analysen dahingehend durchgeführt werden, dass Register mit einer Rückkopplung zu da- tenstromaufwärts liegenden Schaltkreisbereichen nicht entfernt werden. Bei derartigen Registern handelt es sich nämlich automatisch um algorithmisch relevante. Es sei darauf hingewiesen, dass einleuchtenderweise auch algorithmisch benötigte Register dann entfernbar sind, wenn der Algorithmus, dem sie zuzuordnen sind, nicht ausgeführt wird; dies ist etwa für den Fall einer allgemein in einer Hyper-PAE vorgesehenen sequenziellen Division gegeben, wenn die Division per se im zu bauenden Hardwaremodul nicht implementiert ist. Es sei im übrigen darauf hingewiesen, dass Rückkopplungen in den von der Anmelderin vorgesehenen Standard-PAEs durch Rückwärtsregister implementiert sind. Soweit diese tatsächlich in einem gegebenen Programmteil benötigt werden, ist es vorteilhaft, sie nicht oder nicht ungeprüft und/oder nicht vollständig zu entfernen.
Mit dem Re-Timer werden dann gegebenenfalls Register eingefügt. Es sei erwähnt, dass es prinzipiell möglich ist, die
Register an beliebiger Stelle im Hardwaremodul wie erforderlich einzusetzen. Insbesondere ist es möglich, dann, wenn ausschließlich auf Performanceeffizient geachtet werden muss, Register innerhalb einer (parametrierten) Hyper-PAE, die im Hardwaremodul vorgesehen ist, einzusetzen. Es sei aber darauf hingewiesen, dass ein einfacheres Verfahren des Registerein- fügens erhalten wird, wenn an die Schnittstellen zwischen mehreren Hyper-PAEs im zu entwerfenden Hardwaremodul wieder jene Register bzw. ein Teil jener Register eingefügt wird, die zunächst entfernt worden sind. Der Grund hierfür ist darin zu sehen, dass an diesen Stellen eine optimale Einfügung deshalb möglich ist, weil die gesamte Ausgangsdefinition der Hyper-PAEs so gewählt ist, dass an diesen Stellen automatisch eine Einfügung möglich ist. Hingewiesen wird auf die entspre- chende Figur. Dort ist für ein nur beispielhaft pipelineartiges, nur beispielhaft unverzweigtes Hardwarmodul gezeigt, wie zunächst Register entfernt werden. Diese sind als „remove- registers" schraffiert dargestellt. Diese Register sind bei den Hyper-PAEs, die in parametrierter Form der Hardwaremodul - beschreibung herangezogen sind, die Eingangs-/Ausgangs-Protokoll -Register, also beispielsweise die FREG-/BREG der Hyper-PAEs. Alternativ ist es möglich, PAEs ohne FREG-/BREG nur mit jenen Registern vorzusehen, die im unmittelbaren Ankopp- lungsweg der ALUs und anderer Logikelemente zur Operandenver- knüpfung in der PAE in den Verbindungen zu den Bussen als
Protokollregister vorgesehen sind. Verwiesen wird insbesondere auf OREG und RREG aus PCT/DE 97/02949 (PACT02/PCT) . Die neu eingefügten Register, die nach Entfernung der schraffierten Register das Balancing bzw. die gewünschte Performan- ce/Flächeneffizient/Latenz sicherstellen, sind in der Figur gestrichelt gezeichnet und als „inserted register" bzw. für mehrstufige Register als „inserted FIFO" bezeichnet.
Es sei noch einmal darauf hingewiesen, dass die dargestellte Einfügung von Registern, FIFOs und dergleichen zwischen den vordefinierten Hyper-PAEs nicht nur die bauliche Auslegung vereinfacht, sondern auch die Überprüfung und Berechnung der Verzögerungszeiten über die im Hardwaremodul vorgesehenen Schaltkreise erleichtert, da das Laufzeitverhalten etc. der zugrundeliegenden Elemente als gut bekannt beim Registerent- fernungs- bzw. Retiming-Schritt angenommen werden kann, was ein gegebenenfalls iteratives Herangehen an die Re-Timing- Aufgabe erleichtert. Zudem ist das Einfügen von Registern zwischen den vorverwendeten und zugrundeliegenden (paramet- rierten) Hyper-PAEs besonders flächeneffizient, da z. B. bei Verwendung allgemeiner ALUs in den Hyper-PAEs dort eine Viel- zahl von Registern erfordern würde, obgleich die Einfügun g auch dort, etwa zur Erzielung besonders hoher Frequenzen, ohne weiteres möglich wäre. Zudem ergibt sich kaum ein positiver Effekt bei Schnitt innerhalb einer ALU bzw. eines PAE- Kerns .
Es sei im übrigen erwähnt, dass es ohne weiteres möglich ist, ein Hardwaremodul so auszugestalten, dass es mit einer anderen als der für ein XPP-FeId oder anderes rekonfigurierbares Einheitenfeld vorgesehenen Arbeitsfrequenz zu laufen hat. Ei- nerseits ist es möglich, die Frequenzen niedriger zu wählen, etwa um Latenzen zu reduzieren, die Fläche zu reduzieren und/oder den Stromverbrauch zu verringern. Dass gegebenenfalls zur Verringerung des Stromverbrauches mit anderen Hardware-Definitionen wie etwa unterschiedlichen Gate-Dicken von Transistoren im Vergleich zu einem rekonfigurierbaren, gleichfalls vorzusehenden Prozessorfeld gearbeitet werden kann, sei der Vollständigkeit halber mitoffenbart. Alternativ
zu den rein stromsparenden Betrachtungen ist es auch möglich, in bestimmten Fällen die Hardwaremodule für eine bestimmte Frequenz auszulegen, was insbesondere dann vorteilhaft sein kann, wenn ein besonders hoher Datendurchsatz mit dem Hard- waremodul benötigt wird und/oder dort höchst rechenintensive Aufgaben abzuarbeiten sind.
Es sei im übrigen darauf hingewiesen, dass die einzusetzenden bzw. neu einzuschiebenden oder wieder einzuschiebenden Regis- ter- oder FIFO-Stufen nicht nur im Hinblick auf z. B. Laten- zen verwendbar sind, sondern auch um eine gegebenenfalls durch die anfängliche Entfernung von Registern zerstörte Ausbalancierung von Datenflusspfaden wiederherzustellen. Es sei darauf hingewiesen, dass zunächst nach Entfernung der Regis- ter automatisch ein ausbalancierter Datenpfad vorliegt, gegebenenfalls aber Timing-Bedingungen nicht eingehalten werden; dass dann durch das Einfügen zusätzlicher Register zunächst das Timingverhalten wiederhergestellt wird, dadurch aber das Balancing zwischen einzelnen Datenpfaden gestört sein kann. Um nach Wiederherstellung der Timing-Bedingungen und -
Anforderungen auch noch das Balancing herzustellen, kann aber ohne weiteres auf die aus dem Stand der Technik, insbesondere von der Anmelderin stammende Techniken zum Ausbalancieren Rückgriff genommen werden, unter Verwendung insbesondere ge- nau jener Algorithmen, auf die auch im Bau von Kompilern wie für einen NML-Kompiler zur Berechnung von lauffähigen Konfigurationen Rückgriff genommen wird. Verwiesen wird insbesondere auf die Anmeldungen PCT/EP 02/10065 (PACTll/PCTE) , PCT/EP 02/06865 (PACT20/PCTE) , PCT/EP 03/00624 (PACT27/PCTE) , PCT/EP 2004/009640 (PACT48/PCTE) . Dort sind geeignete Verfahren zum Ausbalancieren beschrieben.
Die Ausgabe aus dem Re-Timer ist danach ein durch Rückgriff auf die Hyper-PAEs bzw. Elemente der quasimaximalfreien Hy- permenge zweifelsfrei lauffähiger Hardware-Code, der durch das Re-Timing frequenz- und/oder durchsatzoptimiert ist. Zu- dem ergibt sich eine automatische Flächenoptimierung. Die so erhaltene Definition neuer Hardwarebereiche als Hart-Module kann nun in die [XPP] -Library eingebunden werden. Es gibt eine Vielzahl von Möglichkeiten, die so bestimmten Hardwaremodulfunktionalitäten in ein XPP-FeId oder, allgemeiner, ein Feld rekonfigurierbarer und/oder teilweise rekonfigurierbarer Elemente zu integrieren und/oder an ein solches anzubinden. Eine Möglichkeit besteht beispielsweise, eine vollständige PAE vorzusehen, die als Zentralfunktionalität keine ALU oder keinen einzelnen Sequenzer aufweist, sondern die spezifizier- te Hardwarefunktionalität des Hardwaremoduls. Besonders bevorzugt ist dabei, wenn bei einer solchen PAE, wie in PCT/EP 01/08534 (PACT14/PCT) vorgeschlagener Weise eine nach außen gleiche Geometrie und insbesondere Anschluß-Geometrie vorgesehen wird, wie bei anderen PAEs des Feldes. Dies hat den großen Vorteil, dass die Homogenität des Feldes weitestgehend unbeeinträchtigt bleibt. Alternativ und/oder zusätzlich ist es möglich, ein Anbinden ohne eine entsprechende Beachtung von Formfaktoren, vergleiche DE 102 36 269.6 und DE 102 38 172.0-53 (PACT36 und 361) und dergleichen zu erzielen, indem die spezifischen Hardwaremodule neben das eigentliche Feld gesetzt werden. Dabei ist es möglich, eine integrale Fertigung vorzusehen, und/oder die Teile separat zu fertigen und dann durch Busse, über RAMs und dergleichen mit dem rekonfi- gurierbaren Feld kommunizieren zu lassen, vergleiche SOC- Technologie usw.
Andere Möglichkeiten der Anbindung werden beschrieben in den Figuren.
Fig. 5a zeigt links eine Kombination eines XPP-Feldes oder FPGA-Feldes mit einem Hardwaremodul der vorliegenden Erfindung, wobei die Ankopplung des Hardwaremoduls an das Feld ü- ber FIFO-Speicher im Ein- und/oder Ausgabeweg vonstatten geht, bevorzugt über FIFOs in beiden Wegen. Prinzipiell wird durch das Vorsehen eines FIFO-Speichers zwischen dem oder je- dem Hardwaremodul der vorliegenden Erfindung bereits eine Entkopplung erreicht, die ein insbesondere hinsichtlich der Verarbeitungsgeschwindigkeit "unabhängigeres Vorgehen und eine abweichende Taktung usw. erlaubt.
Besonders vorteilhaft ist es jedoch, wenn den ausgetauschten Datenpaketen eine Identifikationsinformation in Form eines Paketheaders oder zusätzlicher Identifikationsbits an jedem einzelnen Wort oder dergleichen mitgegeben werden. Auf diese Weise ist es etwa möglich, mit entweder dem Hardwaremodul und/oder dem XPP- bzw. FPGA- oder anderem Feld unterschiedliche Aufgaben in einer Multithread- , Hyperthread- , Multitask-, Timeslot- oder anderen Weise durchzuführen und dann, trotz der über die FIFOs bewirkten, vergleichsweise losen Kopplung doch Sorge dafür zu tragen, dass ein ausgetauschtes Datenpa- ket oder Datenwort die richtige Verarbeitung am Empfänger, das heißt im Hardwaremodul bzw. dem XPP-FeId oder dergleichen, erfährt.
Es sei erwähnt, dass es bereits hilfreich ist, wenn eine I- dentifikationsinformation im Hardwaremodul unverändert bleibt und/oder nur so verändert wird, dass das zugehörige Datenpaket nach Rücksendung des Verarbeitungsergebnisses an den Emp-
fänger, also beispielsweise das XPP-FeId, auf die vorgesehene Weise verarbeitet wird, beispielsweise indem es mit der richtigen Konfiguration weiterverarbeitet wird.
Alternativ und/der zusätzlich ist es aber möglich, an Stelle einer reinen Identifikationsinformation und/oder zusätzlich zu dieser auch Steuerungsbefehle oder dergleichen mit zu ü- bertragen, um beispielsweise bei geringfügig veränderbaren Hardwaremodulen auszuwählen, ob etwa eine Addition oder Sub- traktion von aufeinanderfolgenden Operanden auszuführen ist und dergleichen. Auf diese Weise kann erreicht werden, dass eine erhöhte Flexibilität der Programmierung bis hin zu selbstmodifizierendem Code erreicht wird.
In Fig. 5b ist gezeigt, wie zur Ankopplung eines Hardwaremoduls im Ein- und/oder Ausgabeweg mehrere, jetzt nicht als FI- FOs, sondern als RAM-Speicher, insbesondere sogar als RAM- PAEs ausgebildete Kopplungselemente vorgesehen werden können. Dies erlaubt es insbesondere, sowohl zum Schreiben von Daten aus dem Feld für das Hardwaremodul als auch beim Schreiben vom Hardwaremodul für das Feld, das heißt beim Übertrag von Daten vom Feld an das Hardwaremodul einerseits und bei der (hier:) Rückgabe von Ergebnissen aus dem Hardwaremodul an das Feld andererseits jeweils dedizierte Speicherbereiche vorzu- sehen. Dies erleichtert einerseits die Handhabung mit unterschiedlichen Konfigurationen und ermöglicht andererseits beispielsweise Priorisierungen, indem überwiegend und bevorzugt auf einem ersten Speicherbereich gearbeitet, das heißt gelesen und geschrieben wird, und nur dann, wenn hinreichend oft auf dem ersten Speicherbereich eine Datenbearbeitung erfolgt ist und/oder dort keine Daten vorliegen, auf andere Speicherbereiche und damit andere Aufgaben Rückgriff genommen wird.
Es sei im übrigen erwähnt, dass dort, wo vorliegend von der Dateneingabe aus dem XPP-FeId und der Ergebnisübergabe an dasselbe die Rede ist? auch ein umgekehrter Verlauf möglich ist, indem das Hardwaremodul das XPP-FeId als flexibleres Datenverarbeitungselement nutzen kann und/oder wo Mischformen möglich sind, also Daten ping-pong-artig oder auf weniger reguläre Weise für eine Gesamtbearbeitung hin und her geschoben werden .
Fig. 6a zeigt eine Variante, wobei wiederum Daten über FIFO- Speicher austauschbar sind und insbesondere wieder zumindest entweder im Ein- und, bevorzugt oder auch im Ausgabezweig FI- FO-Speicher vorliegen. Zusätzlich dazu werden nun Trigger- Vektoren übertragen. Hinsichtlich der Bedeutung und Anwendung von Trigger-Vektoren wird verwiesen auf die WO 98/35299 (PACT08/PCT) . Die Kombination von Identifikationsinformationen mit Programmierinformationen und/oder Trigger- Informationen bzw. Statusinformationen, die ausgetauscht wer- den, um bestimmte Datenverarbeitungen oder Prozesse auszulösen, sei noch einmal explizit erwähnt.
In Fig. 6b ist gezeigt, dass beim Datenaustausch eine „time- stamp", das heißt eine Information über den Zeitrang bzw. die Zeitgültigkeit des Datenpaketes mitübertragen wird; im vorliegenden Fall, der in Fig. 6b dargestellt ist, erfolgt diese Übertragung in Lese-Schreib-Speicher (RAMs) . Die Zeitmarke, die mitübertragen wird, kann dazu dienen, jene Datenpakete auszuwählen, mit welchen als nächstes eine Verarbeitung er- folgen soll.
Es sei darauf hingewiesen, dass auf diese Art und Weise eine besonders günstige Steuerung der Datenverarbeitung möglich ist. Die eigentliche Vorgehensweise, bei der Datenflussverar- beitung Zeitmarken mit einem Datenwort oder Datenpaket mitzu- senden, ist dabei bereits beschrieben in der WO 02/071249 (PACT18/PCTE, Metzgerprotokoll; butcher-protocol) . Es sei, ungeachtet der Tatsache, dass durch Bezugnahme das Dokument WO 02/071249 vollumfänglich zu Offenbarungszwecken miteingegliedert ist, gleichwohl explizit darauf hingewiesen, dass das Zuordnen einer Zeitmarke zu Datenpaketen es ermöglicht, sowohl eine Datenreihenfolge zu beliebigen späteren Zeiten zu rekonstruieren und/oder wieder herzustellen, als auch darü- berhinaus Operanden wie erforderlich miteinander zu verknüpfen, was insbesondere dann vorteilhaft ist, wenn Operanden zuliefernde Zweige hinsichtlich der Latenzzeiten balanciert sind.
Es sei erwähnt, dass so, wie für Fig. 6b Bezug genommen wurde auf die WO 02/071249 (PACTl8/PCTE) , mit den anderen Figuren Bezug genommen wird auf die WO 02/071248 (PACT15/PCTE) und die WO 02/071196 (PACT25/ PCTE) für Fig. 5a sowie WO 02/071196 (PACT25/PCTE) und WO 98/29952 (PACT04/PCT) für Fig. 5b sowie WO 98/35299 (PACT08/PCT) und WO 02/071196 (PACT25/PCTE) für Fig. 6a, und dass sämtliche der genannten Schriften jeweils vollumfänglich zu Offenbarungszwecken einzeln und in Kombination mit eingegliedert sind.
Es sei erwähnt, dass im übrigen die hier erwähnten und offenbarten Kopplungsverfahren auch kombinierbar sind, beispiels- weise durch Vorschaltung eines FIFOs an eine RAM-PAE unter paralleler Mitübertragung von Zeitmarken und dergleichen.
Es sei erwähnt, dass, was die physikalische Anbindbarkeit der Hardwaremodule angeht, diese entweder durch Einbindung in das interne Bussystem der XPP oder eines anderen Prozessorfeldes ankoppelbar sind und/oder über externe, gegebenenfalls gebün- delte Eingabe- /Ausgabeleitungen. Auf die Möglichkeit, eine Vielzahl einzelner Eingabe-/Ausgabeleitungen zu Bussen zusammenzufassen, um etwa bei feinstgranularen Feldern eine An- kopplung der Hardwaremodule zu erhalten, sei hingewiesen. Hingewiesen wird in diesem Zusammenhang auf die WO 02/29600 (PACT22aII/PCTE) sowie die damit prioritätsmäßig verbundenen Paralielschutzrechte, die allesamt zu Offenbarungszwecken vollumfänglich eingegliedert ""sind.
In Fig. 8 ist hinsichtlich der räumlichen Anordnung von Hard- waremodulen oder Hardwareteilen der vorliegenden Erfindung in XPP- oder anderen Feldern dargestellt, dass diese entweder als Spalten oder Zeilen randseitig an einem Feld vorgesehen sein können, wobei einleuchtenderweise gegebenenfalls auch ein Feld von solchen Hardwaremodulen oder Hardwareteilen um- gebbar wäre und/oder dass einzelne Elemente oder Feldgruppen über das Feld verteilt sein können, wie in Fig. 8 links unten dargestellt. Alternativ sei erwähnt, dass ein Hardwareelement und/oder eine Gruppe von Hardwareelementen gemäß der vorliegenden Erfindung auch neben ein XPP- oder anderes Feld setz- bar wäre beziehungsweise, entsprechende Fertigungsprozesse unterstellt, auf diesen oder unter diesem plazierbar wäre. Die Verwendbarkeit durch Integration auf einen einzigen, gemeinsam gefertigten Chip, sei als Möglichkeit in gleicher Weise offenbart wie jene, die separaten Elemente getrennt zu fertigen und zu verbinden. Es versteht sich, dass bei den Varianten, in denen die Hardwaremodule der vorliegenden Erfindung engst mit dem Feld verknüpft sind, weil sie eine zwi-
schengesetzte Spalte bilden, eine randseitige Spalte, Umrandung und/oder in einem Feld vorgesehene Elemente darstellen, die Anordnung bevorzugt über interne Busse verbunden ist, wohingegen bei Anordnung neben dem Feld eine Verbindung über I/O-Anschlüsse bevorzugt ist. Bei randseitiger Anordnung können alternativ Anbindungen über I/O-Ports und/oder über interne Busse erfolgen. Es sei auch erwähnt, dass gegebenenfalls über die Hardwareelemente, die zwischen Feldelemente gesetzt sind, Busleitungen oder andere Leitungen hinweggezo- gen werden können. Auch können Hardwareelemente, die in ein Feld gesetzt werden, durch separate Leitungen wie erforderlich verbindbar sein. Eindeutig bevorzugt ist im übrigen die Anordnung in Spalten, wobei abhängig davon, für welche Zwecke eine Datenverarbeitungseinheit mit Hardwareteil der vorlie- genden Erfindung verwendet werden soll, eine randseitige oder Zwischensetzung der Spalte bevorzugt ist.
In einer bevorzugten Variante wird die Anzahl der Hardwaremodule so gewählt werden, dass einerseits die anstehenden Da- tenverarbeitungsaufgaben schnell und effizient lösbar sind, und andererseits der Formfaktor bei Einsetzen in oder an ein Feld beachtet wird.
Es sei in diesem Zusammenhang im übrigen erwähnt, dass gege- benenfalls die Hardwaremodule der vorliegenden Erfindung auch bei enger Ankopplung an ein Feld zusätzlich eigene I/O- Anschlüsse zur Kommunikation mit externen Elementen wie Speichern und dergleichen aufweisen können.
Nach Fig. 9 ist es im übrigen möglich, eine Verbindung zwischen den Hardwaremodulen der vorliegenden Erfindung untereinander und/oder bestimmten Feldelementteilen zu ermögli-
chen, die entweder dauerhaft fest ist, bevorzugt aber alternativ nur temporär aufgebaut ist. Dies geht insbesondere dann ohne weiteres, wenn ein hierarchisch geordnetes Bussystem globale Busleitungen -zulässt, die auf- und/oder abbaubar sind. Hinsichtlich des Busleitungsauf- bzw. -abbaus sei unter Eingliederung der gesamten Offenbarung der Schrift WO 98/35294 (PACT07/PCT) auf diese hingewiesen.
Es sei darauf hingewiesen, dass vor dem Bau einer Maske zur Herstellung eines dedizierten Chips gegebenenfalls auf eine Emulation Rückgriff genommen werden kann, wobei die Hardwareteile mit FPGA emuliert werden. Es wird darauf hingewiesen, dass der Anmelder bereits vorgeschlagen hat, XPP-Felder zu bauen, bei denen PAEs vorgesehen sind, die kleine FPGA-Felder darstellen können. Durch geeignete Be-/Verschaltung mehrerer solcher FPGA-PAEs können dann gegebenenfalls die Hardware- Strukturen emuliert werden. Es ist dann möglich, durch einen geeignet ausgelegten XPP-Test-Chip mit FPGA-PAEs eine Verifikation bzw. Emulation eines personalisierten bzw. kundenspe- zifizierten Designs zu emulieren.
Während vorstehend angegeben wurde, dass Hardwaremodule aufgebaut werden können durch nur beispielhaft linear hintereinander angeordnete Hyper-PAEs, die auf geeignete Weise para- metriert und festgelegt werden, ist dies nicht zwingend erforderlich. Es kann vorteilhaft sein, nicht jeder Operandenverknüpfung im Programmteil eine eigene PAE zuzuordnen und ein lineares Abarbeiten vorzusehen. Vielmehr wäre, insbesondere bei besonders komplexen Programmteilen, es auch möglich, die Programmteile wiederum in eine Mehrzahl unterschiedlicher, auf dem Hartmodul abzuarbeitender Konfigurationen zu zerlegen. In einem solchen Fall könnte beispielsweise festge-
stellt werden, dass ein bestimmter Schnitt zur Zerlegung des Programmteiles in zwei Konfigurationen vorteilhaft wäre. Die Art und Weise wie derartige Schnitte gelegt werden können, ist per se bekannt. Verwiesen wird insbesondere auf PCT/EP 02/10065 (PACT11/PCTE) . Wenn ein solches Vorgehen gewünscht ist, wird typisch der Funktionsumfang des Hartmoduls so gewählt, dass der Funktionsumfang an der gewünschten Stelle jeweils der Vereinigungsmenge der mit unterschiedlichen Konfigurationen ausgeführten bzw. auszuführenden Operandenverknüp- fungen etc. entspricht. Es sei darauf hingewiesen, dass gegebenenfalls bei einer Mehrkonfigurations-Hartmodul -Definition Festkonfigurationen vorgesehen werden können, die fest im Hartmodul vorgesehen sind, vergleiche PCT/EP 03/08080 (PACT30/PCTE) .
Weiter sei darauf hingewiesen, dass bevorzugt, wenn mehrere Konfigurationen auf dem Hartmodul sukzessive abgearbeitet werden sollen, die Funktionsumfänge der einzelnen Hartmodulbereiche, die durch Parametrierung, das heißt Festlegung von Parametern der Hyper-PAEs erhalten werden, so gewählt werden, dass jeweilige Recheneinheiten einzeln betrachtet einen noch minimalen Funktionsumfang besitzen. Dies kann womöglich dadurch geschehen, dass die Konfigurationen, die geteilt werden, so ausgeführt werden, dass immer in derselben PAE MuI- tiplikationen durchgeführt werden, wenn in jeder Konfiguration nur eine Multiplikation erforderlich ist, und statt einer Multipliziererstufe in einer anderen PAE die gegebenenfalls mit geringerem Flächenaufwand zur Datenrückführung oder Datenleitung erforderlichen, von einer bestimmten Konfiguration anzusprechenden Datenleitungen, insbesondere auch hier als
Next-Neighbour-Verbindungen auszuführende Leitungen implementiert werden.
Claims
1. Verfahren zur Hardwaredefinition, dadurch gekennzeichnet, dass eine Bibliothek paramatrierbarer, lauffähiger Elemente bereitgestellt , eine Parameter-Auswahl vorgenommen, die Elemente mit ausgewählten Parametern zusammengestellt und dann die Zusammenstellung vereinfacht wird.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07702834A EP1974265A1 (de) | 2006-01-18 | 2007-01-17 | Hardwaredefinitionsverfahren |
JP2008550680A JP2009524134A (ja) | 2006-01-18 | 2007-01-17 | ハードウェア定義方法 |
US12/087,916 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 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 (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06400003 | 2006-01-18 | ||
EP06400003.7 | 2006-01-18 | ||
EP06001043 | 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 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/087,916 A-371-Of-International 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 Continuation US20120278772A1 (en) | 2006-01-18 | 2012-06-08 | Hardware definition method including determining whether to implement a function as hardware or software |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007082730A1 true WO2007082730A1 (de) | 2007-07-26 |
Family
ID=38093028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2007/000380 WO2007082730A1 (de) | 2006-01-18 | 2007-01-17 | Hardwaredefinitionsverfahren |
Country Status (4)
Country | Link |
---|---|
US (3) | US8250503B2 (de) |
EP (1) | EP1974265A1 (de) |
JP (1) | JP2009524134A (de) |
WO (1) | WO2007082730A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008001433A1 (de) | 2008-04-28 | 2009-10-29 | Evonik Degussa Gmbh | Hydrophobiertes Silicium-Eisen-Mischoxid |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007082730A1 (de) * | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Hardwaredefinitionsverfahren |
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 (de) | 2013-02-11 | 2018-11-14 | dSPACE digital signal processing and control engineering GmbH | Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit |
EP2954440B1 (de) | 2013-02-11 | 2022-01-12 | dSPACE digital signal processing and control engineering GmbH | Verändern eines signalwerts eines fpga zur laufzeit |
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 |
US9218443B1 (en) * | 2014-11-12 | 2015-12-22 | Xilinx, Inc. | Heterogeneous multiprocessor program compilation targeting programmable integrated circuits |
KR102441717B1 (ko) * | 2014-11-12 | 2022-09-07 | 자일링크스 인코포레이티드 | 이종 멀티프로세서 프로그램 컴파일레이션 타겟팅 프로그램가능 집적 회로 |
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 |
US11755884B2 (en) | 2019-08-20 | 2023-09-12 | Micron Technology, Inc. | Distributed machine learning with privacy protection |
US11636334B2 (en) | 2019-08-20 | 2023-04-25 | Micron Technology, Inc. | Machine learning with feature obfuscation |
US11392796B2 (en) * | 2019-08-20 | 2022-07-19 | Micron Technology, Inc. | Feature dictionary for bandwidth enhancement |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020124238A1 (en) * | 2000-08-07 | 2002-09-05 | Paul Metzgen | Software-to-hardware compiler |
WO2004114166A2 (en) | 2003-06-18 | 2004-12-29 | Ambric, Inc. | Integrated circuit development system |
Family Cites Families (596)
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 |
DE2713648A1 (de) * | 1976-03-26 | 1977-10-06 | Tokyo Shibaura Electric Co | Stromzufuhr-steuervorrichtung fuer speichervorrichtungen |
US4233667A (en) | 1978-10-23 | 1980-11-11 | International Business Machines Corporation | Demand powered programmable logic array |
US4414547A (en) | 1981-08-05 | 1983-11-08 | General Instrument Corporation | Storage logic array having two conductor data column |
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 (ja) | 1982-08-25 | 1984-02-29 | Nec Corp | プロセツサユニツト |
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 (ja) | 1984-03-21 | 1985-10-08 | Oki Electric Ind Co Ltd | ダイナミツク論理回路 |
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 |
DE3681463D1 (de) | 1985-01-29 | 1991-10-24 | Secr Defence Brit | Verarbeitungszelle fuer fehlertolerante matrixanordnungen. |
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 |
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 |
US5015884A (en) | 1985-03-29 | 1991-05-14 | Advanced Micro Devices, Inc. | Multiple array high performance programmable logic device family |
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 (de) | 1985-11-04 | 1993-07-15 | Ibm | Digitale nachrichtenuebertragungsnetzwerke und aufbau von uebertragungswegen in diesen netzwerken. |
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 |
US4860201A (en) | 1986-09-02 | 1989-08-22 | The Trustees Of Columbia University In The City Of New York | Binary tree parallel processor |
US4910665A (en) | 1986-09-02 | 1990-03-20 | General Electric Company | Distributed processing system including reconfigurable elements |
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 (fr) | 1986-10-31 | 1991-11-29 | Thomson Csf | Dispositif de calcul reconfigurable |
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 |
US4918690A (en) | 1987-11-10 | 1990-04-17 | Echelon Systems Corp. | Network and intelligent cell for providing sensing, bidirectional communications and control |
US5113498A (en) | 1987-11-10 | 1992-05-12 | Echelon Corporation | Input/output section for an intelligent cell which provides sensing, bidirectional communications and control |
NL8800053A (nl) * | 1988-01-11 | 1989-08-01 | Philips Nv | Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem. |
NL8800071A (nl) | 1988-01-13 | 1989-08-01 | Philips Nv | Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem. |
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 |
EP0325421B1 (de) * | 1988-01-20 | 1994-08-10 | Advanced Micro Devices, Inc. | Organisation eines integrierten Cachespeichers zur flexiblen Anwendung zur Unterstützung von Multiprozessor-Operationen |
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 |
US4939641A (en) * | 1988-06-30 | 1990-07-03 | Wang Laboratories, Inc. | Multi-processor system with cache memories |
JPH06101043B2 (ja) | 1988-06-30 | 1994-12-12 | 三菱電機株式会社 | マイクロコンピュータ |
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 (ja) | 1988-07-22 | 1991-01-31 | アメリカ合衆国 | データ駆動式計算用のデータ流れ装置 |
US5010401A (en) | 1988-08-11 | 1991-04-23 | Mitsubishi Denki Kabushiki Kaisha | Picture coding and decoding apparatus using vector quantization |
US5204935A (en) | 1988-08-19 | 1993-04-20 | Fuji Xerox Co., Ltd. | Programmable fuzzy logic circuits |
US4901268A (en) | 1988-08-19 | 1990-02-13 | General Electric Company | Multiple function data processor |
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 |
ATE98833T1 (de) | 1988-09-22 | 1994-01-15 | Siemens Ag | Schaltungsanordnung fuer fernmeldevermittlungsanlagen, insbesondere pcmzeitmultiplex-fernsprechvermittlungsanlagen mit zentralkoppelfeld und angeschlossenen teilkoppelfeldern. |
JP3060018B2 (ja) * | 1988-10-05 | 2000-07-04 | クイックターン デザイン システムズ インコーポレイテッド | 複数の電気的に再構成可能なゲートアレイを用いて論理構成を構築する方法 |
DE68926783T2 (de) | 1988-10-07 | 1996-11-28 | Martin Marietta Corp | Paralleler datenprozessor |
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 (ja) | 1989-06-09 | 1997-02-26 | 株式会社日立製作所 | テストデータ変更回路を有する論理回路テスト装置 |
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 |
US5489857A (en) | 1992-08-03 | 1996-02-06 | Advanced Micro Devices, Inc. | Flexible synchronous/asynchronous cell structure for a high density programmable logic device |
US5212652A (en) | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
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 |
US5128559A (en) | 1989-09-29 | 1992-07-07 | Sgs-Thomson Microelectronics, Inc. | Logic block for programmable logic devices |
JP2968289B2 (ja) | 1989-11-08 | 1999-10-25 | 株式会社リコー | 中央演算処理装置 |
GB8925721D0 (en) | 1989-11-14 | 1990-01-04 | Amt Holdings | Processor array system |
GB8925723D0 (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 |
DE58908974D1 (de) | 1989-11-21 | 1995-03-16 | Itt Ind Gmbh Deutsche | Datengesteuerter Arrayprozessor. |
US5099447A (en) | 1990-01-22 | 1992-03-24 | Alliant Computer Systems Corporation | Blocked matrix multiplication for computers with hierarchical memory |
AU7305491A (en) | 1990-01-29 | 1991-08-21 | 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 |
US5355508A (en) | 1990-05-07 | 1994-10-11 | Mitsubishi Denki Kabushiki Kaisha | Parallel data processing system combining a SIMD unit with a MIMD unit and sharing a common bus, memory, and system controller |
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 |
US5111079A (en) | 1990-06-29 | 1992-05-05 | Sgs-Thomson Microelectronics, Inc. | Power reduction circuit for programmable logic device |
CA2045773A1 (en) | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
SE9002558D0 (sv) | 1990-08-02 | 1990-08-02 | Carlstedt Elektronik Ab | Processor |
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
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 |
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 |
US5617577A (en) * | 1990-11-13 | 1997-04-01 | International Business Machines Corporation | Advanced parallel array processor I/O connection |
US5752067A (en) | 1990-11-13 | 1998-05-12 | International Business Machines Corporation | Fully scalable parallel processing system having asynchronous SIMD processing |
US5590345A (en) | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5734921A (en) | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
DE69131272T2 (de) | 1990-11-13 | 1999-12-09 | International Business Machines Corp., Armonk | Paralleles Assoziativprozessor-System |
US5588152A (en) | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
US5794059A (en) | 1990-11-13 | 1998-08-11 | International Business Machines Corporation | N-dimensional modified hypercube |
US5625836A (en) | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
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 (ja) * | 1991-02-01 | 1999-03-10 | 日本電気株式会社 | マイクロコンピュータ |
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 |
DE59107764D1 (de) | 1991-02-22 | 1996-06-05 | Siemens Ag | Speicherprogrammierbare Steuerung |
JPH04290155A (ja) | 1991-03-19 | 1992-10-14 | Fujitsu Ltd | 並列データ処理方式 |
JPH04293151A (ja) | 1991-03-20 | 1992-10-16 | Fujitsu Ltd | 並列データ処理方式 |
US5617547A (en) | 1991-03-29 | 1997-04-01 | International Business Machines Corporation | Switch network extension of bus architecture |
KR0125623B1 (ko) | 1991-04-09 | 1998-07-01 | 세끼자와 다다시 | 데이타 프로세서 및 데이타 처리방법 |
JPH04328657A (ja) * | 1991-04-30 | 1992-11-17 | Toshiba Corp | キャッシュメモリ |
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 |
AU2158692A (en) | 1991-05-24 | 1993-01-08 | British Technology Group Usa, Inc. | 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 (ja) | 1991-07-09 | 2002-02-25 | 株式会社東芝 | キャッシュメモリ制御装置 |
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 |
US5633830A (en) | 1995-11-08 | 1997-05-27 | Altera Corporation | Random access memory block circuitry for programmable logic array integrated circuit devices |
US5260610A (en) | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
US5550782A (en) | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
FR2681791B1 (fr) | 1991-09-27 | 1994-05-06 | Salomon Sa | Dispositif d'amortissement des vibrations pour club de golf. |
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 (fr) | 1992-01-14 | 1996-12-20 | Andre Thepaut | Systeme de traitement de donnees multiprocesseur. |
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 (ja) | 1992-03-13 | 1998-08-27 | 株式会社東芝 | 階層間同期化システムおよびこれを用いた大規模集積回路 |
US5452401A (en) | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
JP2647327B2 (ja) * | 1992-04-06 | 1997-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 大規模並列コンピューティング・システム装置 |
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 (ja) | 1992-05-12 | 1997-01-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピューティング装置 |
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 |
JP3737104B2 (ja) | 1992-06-04 | 2006-01-18 | ジリンクス,インコーポレーテッド | プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法 |
DE4221278C2 (de) | 1992-06-29 | 1996-02-29 | Martin Vorbach | Busgekoppeltes Mehrrechnersystem |
US5475803A (en) | 1992-07-10 | 1995-12-12 | Lsi Logic Corporation | Method for 2-D affine transformation of images |
JP3032382B2 (ja) | 1992-07-13 | 2000-04-17 | シャープ株式会社 | デジタル信号のサンプリング周波数変換装置 |
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 |
DE69328917T2 (de) | 1992-09-03 | 2000-12-28 | Sony Corp., Tokio/Tokyo | Datenaufzeichnungsgerät und -verfahren |
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 (ja) | 1992-10-02 | 1994-06-28 | Hudson Soft Co Ltd | 割り込み処理方法および装置 |
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 |
US5857109A (en) * | 1992-11-05 | 1999-01-05 | Giga Operations Corporation | Programmable logic device for real time video processing |
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 (ja) | 1993-03-18 | 1994-09-30 | Fuji Xerox Co Ltd | フィールドプログラマブルゲートアレイ |
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 |
WO1994025917A1 (en) * | 1993-04-26 | 1994-11-10 | Comdisco Systems, Inc. | Method for scheduling synchronous data flow graphs |
DE4416881C2 (de) | 1993-05-13 | 1998-03-19 | Pact Inf Tech Gmbh | Verfahren zum Betrieb einer Datenverarbeitungseinrichtung |
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 (it) | 1993-06-11 | 1996-04-23 | Finmeccanica Spa | Sistema a multiprocessore |
US5829007A (en) * | 1993-06-24 | 1998-10-27 | Discovision Associates | Technique for implementing a swing buffer in a memory array |
US5444394A (en) | 1993-07-08 | 1995-08-22 | Altera Corporation | PLD with selective inputs from local and global conductors |
JPH0736858A (ja) | 1993-07-21 | 1995-02-07 | Hitachi Ltd | 信号処理プロセッサ |
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 |
EP1037149A3 (de) | 1994-03-22 | 2003-10-15 | Hyperchip Inc. | Direkte Zellenersetzung für fehlertolerante Architektur mit gänzlich integrierten Systemen und mit Mitteln zur direkten Kommunikation mit dem Systembediener |
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 |
US5781756A (en) | 1994-04-01 | 1998-07-14 | Xilinx, Inc. | Programmable logic device with partially configurable memory cells and a method for configuration |
US5430687A (en) | 1994-04-01 | 1995-07-04 | Xilinx, Inc. | Programmable logic device including a parallel input device for loading memory cells |
US5504439A (en) * | 1994-04-01 | 1996-04-02 | Xilinx, Inc. | I/O interface cell for use with optional pad |
US5761484A (en) | 1994-04-01 | 1998-06-02 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
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 (ja) | 1994-05-27 | 1997-11-05 | 日本電気株式会社 | 階層型資源管理方法 |
US5532693A (en) | 1994-06-13 | 1996-07-02 | Advanced Hardware Architectures | Adaptive data compression system with systolic string matching logic |
EP0690378A1 (de) | 1994-06-30 | 1996-01-03 | Tandem Computers Incorporated | Werkzeug und Verfahren zur Fehlerdiagnose und -korrektur in einem Rechnerprogramm |
JP3308770B2 (ja) | 1994-07-22 | 2002-07-29 | 三菱電機株式会社 | 情報処理装置および情報処理装置における計算方法 |
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 (ja) | 1994-07-29 | 2003-01-14 | 富士通株式会社 | 自己修復機能付き情報処理装置 |
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 (de) | 1994-10-11 | 1996-04-17 | International Business Machines Corporation | Cachespeicherkohärenznetzwerk für Multiprozessor-Datenverarbeitungssystem |
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 (ja) | 1994-11-15 | 1996-05-31 | Mitsubishi Semiconductor Software Kk | セルフテスト機能内蔵シングルチップマイコン |
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 (de) | 1994-12-12 | 1996-07-10 | Advanced Micro Devices, Inc. | Mikroprozessor mit auswählbarer Taktfrequenz |
US5537580A (en) | 1994-12-21 | 1996-07-16 | Vlsi Technology, Inc. | Integrated circuit fabrication using state machine extraction from behavioral hardware description language |
JP3598139B2 (ja) * | 1994-12-28 | 2004-12-08 | 株式会社日立製作所 | データ処理装置 |
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 |
US6128720A (en) | 1994-12-29 | 2000-10-03 | International Business Machines Corporation | Distributed processing array with component processors performing customized interpretation of instructions |
US5696791A (en) | 1995-01-17 | 1997-12-09 | Vtech Industries, Inc. | Apparatus and method for decoding a sequence of digitally encoded data |
US5493239A (en) | 1995-01-31 | 1996-02-20 | Motorola, Inc. | Circuit and method of configuring a field programmable gate array |
US5532957A (en) | 1995-01-31 | 1996-07-02 | Texas Instruments Incorporated | Field reconfigurable logic/memory array |
US5659785A (en) | 1995-02-10 | 1997-08-19 | International Business Machines Corporation | Array processor communication architecture with broadcast processor instructions |
US6052773A (en) | 1995-02-10 | 2000-04-18 | Massachusetts Institute Of Technology | DPGA-coupled microprocessors |
US5742180A (en) | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
US5537057A (en) | 1995-02-14 | 1996-07-16 | Altera Corporation | Programmable logic array device with grouped logic regions and three types of conductors |
US5892961A (en) | 1995-02-17 | 1999-04-06 | Xilinx, Inc. | Field programmable gate array having programming instructions in the configuration bitstream |
EP0727750B1 (de) | 1995-02-17 | 2004-05-12 | Kabushiki Kaisha Toshiba | Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe |
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 |
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 |
US5752035A (en) | 1995-04-05 | 1998-05-12 | Xilinx, Inc. | Method for compiling and executing programs for reprogrammable instruction set accelerator |
JP3313007B2 (ja) | 1995-04-14 | 2002-08-12 | 三菱電機株式会社 | マイクロコンピュータ |
US6077315A (en) | 1995-04-17 | 2000-06-20 | Ricoh Company Ltd. | Compiling system and method for partially 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 |
US5933642A (en) | 1995-04-17 | 1999-08-03 | Ricoh Corporation | Compiling system and method for reconfigurable computing |
WO1996034346A1 (en) | 1995-04-28 | 1996-10-31 | Xilinx, Inc. | Microprocessor with distributed registers accessible by programmable logic device |
GB9508931D0 (en) | 1995-05-02 | 1995-06-21 | Xilinx Inc | Programmable switch for FPGA input/output signals |
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 |
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 (ja) * | 1995-05-31 | 1996-12-13 | Nec Corp | メモリアクセス制御回路 |
JP3677315B2 (ja) * | 1995-06-01 | 2005-07-27 | シャープ株式会社 | データ駆動型情報処理装置 |
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 |
US5646544A (en) | 1995-06-05 | 1997-07-08 | International Business Machines Corporation | System and method for dynamically reconfiguring a programmable gate array |
US5815715A (en) | 1995-06-05 | 1998-09-29 | Motorola, Inc. | Method for designing a product having hardware and software components and product therefor |
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 |
US5784313A (en) | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
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 |
US5778439A (en) | 1995-08-18 | 1998-07-07 | Xilinx, Inc. | Programmable logic device with hierarchical confiquration and state storage |
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 |
US5815004A (en) | 1995-10-16 | 1998-09-29 | Xilinx, Inc. | Multi-buffered configurable logic block output lines in a field programmable gate array |
US5642058A (en) * | 1995-10-16 | 1997-06-24 | Xilinx , Inc. | Periphery input/output interconnect structure |
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 (ja) | 1995-12-19 | 1997-09-05 | Fujitsu Ltd | シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム |
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 |
JP3247043B2 (ja) | 1996-01-12 | 2002-01-15 | 株式会社日立製作所 | 内部信号で障害検出を行う情報処理システムおよび論理lsi |
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 |
JP2795244B2 (ja) | 1996-01-17 | 1998-09-10 | 日本電気株式会社 | プログラムデバッグシステム |
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 (ko) | 1996-02-17 | 1999-01-15 | 김광호 | 그래픽 데이터의 선입선출기 및 선입선출 방법 |
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 (de) | 1996-06-21 | 2000-02-09 | Mirage Technologies, Inc. | Dynamisch rekonfigurierbares hardwaresystem zur echtzeitsteuerung von prozessen |
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 (ko) | 1996-08-19 | 2001-02-01 | 윤종용 | 멀티미디어 신호에 적합한 멀티미디어 프로세서 |
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 (ja) * | 1996-09-13 | 2007-06-20 | 株式会社ルネサステクノロジ | マイクロプロセッサ |
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 |
US5832288A (en) | 1996-10-18 | 1998-11-03 | Samsung Electronics Co., Ltd. | Element-select mechanism for a vector processor |
US5901279A (en) | 1996-10-18 | 1999-05-04 | Hughes Electronics Corporation | Connection of spares between multiple programmable devices |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US5895487A (en) * | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
US5844422A (en) | 1996-11-13 | 1998-12-01 | Xilinx, Inc. | State saving and restoration in reprogrammable FPGAs |
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 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) * | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE19654593A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
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 |
DE19654846A1 (de) | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
ATE243390T1 (de) | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.) |
US6427156B1 (en) | 1997-01-21 | 2002-07-30 | Xilinx, Inc. | Configurable logic block with AND gate for efficient multiplication in FPGAS |
EP0858168A1 (de) | 1997-01-29 | 1998-08-12 | Hewlett-Packard Company | Feldprogrammierbarer Gatterprozessor |
EP0858167A1 (de) | 1997-01-29 | 1998-08-12 | Hewlett-Packard Company | Feldprogrammierbarer Prozessor |
DE19704044A1 (de) | 1997-02-04 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine |
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 (de) | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
DE19704742A1 (de) | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
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 |
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 |
US5884075A (en) | 1997-03-10 | 1999-03-16 | Compaq Computer Corporation | Conflict resolution using self-contained virtual devices |
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 |
US6195674B1 (en) * | 1997-04-30 | 2001-02-27 | Canon Kabushiki Kaisha | Fast DCT apparatus |
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 |
US6240502B1 (en) | 1997-06-25 | 2001-05-29 | Sun Microsystems, Inc. | Apparatus for dynamically reconfiguring a processor |
US5838988A (en) | 1997-06-25 | 1998-11-17 | Sun Microsystems, Inc. | Computer product for precise architectural update in an out-of-order processor |
US5970254A (en) | 1997-06-27 | 1999-10-19 | Cooke; Laurence H. | Integrated processor and programmable data path chip for reconfigurable computing |
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 |
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 |
US6026478A (en) * | 1997-08-01 | 2000-02-15 | Micron Technology, Inc. | Split embedded DRAM processor |
US6170051B1 (en) | 1997-08-01 | 2001-01-02 | Micron Technology, Inc. | Apparatus and method for program level parallelism in a VLIW 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 (ja) | 1997-09-19 | 2005-01-19 | 株式会社ルネサステクノロジ | データ処理装置 |
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 (ja) | 1997-10-23 | 2008-07-30 | 富士通株式会社 | 配線密度予測方法およびセル配置装置 |
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 |
US6122719A (en) | 1997-10-31 | 2000-09-19 | Silicon Spice | Method and apparatus for retiming in a network of multiple context processing elements |
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 |
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 (ja) | 1997-11-19 | 2008-12-17 | 富士通株式会社 | 信号伝送システム、該信号伝送システムのレシーバ回路、および、該信号伝送システムが適用される半導体記憶装置 |
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 |
DE69827589T2 (de) | 1997-12-17 | 2005-11-03 | Elixent Ltd. | Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen |
US6567834B1 (en) | 1997-12-17 | 2003-05-20 | Elixent Limited | Implementation of multipliers in programmable arrays |
EP0926594B1 (de) | 1997-12-17 | 2007-05-23 | Hewlett-Packard Company, A Delaware Corporation | Erst- und Zweitprozessoren verwendendes Verfahren |
DE69841256D1 (de) | 1997-12-17 | 2009-12-10 | Panasonic Corp | Befehlsmaskierung um Befehlsströme einem Prozessor zuzuleiten |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6172520B1 (en) | 1997-12-30 | 2001-01-09 | Xilinx, Inc. | FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA |
US6260114B1 (en) * | 1997-12-30 | 2001-07-10 | Mcmz Technology Innovations, Llc | Computer cache memory windowing |
US6049222A (en) | 1997-12-30 | 2000-04-11 | Xilinx, Inc | Configuring an FPGA using embedded memory |
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 |
AU2562899A (en) | 1998-01-26 | 1999-08-09 | 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 (de) | 1998-02-04 | 2005-01-27 | Texas Instruments Inc., Dallas | Datenverarbeitungssytem mit einem digitalen Signalprozessor und einem Koprozessor und Datenverarbeitungsverfahren |
US7152027B2 (en) | 1998-02-17 | 2006-12-19 | National Instruments Corporation | Reconfigurable test system |
US6086628A (en) | 1998-02-17 | 2000-07-11 | Lucent Technologies Inc. | Power-related hardware-software co-synthesis of heterogeneous distributed embedded systems |
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 (de) | 1998-02-25 | 1999-08-26 | Pact Inf Tech Gmbh | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
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 |
WO1999055879A1 (en) * | 1998-04-24 | 1999-11-04 | 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 |
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 |
US6092174A (en) | 1998-06-01 | 2000-07-18 | Context, Inc. | Dynamically reconfigurable distributed integrated circuit processor and method |
JP3123977B2 (ja) | 1998-06-04 | 2001-01-15 | 日本電気株式会社 | プログラマブル機能ブロック |
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 (de) | 1998-07-06 | 2002-08-14 | Hewlett-Packard Co.(A Delaware Corporation), Palo Alto | Verdrahtung von Zellen in logischen Feldern |
KR100385370B1 (ko) | 1998-07-21 | 2003-05-27 | 시게이트 테크놀로지 엘엘씨 | 개선된 메모리 시스템 장치 및 방법 |
US6421809B1 (en) | 1998-07-24 | 2002-07-16 | Interuniversitaire Micro-Elektronica Centrum (Imec Vzw) | 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 (de) | 1998-08-04 | 2001-02-08 | Unicor Rohrsysteme Gmbh | Vorrichtung zur kontinuierlichen Herstellung von nahtlosen Kunststoffrohren |
US20020152060A1 (en) | 1998-08-31 | 2002-10-17 | Tseng Ping-Sheng | Inter-chip communication system |
JP2000076066A (ja) | 1998-09-02 | 2000-03-14 | Fujitsu Ltd | 信号処理回路 |
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 (ja) * | 1998-10-02 | 2004-08-04 | 株式会社日立製作所 | データ再配置方法 |
US6862563B1 (en) * | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
US6215326B1 (en) | 1998-11-18 | 2001-04-10 | Altera Corporation | Programmable logic device architecture with super-regions having logic regions and a memory region |
EP1351154A2 (de) | 1998-11-20 | 2003-10-08 | Altera Corporation | Rechnersystem mit rekonfigurierbarer programmierbarer Logik-Vorrichtung |
US6977649B1 (en) | 1998-11-23 | 2005-12-20 | 3Dlabs, Inc. Ltd | 3D graphics rendering with selective read suspend |
JP2000181566A (ja) | 1998-12-14 | 2000-06-30 | Mitsubishi Electric Corp | マルチクロック並列処理装置 |
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 (ja) | 1999-01-13 | 2004-11-04 | 株式会社東芝 | 情報処理装置 |
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 (de) | 2000-06-13 | 2001-12-20 | Pact Inf Tech Gmbh | Registrierverfahren |
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 (ja) | 1999-04-27 | 2000-11-07 | Mitsubishi Electric Corp | 再構成可能並列計算機 |
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 |
US7007096B1 (en) | 1999-05-12 | 2006-02-28 | Microsoft Corporation | Efficient splitting and mixing of streaming-data frames for processing through multiple processing modules |
US6748440B1 (en) * | 1999-05-12 | 2004-06-08 | Microsoft Corporation | Flow of streaming data 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 (de) | 1999-06-10 | 2000-12-14 | Pact Inf Tech Gmbh | Hardware und Betriebsverfahren |
EP1061439A1 (de) | 1999-06-15 | 2000-12-20 | Hewlett-Packard Company | Speicher und Befehlen in Rechnerarchitektur mit Prozessor und Coprozessor |
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 (ja) | 1999-06-30 | 2003-06-23 | Necエレクトロニクス株式会社 | 不揮発性半導体記憶装置 |
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 (de) | 1999-09-29 | 2001-04-12 | Infineon Technologies Ag | Rekonfigurierbares 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 (ja) | 1999-12-08 | 2001-06-22 | Nec Corp | プロセッサ間通信方法及びマルチプロセッサシステム |
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 |
DE60133595T2 (de) | 2000-01-07 | 2009-04-30 | Nippon Telegraph And Telephone Corp. | Funktionsrekonfigurierbare Halbleitervorrichtung und integrierte Schaltung zum Konfigurieren der Halbleitervorrichtung |
JP2001202236A (ja) | 2000-01-20 | 2001-07-27 | Fuji Xerox Co Ltd | プログラマブル論理回路装置によるデータ処理方法、プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路再構成方法 |
JP5075313B2 (ja) | 2000-01-28 | 2012-11-21 | インフィネオン テヒノロジース アクチェンゲゼルシャフト | 構成可能なスペクトル拡散通信装置のためのコンフィギュレーションを生成する方法 |
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 (ja) | 2000-02-21 | 2001-08-31 | Keisuke Shindo | マルチスレッドを利用するパイプライン並列プロセッサ |
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 (ja) | 2000-02-25 | 2005-07-20 | 日本電気株式会社 | アレイ型プロセッサ |
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 (ko) | 2000-03-14 | 2008-06-25 | 소니 가부시끼 가이샤 | 전송장치, 수신장치, 전송방법, 수신방법과 기록매체 |
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 |
EP1342158B1 (de) | 2000-06-13 | 2010-08-04 | Richter, Thomas | Pipeline ct-protokolle und -kommunikation |
US6285624B1 (en) | 2000-07-08 | 2001-09-04 | Han-Ping Chen | Multilevel memory access method |
DE10129237A1 (de) | 2000-10-09 | 2002-04-18 | Pact Inf Tech Gmbh | Verfahren zur Bearbeitung von Daten |
DE10036627A1 (de) | 2000-07-24 | 2002-02-14 | Pact Inf Tech Gmbh | Integrierter Schaltkreis |
JP2002041489A (ja) | 2000-07-25 | 2002-02-08 | Mitsubishi Electric Corp | 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法 |
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 |
DE60041444D1 (de) * | 2000-08-21 | 2009-03-12 | Texas Instruments Inc | Mikroprozessor |
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 |
US7346644B1 (en) * | 2000-09-18 | 2008-03-18 | Altera Corporation | Devices and methods with programmable logic and digital signal processing regions |
US6538470B1 (en) * | 2000-09-18 | 2003-03-25 | 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 |
AU2060002A (en) | 2000-10-06 | 2002-04-22 | Pact Inf Tech Gmbh | Method and device |
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 (ja) | 2000-12-06 | 2005-04-06 | 松下電器産業株式会社 | 半導体集積回路 |
GB2370380B (en) * | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
EP1346280A1 (de) | 2000-12-20 | 2003-09-24 | Koninklijke Philips Electronics N.V. | Datenverarbeitungseinrichtung mit einer konfigurierbaren funktionseinheit |
US6483343B1 (en) | 2000-12-29 | 2002-11-19 | Quicklogic Corporation | Configurable computational unit embedded in a programmable device |
US6426649B1 (en) * | 2000-12-29 | 2002-07-30 | Quicklogic Corporation | Architecture for field programmable gate array |
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 |
US7210129B2 (en) | 2001-08-16 | 2007-04-24 | Pact Xpp Technologies Ag | Method for translating programs for reconfigurable architectures |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
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 |
ATE557344T1 (de) * | 2001-06-20 | 2012-05-15 | Krass Maren | Verfahren und gerät zum partitionieren von grossen rechnerprogrammen |
JP3580785B2 (ja) | 2001-06-29 | 2004-10-27 | 株式会社半導体理工学研究センター | ルックアップテーブル、ルックアップテーブルを備えるプログラマブル論理回路装置、および、ルックアップテーブルの構成方法 |
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 |
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 |
US6874108B1 (en) | 2001-08-27 | 2005-03-29 | Agere Systems Inc. | Fault tolerant operation of reconfigurable devices utilizing an adjustable system clock |
US7472230B2 (en) * | 2001-09-14 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | Preemptive write back controller |
US20030056091A1 (en) | 2001-09-14 | 2003-03-20 | Greenberg Craig B. | Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations |
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 |
US6798239B2 (en) | 2001-09-28 | 2004-09-28 | Xilinx, Inc. | Programmable gate array having interconnecting logic to support embedded fixed logic circuitry |
US6625631B2 (en) | 2001-09-28 | 2003-09-23 | Intel Corporation | Component reduction in montgomery multiplier processing element |
US7000161B1 (en) | 2001-10-15 | 2006-02-14 | Altera Corporation | Reconfigurable programmable logic system with configuration recovery mode |
AU2002357739A1 (en) | 2001-11-16 | 2003-06-10 | Morpho Technologies | 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 |
US6476634B1 (en) | 2002-02-01 | 2002-11-05 | Xilinx, Inc. | ALU implementation in single PLD logic cell |
DE10204044A1 (de) | 2002-02-01 | 2003-08-14 | Tridonicatco Gmbh & Co Kg | Elektronisches Vorschaltgerät für Gasentladungslampe |
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 |
US6957306B2 (en) | 2002-09-09 | 2005-10-18 | Broadcom Corporation | System and method for controlling 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 |
US7028283B1 (en) * | 2003-01-30 | 2006-04-11 | Xilinx, Inc. | Method of using a hardware library in a programmable logic device |
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 |
US7412581B2 (en) | 2003-10-28 | 2008-08-12 | Renesas Technology America, Inc. | Processor for virtual machines and method therefor |
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 |
US7870182B2 (en) | 2003-12-29 | 2011-01-11 | Xilinx Inc. | Digital signal processing circuit having an adder circuit with carry-outs |
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 |
WO2007082730A1 (de) * | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Hardwaredefinitionsverfahren |
US7759968B1 (en) | 2006-09-27 | 2010-07-20 | Xilinx, Inc. | Method of and system for verifying configuration data |
US8103987B2 (en) * | 2007-03-09 | 2012-01-24 | Mips Technologies, Inc. | System and method for managing the design and configuration of an integrated circuit semiconductor design |
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 (ja) | 2009-05-28 | 2010-12-09 | Renesas Electronics Corp | 半導体装置及び異常検出方法 |
-
2007
- 2007-01-17 WO PCT/EP2007/000380 patent/WO2007082730A1/de active Application Filing
- 2007-01-17 EP EP07702834A patent/EP1974265A1/de not_active Ceased
- 2007-01-17 US US12/087,916 patent/US8250503B2/en active Active
- 2007-01-17 JP JP2008550680A patent/JP2009524134A/ja active Pending
-
2012
- 2012-06-08 US US13/491,935 patent/US20120278772A1/en not_active Abandoned
-
2014
- 2014-07-07 US US14/325,150 patent/US20140331194A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020124238A1 (en) * | 2000-08-07 | 2002-09-05 | Paul Metzgen | Software-to-hardware compiler |
WO2004114166A2 (en) | 2003-06-18 | 2004-12-29 | Ambric, Inc. | Integrated circuit development system |
Non-Patent Citations (17)
Title |
---|
CARDOSO J M P ET AL: "Macro-based hardware compilation of Java<TM> bytecodes into a dynamic reconfigurable computing system", FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES, 1999. FCCM '99. PROCEEDINGS. SEVENTH ANNUAL IEEE SYMPOSIUM ON NAPA VALLEY, CA, USA 21-23 APRIL 1999, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 21 April 1999 (1999-04-21), pages 2 - 11, XP010359161, ISBN: 0-7695-0375-6 * |
CARDOSO J M P ET AL: "XPP-VC: a C compiler with temporal partitioning for the PACT-XPP architecture", LECTURE NOTES IN COMPUTER SCIENCE, SPRINGER VERLAG, BERLIN, DE, vol. 2438, 2002, pages 864 - 874, XP002376740, ISSN: 0302-9743 * |
DONGWAN SHIN, ANDREAS GERSTLAUER, RAINER D"OMER AND DANIEL GAJSKI: "C-based Interactive RTL Design Methodology", TECHNICAL REPORT CECS-03-42, December 2003 (2003-12-01), Center for Embedded Computer Systems, University of California, Irvine, USA, XP002436937 * |
DONGWAN SHIN; ANDREAS GERSTLAUER; RAINER D"OMER; DANIEL GAJSKI: "C-based Interaktive RTL Design Methodology", TECHICAL REPORT CECS-03-42, December 2003 (2003-12-01) |
FAWCETT B K: "MAP, PLACE AND ROUTE: THE KEY TO HIGH-DENSITY PLD IMPLEMENTATION", WESCON CONFERENCE, IEEE CENTER, HOES LANE, US, 7 November 1995 (1995-11-07), pages 292 - 297, XP000586585, ISSN: 1044-6036 * |
FERNANDO MORAES, MICHEL ROBERT, DANIEL AUVERGNE, NADINE AZEMARD: "A Physical Synthesis Design Flow Based on Virtual Components", XV CONFERENCE ON DESIGN OF CIRCUITS AND INTEGRATED SYSTEMS, November 2000 (2000-11-01), Montpellier, France, XP002436934 * |
HENDRICH N ET AL.: "Silicon compilation and rapid prototyping of microprogrammed VLSI-circuits with MIMOLA and SOLO 1400", MICROPROCESSING & MICROPROGRAMMING NETHERLANDS, vol. 35, no. 1-5, September 1992 (1992-09-01), pages 287 - 294 |
HENDRICH N ET AL: "Silicon compilation and rapid prototyping of microprogrammed VLSI-circuits with MIMOLA and SOLO 1400", MICROPROCESSING & MICROPROGRAMMING NETHERLANDS, vol. 35, no. 1-5, September 1992 (1992-09-01), pages 287 - 294, XP002436933, ISSN: 0165-6074 * |
JEFFREY J. COOK: "THE AMALGAM COMPILER INFRASTRUCTURE" THESIS AT THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN; 2004, XP002436938 Urbana, Illinois, USA; FAWCETT B K", MAP, PLACE AND ROUTE: THE KEY TO HIGH-DENSITY PLD IMPLEMENTATION, 7 November 1995 (1995-11-07), pages 292 - 297, XP002436938 |
JEFFREY J. COOK: "THE AMALGAM COMPILER INFRASTRUCTURE", THESIS AT THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN, 2004, Urbana, Illinois, USA, XP002436938 * |
LYSAGHT, P.; ROSENSTIEL, W.: "New Algorithms, Architectures and Applications for Reconfigurable Computing", 2005, SPRINGER, DORDERECHT, ISBN: 1-4020-3127-0, XP002436953 * |
N. KASPRZYK, A. KOCH: "High-level-language compilation for reconfigurable computers", PROCEEDINGS OF EUROPEAN WORKSHOP ON RECONFIGURABLE COMMUNICATION-CENTRIC SOCS, June 2005 (2005-06-01), Montpellier, France, XP002436935 * |
NEUMANN T ET AL.: "FIELD PROGRAMMABLE LOGIC AND APPLICATIONS. 11TH INTERNATIONAL CONFERENCE", vol. 2147, 2001, SPRINGER VERLAG BERLIN, article "A generic library for adaptive computing environments", pages: 503 - 512 |
NEUMANN T ET AL: "A generic library for adaptive computing environments", FIELD PROGRAMMABLE LOGIC AND APPLICATIONS. 11TH INTERNATIONAL CONFERENCE, FPL 2001. PROCEEDINGS (LECTURE NOTES IN COMPUTER SCIENCE VOL.2147) SPRINGER-VERLAG BERLIN, GERMANY, 2001, pages 503 - 512, XP002436936, ISBN: 3-540-42499-7 * |
SCHONFELD M ET AL.: "JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL, IMAGE, AND VIDEO TECHNOLOGY", vol. 11, 1 October 1995, SPRINGER NEW YORK, article "THE LISA DESIGN ENVIRONMENT FOR THE SYN- THESIS OF ARRAY PROCESSORS INCLUDING MEMORIES FOR THE DATA TRANSFER AND FAULT TOLERANCE BY RECONFIGURATION AND CODING TECHNIQUES", pages: 51 - 74 |
SCHONFELD M ET AL: "THE LISA DESIGN ENVIRONMENT FOR THE SYNTHESIS OF ARRAY PROCESSORS INCLUDING MEMORIES FOR THE DATA TRANSFER AND FAULT TOLERANCE BY RECONFIGURATION AND CODING TECHNIQUES", JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL, IMAGE, AND VIDEO TECHNOLOGY, SPRINGER, NEW YORK, NY, US, vol. 11, no. 1/2, 1 October 1995 (1995-10-01), pages 51 - 74, XP000541354, ISSN: 0922-5773 * |
SONDERVAN J: "RETIMING AND LOGIC SYNTHESIS", ELECTRONIC ENGINEERING, MORGAN-GRAMPIAN LTD. LONDON, GB, vol. 65, no. 793, January 1993 (1993-01-01), pages 33,35 - 36, XP000335044, ISSN: 0013-4902 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008001433A1 (de) | 2008-04-28 | 2009-10-29 | Evonik Degussa Gmbh | Hydrophobiertes Silicium-Eisen-Mischoxid |
Also Published As
Publication number | Publication date |
---|---|
EP1974265A1 (de) | 2008-10-01 |
US20120278772A1 (en) | 2012-11-01 |
JP2009524134A (ja) | 2009-06-25 |
US8250503B2 (en) | 2012-08-21 |
US20140331194A1 (en) | 2014-11-06 |
US20090199167A1 (en) | 2009-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1974265A1 (de) | Hardwaredefinitionsverfahren | |
EP1228440B1 (de) | Sequenz-partitionierung auf zellstrukturen | |
DE19815865B4 (de) | Kompiliersystem und Verfahren zum rekonfigurierbaren Rechnen | |
DE69102065T2 (de) | Eine arithmetische einheit für strukturarithmetik. | |
DE102018005172A1 (de) | Prozessoren, verfahren und systeme mit einem konfigurierbaren räumlichen beschleuniger | |
EP1402382B1 (de) | Verfahren zur bearbeitung von daten | |
DE102018006735A1 (de) | Prozessoren und Verfahren für konfigurierbares Clock-Gating in einem räumlichen Array | |
DE102018005169A1 (de) | Prozessoren und verfahren mit konfigurierbaren netzwerkbasierten datenflussoperatorschaltungen | |
EP1116128B1 (de) | Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks | |
DE19735348B4 (de) | Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben | |
DE102018005181A1 (de) | Prozessoren, Verfahren und Systeme für einen konfigurierbaren, räumlichen Beschleuniger mit Leistungs-, Richtigkeits- und Energiereduktionsmerkmalen | |
DE69703085T2 (de) | Koprozessor mit zwei parallel arbeitenden Multiplizierschaltungen | |
DE102018006889A1 (de) | Prozessoren und Verfahren für bevorzugte Auslegung in einem räumlichen Array | |
WO2002013000A2 (de) | Pipeline ct-protokolle und -kommunikation | |
DE19860062A1 (de) | Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI | |
DE10333087A1 (de) | Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle | |
EP1927063B1 (de) | Programmierung und layoutdesign von hardware | |
EP3244326B1 (de) | Verfahren zum erstellen einer fpga-netzliste | |
EP2220554A1 (de) | Rekonfiguri erbare fliesskomma- und bit- ebenen datenverarbeitungseinheit | |
DE102011103861A1 (de) | Funktionseinheit, Simulationssystem und Verfahren zur Simulation | |
DE102022106423A1 (de) | Verfahren zur Aufteilung von Simulationsmodellen zwischen einem Prozessor und einem FPGA | |
DE69527933T2 (de) | Datenverarbeitungssystem mit datenverarbeitungseinheiten und eine erweiterungsvorrichtung | |
EP1789889B1 (de) | Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten | |
EP2217999A2 (de) | Compiler für rekonfigurierbare architekturen mit besonderem zwischenformat | |
DE102017200460A1 (de) | Recheneinheit und Betriebsverfahren hierfür |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2007702834 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2008550680 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWP | Wipo information: published in national office |
Ref document number: 2007702834 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12087916 Country of ref document: US |