Abstract:
The integrated circuit executes software programs. The electronic components of the integrated circuit and/or the electrical connections between them can be selectively broken and/or created. The wiring of the electronic components and/or their function and/or their mode of operation are thereby at least partly individually configured. The connections are thereby configured dynamically and in parallel during the operation of the integrated circuit.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This is a continuation of copending International Application PCT/DE97/02632, filed on Nov. 11, 1997, which designated the United States. 
    
    
     BACKGROUND OF THE INVENTION 
     Field of the Invention 
     The invention relates to integrated circuits and, more particularly, to an integrated circuit designed for the execution of software programs. 
     Integrated circuits of this type are particularly often contained in microprocessors, microcontrollers, signal processors and the like. Such circuits exist in a great number of widely varying embodiments and they are widespread. 
     Although microprocessors, microcontrollers, signal processors and the like are available in a wide variety of embodiments (or perhaps even just because of this), it is difficult or sometimes even impossible to find a version which can meet the requirements imposed in a specific individual case (and only these requirements). 
     If the microprocessor, microcontroller, signal processor or the like which is selected is one which, for whatever reason, cannot meet all the imposed requirements, then this will generally increase the outlay on the hardware in which it is to be used. 
     If, however, the microprocessor, microcontroller, signal processor or the like which is selected is one which has more than the required capacity, then this will generally increase the cost of the product containing it. 
     SUMMARY OF THE INVENTION 
     It is accordingly an object of the invention to provide an integrated circuit for processing software programs, which overcomes the above-mentioned disadvantages of the prior art devices and methods of this general type and which can in each case be used optimally for a large number of widely varying applications. 
     With the foregoing and other objects in view there is provided, in accordance with the invention, an integrated circuit device for executing software programs, comprising: 
     a multiplicity of electronic components and electrical connections extending between the electronic components; the electronic components and the electrical connections being disposed such that one of an interconnection of the electronic components, a function thereof, and a mode of operation thereof is individually configurable by selectively breaking or creating the connections dynamically and in parallel during an operation of the integrated circuit device. 
     In other words, the electronic components of the integrated circuit and/or the electrical connections provided between the components are at least in part arranged in such a way that the interconnection of the electronic components and/or their function and/or their mode of operation can be individually configured by selectively breaking and/or making connections. The configuration of the connections is thereby carried out dynamically and in parallel during the operation of the integrated circuit. 
     An integrated circuit of this type can therefore, unlike customary integrated circuits of the type in question, be configured at the hardware level. 
     This hardware-level configurability makes it possible to match the integrated circuit in virtually any way to the respectively desired conditions. This matching is carried out dynamically during the operating time of the integrated circuit. Advantageously, the configuration of the connections is carried out internally by the integrated circuit itself. By virtue of the dynamic and internal configuration of the connections, the integrated circuit can be matched to the respective requirements without the need to interrupt the operation of the integrated circuit. 
     If, for example, that part of the integrated circuit which executes the software programs is provided in the form of an intelligent core of the integrated circuit, and a hardware-configurable part of the integrated circuit is disposed between the intelligent core and the input and/or output terminals (pins) of the integrated circuit, then the user can allocate any desired functions to any of the input and/or output terminals. It is therefore possible, to name only one of a virtually unlimited number of examples, for an arbitrary number of pins to be configured as input and/or output terminals for an arbitrary number of serial or parallel interfaces. 
     As an alternative, or in addition, provision may be made to make at least parts of the intelligent core configurable at the hardware level. It is in this way possible to affect the function and the mode of operation of the intelligent core, which, again to name only one of a virtually unlimited number of examples, can be used as a way of selecting, affecting and/or creating the instruction decoder (individual matching to an instruction set desired by the user). 
     With the above and other objects in view there is also provided, in accordance with the invention, a method of programming and operating an integrated circuit device for executing software programs, which comprises: 
     providing an integrated circuit device with a core region having an integrated circuit for executing software programs, a programmable peripheral region disposed around the core region, and a plurality of terminals for electrically contacting the integrated circuit device; 
     connecting the integrated circuit of the core region to the terminals through the programmable peripheral region; and 
     dynamically and in parallel during an operation of the integrated circuit device, selectively breaking or creating the connections for configuring electronic components of the integrated circuit device or the electrical connections thereof such that an interconnection of the electronic components, a function thereof, and/or a mode of operation thereof is individually configured. 
     In accordance with an additional feature of the invention, therefore, the peripheral region is configurable such that the terminals of the integrated circuit device are at least in part individually allocatable. 
     In accordance with another feature of the invention, the peripheral region is configurable such that data signals input or output via the terminals are processed in the peripheral region. 
     In accordance with a further feature of the invention, the peripheral region is configurable to selectively process signals or data input and output through the terminals. 
     In accordance with again a further feature of the invention, the core region is configurable to individual program instruction to be carried out therein. 
     The intelligent core is in this case to be regarded as a status machine. The status machine has a predetermined number of states, which run in a fixed predetermined scheme. In particular, the intelligent core may be a microcontroller, a microprocessor, a digital signal processor, or the like. 
     In accordance with again another feature of the invention, the peripheral region contains a multiplicity of programmable gate elements such as, for example, FPGAs, PLDs, PLAs or the like. It is also particularly advantageous, in accordance with yet another feature of the invention, if the peripheral region is formed by at least one coprocessor, which is dynamically connected up to the intelligent core should the latter, for example, require additional computing power or if data need to be processed more rapidly. 
     Overall, the hardware-level configurability of an integrated circuit, designed for the execution of software programs, allows the latter to be matched to a very wide variety of requirements. 
     An integrated circuit has therefore been provided which can in each case be used optimally for a large number of widely varied applications. 
     Other features which are considered as characteristic for the invention are set forth in the appended claims. 
     Although the invention is illustrated and described herein as embodied in an integrated circuit for processing software programs, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the spirit of the invention and within the scope and range of equivalents of the claims. 
     The construction of the invention, however, together with additional objects and advantages thereof will be best understood from the following description of the specific embodiment when read in connection with the accompanying drawing. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The FIGURE shows a schematic representation of an integrated circuit formed in accordance with the invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to the sole FIGURE of the drawing in detail, there is seen an integrated circuit generally denoted by the reference numeral  1 . 
     The integrated circuit  1  is fitted in a package  2  with a multiplicity of input and/or output terminals or pins  3 . It will be understood, however, that the circuit may also be provided as an unpackaged chip or fitted in any other desired packages. 
     The integrated circuit  1  shown in the figure consists of a core region  11  and a peripheral region  12 . 
     The core region  11  is a region of the integrated circuit that is designed for the execution of software programs and corresponds in terms of function and mode of operation to the intelligent core of a microprocessor, microcontroller, signal processor or the like. 
     The peripheral region  12  surrounding the core region  11  represents the connection between the core region  11  and the input and/or output terminals  3 . The peripheral region  12  is formed with a multiplicity of electronic components which, in particular, represent gates whose interconnection and/or whose function and/or mode of operation can be at least in part individually configured. This configuration is effected, in particular, by selectively breaking and/or creating connections between the electronic components. 
     Electrical connections between the components of the peripheral region or the gates  12  which they form may be broken and/or made in a wide variety of ways. 
     One option of breaking connections consists in melting fuses  13  or the like, provided in the connection path, by means of a correspondingly heavy electric current. 
     A further option of breaking connections consists in the integration of non-volatile memory elements, used as switching elements or in switching elements, for example ROM, EPROM, EEPROM, flash EPROM cells or the like; the connection, whose state (made or broken) can in this case be made dependent on the value stored in the respective memory element, may in this case not only be broken, but also remade or reproduced. 
     A new permanent connection between two components to be connected may also be made through the defined destruction of a further component, provided between the components to be connected, such that a permanent and continuous connection between the components to be connected is in this way made. 
     It will be understood that the foregoing examples of breaking and/or making electrical connections between components represent only some of the suitable options. Alternatives and/or supplementary possibilities are known and need not be explained further. 
     The integrated circuit need not only be configured by breaking and/or making electrical connections. In addition, or as an alternative, provision may be made for the function and mode of operation of the electronic components of the integrated circuit to be affected selectively by non-volatile operating mode adjustment, controlled partial destruction or the like. 
     As regards the way in which the electronic components of the integrated circuit and/or the connections between them are to be formed in order to be hardware-configurable, and regarding the way in which the integrated circuit is ultimately to be configured at the hardware level, reference may also be made to the measures provided for these or similar purposes in the context of known programmable logic, for example PLAs (programmable logic arrays), GALs (gate array logic), PLDs (programmable logic devices), FPGAs (field programmable gate arrays) and the like. The measures known from hardware-configurable logic for the hardware-level configuration thereof can basically also be used for configuring the integrated circuit according to the invention. 
     The configuration of the integrated circuit  1  in question does not take place until after the integrated circuit has been produced and fitted in a package. In a preferred mode, the circuit is electrically configured by applying corresponding voltages or signals to predetermined input and/or output terminals  3 . In addition, or as an alternative, optical processes (using UV light, laser beams or the like) or similar processes may also be employed. 
     The integrated circuit  1  is configured, for example, by using a hardware programming language such as VHDL or the like. 
     Through the configuration of the peripheral region  12 , it is possible for connections to be made between the individual input and/or output terminals  3  and the intelligent core, executing the software programs, in the (from a logical point of view) central core region  11  of the integrated circuit. The connections can be routed via a varying arbitrary number of and arbitrarily interconnected components or gates, and can reach the core region  11  at a varying number of arbitrary points. 
     This opens up the possibility of having the individual input and/or output terminals individually allocated functions which are optimally matched to the respective requirements of the user of the integrated circuit. Thus, for example, an arbitrary number, within certain limits, of serial and/or parallel interfaces (I/O interfaces) may be provided. 
     Besides this, the components of the peripheral region  12 , or the gates formed by them, may be interconnected in such a way that preprocessing and/or postprocessing of the signals or data which are input and/or are to be output via the input and/or output terminals  3  can be performed in the peripheral region. An example of a result which may be achieved in this way is that coding and/or decoding of signals or data which are input (or are to be output) can be carried out in the peripheral region  12 . In one embodiment, therefore, a coprocessor  14  may be disposed in the peripheral region  12 . 
     Data or signal processing carried out in the peripheral region  12  can be carried out at a speed which is generally higher than the speed which would be achievable if the processing were to be performed under software control in the intelligent core. On the other hand, moving the processing into the integrated circuit may considerably simplify the hardware in which the integrated circuit is to be embedded. 
     In an alternative embodiment of the invention, it is also possible to not only render the peripheral region  12  hardware-configurable, but also the core region  11 . As a result, the instruction decoder of the intelligent core may be configured, or one of several instruction decoders may be selected, as a result of which their instruction set can be individually established and/or changed. This, of course, is in contrast to prior known microprocessors, microcontrollers and signal processors. 
     Those skilled in the pertinent art will appreciate that the above-mentioned possibilities and options that result from the hardware-level configurability of the core region  11  and/or of the peripheral region  12  of the integrated circuit, for influencing its function and/or mode of operation, are but a few examples used for the purpose of illustration. In principle, providing hardware-level configurability in integrated circuits designed for the execution of software programs opens up the possibility of matching it in terms of virtually all its technical properties to the individual requirements. 
     Although the above-described integrated circuit is more complicated in construction than customary ICs (non-hardware-configurable ICs), it need not be more expensive to produce. Owing to the fact that, due to hardware-level configuration, the same integrated circuit can be matched in virtually any way to individual requirements, it can be produced in enormously large numbers, which readily compensates in terms of economics for the disadvantage of its complicated structure. 
     In summary, the above-described integrated circuit, designed for the execution of software programs, can in each case be used optimally, both in economic and in technical terms, for a large number of widely varied applications.