This application claims priority to German Patent Application Serial No. 10 2007 018 615.2 which was filed on Apr. 19, 2007, and is incorporated herein by reference in its entirety.
The invention relates to an arrangement for transmitting information between a unit for emulating a data processing system and a data processing unit.
To analyze a data processing system in order to check full operability, nowadays mainly emulators are used. In this context, emulation in information processing systems refers to the functional reproduction of a system. An emulator is therefore a unit which imitates another data processing system. To achieve a meaningful analysis result, the reproducing system receives the same data, executes the same programs and applications and thereby achieves the same results as a corresponding original system.
Emulators are used for various purposes. First, they are a protection of investment because software which has been developed for earlier systems can continue to be used through emulation on more modern systems. A second aspect is software development support, because emulators allow software which is intended for another system to be developed and tested on a known or familiar system. A third great possibility for use is the use of emulators for training and test purposes.
With regard to a specified purpose, it makes sense in modern development processes and sales strategies to produce an emulator in addition to the actual product. For the field of chip cards, an emulator might be provided to a possible future purchaser who then can install and test the software required for his applications. The more information a system emulator provides, the more helpful it is for a further development and application process.
By way of example, an emulator is able to transfer data information from a current program cycle for an application, for example data packets, register levels, program counters, stack pointers etc. A debug interface, that is to say an interface for detecting, tracking and eliminating errors within an application, is used to make this information available usually to a data processing unit, for example a PC. An appropriate software tool installed on the PC, for example, can condition the transmitted data information and makes it available to the developer or purchaser.
Specifically for the field of chip cards, two types of emulators are used. The chip card emulators called bound-out chips correspond, in principle, to the finished chip cards in terms of function and electronics. The only difference from the chip cards is the much higher number of connections which are routed to the outside. These connections can be connected to a debug interface, from which the relevant information is then tapped of.
For some time, field programmable gate arrays (FPGAs) have been configured as bound-out chips. An FPGA is a programmable semiconductor component and contains configurable logic components which can produce a corresponding system. In terms of hardware, a developer therefore implements a chip card on an FPGA and a possible chip card purchaser installs the application which is of interest to him and can modify it as often as desired. To support the FPGA, specific emulator boards are often positioned between the FPGA and the data processing unit. Their task is to condition the information provided by the FPGA and to transmit this information to the data processing unit in standardized fashion, for example by USB.
A second type of emulator is what are known as microcontroller emulators. These do not require any additional connections to be routed to the outside.
For the purpose of use and development of chip cards, it is very important not only to receive the data information but also to receive power information, relating to the power budget, for a specific program cycle which is active at a particular time. Since especially contactless chip cards do not have a separate power supply available on an RFID tag, for example, but rather the power for operating the chip card is obtained from the electromagnetic field received, it is appropriate to develop very power-saving applications.
To establish a precise relationship between the power consumption and a program cycle, measuring appliances or software development tools have been used to date which, depending on the system to be imitated, always need to be reconfigured and/or procured afresh. Power information relating to a power budget continually refers to information which can be used to calculate power consumption at a particular time or in total for an overall process. In the simplest case, this information may be a single-bit signal. In addition, however, a more complex form of the information is also conceivable, where a plurality of bits are transmitted in the form of a protocol, for example, and represent this information. By way of example, power consumption refers to the current drawn and/or the power drawn by the system at a particular time and/or in a particular program cycle.
The invention is explained below using exemplary embodiments with reference to the drawings, where parts which are the same or have the same action in the figures are respectively identified by the same reference symbols. The elements shown are not to be considered as true to scale, but rather individual elements can be shown in exaggeratedly large or exaggeratedly simplified form in order to aid understanding.
The data transmission 3, which is designed to transmit information in both directions, transmits a plurality of types of information. To install different applications on the unit 1 emulating a data processing system, data information is sent from the data processing unit 2 to the unit 1 emulating a data processing system. So as now to observe the emulating system or to operate an error search or error elimination, for example, the unit 1 transmits functional data to the data processing unit 2. This emulator information is, for instance register levels, interrupt values, program counter values, stack pointer values and much more. In addition, this arrangement is also used to transmit emulator information relating to the power budget for the emulated system.
Advantageously, the systems to be imitated are implemented on an FPGA in modules. Modules may be memories (ROM, RAM), a CPU, an analogue-digital converter (ADC) or an arithmetic-logical unit (ALU), for example. Each of these modules now has elements which provide emulator information relating to a power budget.
In this case, the user-programmable logic chip la contains the emulated system of modular design, with each of the modules A and B shown having a status reporting unit C. This status reporting unit C in each module A, B provides status reports D. These status reports D report the extent to which the relevant module A, B is active.
These status reports D may firstly be a one-bit signal, that is to say carry emulator information regarding whether the module A, B is active or not active. If the module A is a data store, for example, and this data store is accessed in a program cycle, then its status reporting unit C sends a logic 1 as status report D. If the data store is not being used, it sends a logic 0 as status report D.
Otherwise, a status report D may also contain substantially more complex information. If module B is a CPU, for example, then a status report D possibly contains the information Operation in “Idle Mode”, Interrupts Active, ALU Inactive.
These status reports D are made available to the interface 4 either directly or via a collecting unit (not shown). This interface 4 is an error search and elimination interface, that is to say a debug interface. The interface 4 is used to transmit the status reports D to the connecting unit 1b by means of a connection 7. The interface 4 is preferably part of the FPGA. This means that the interface 4 is configurable, that is to say that the use of the individual signal paths in the interface 4 can be selected. The connecting unit 1b links the interface 4 to the data processing unit 2 by means of a standardized connection 3. By way of example, universal serial transmission, also called USB, can be mentioned here. The connecting unit 1b is an emulator board in this case, for example. This connecting unit 1b is not absolutely essential for the essence of the invention, but is very advantageous on account of the possible great extent of the status reports D.
The data processing unit 2 is now sent not only the data information but also the status reports D via the standardized connection 3. The status reports D are picked up in a power calculation unit E in the data processing unit 2. The power information F stored in a data store and the status reports D can be used by the power calculation unit E to ascertain actual power information H. In this context, it is merely important for the stored power information F to be available to the data processing unit, for example it can also be supplied externally via the data input device (5).
If module A relates to the data store, one possible data store status report D might be a logic 1. If stored power information F for the active data store were to be 30 μA by way of example, actual power information H for this status report D would be 30 μA. For the example in which module B is a CPU, actual power information calculation is more complex but also more meaningful.
Appropriately rapid and data-intensive communication, for example USB, allows these calculations to be performed and presented during a particular program cycle.
The actual power information H is now delivered to the data output device 6 of the data processing unit 2. The more detailed the design of the status reporting unit C, and also the status reports D, the more accurately can the calculation unit E be used to make statements about the present actual power consumption through the actual power information H of the emulated system with the currently operated application in the present program cycle. Different applications and the resultant different power consumption of the emulated system means that this arrangement can be used to make detailed statements about the power requirement of individual cycles of an application at a particular time.
The power information F which is supplied to the calculation unit E and is stored in a data store is obtained in different ways. First, such power information F can be ascertained empirically in an experimental setup. These structures can usually be implemented only with a very high level of complexity; corresponding measurement structures and series of experiments are not discussed in more detail.
Secondly, it is possible to use simulation results from an application which simulates the emulated system. Since these simulation results are very reliable in today's prior art, these power requirement statements match the actual power values required by the emulated system very precisely.
A third variant for obtaining this power information F is to estimate the active chip area which requires a module A or B. This statement is converted into appropriate required power values.
Since this development of the exemplary embodiment makes a large number of pieces of information available to the data processing per clock or system cycle, the connection 3 needs to have a large bandwidth. Advantageously, the transmission is limited to what are known as delta values, which means that the actual status reports C themselves are not transmitted but rather possibly only the alterations to the status reports C.
The power calculation unit E which is in modules A and B uses the stored power information F to calculate the actual power information H for the respective module. Module A, again presented as a data store, delivers the actual power information H, for example 30 μA, depending on its state. The power information collection unit G is used to forward this actual power information H to the interface 4.
The connecting unit 1b again sets up a standardized connection 3, for example USB, to the data processing unit 2. Since the actual power information H is already available in the individual modules A, B, it is not calculated in the data processing unit 2 and is available directly in the data processing unit 2 for forwarding to the data output unit 6.
In this case, such power information can also be transmitted as “delta values”, which merely provide the difference from preceding power values. This allows optimum use to be made of the respective bandwidth of the debug interface.
Unlike the previous development, a smaller number of pieces of information is transmitted. A drawback in comparison with exemplary embodiment 1 is the implementation of additional units and the provision of system performance and also data storage space for calculating power requirement.
This third option for obtaining the power information relating to the power budget for an emulated data processing system is the implementation of a measuring unit 1, for example in the form of a current-measuring instrument or power-measuring device etc. in the FPGA. The emulated system is of modular design in this case too. The measuring unit I ascertains actual power values K for the modules A, B, converts them into actual power information H and makes this information available to the interface 4.
In similar fashion to
Although it is expedient to classify a data processing system to be emulated in the FPGA into modules, it is not directly relevant to the invention. It goes without saying that the data processing system can also provide the necessary power information in line with
Number | Date | Country | Kind |
---|---|---|---|
10 2007 018 615.2 | Apr 2007 | DE | national |