US7099813B2 - Simulating program instruction execution and hardware device operation - Google Patents
Simulating program instruction execution and hardware device operation Download PDFInfo
- Publication number
- US7099813B2 US7099813B2 US10/118,427 US11842702A US7099813B2 US 7099813 B2 US7099813 B2 US 7099813B2 US 11842702 A US11842702 A US 11842702A US 7099813 B2 US7099813 B2 US 7099813B2
- Authority
- US
- United States
- Prior art keywords
- instruction set
- processor core
- hardware
- test scenario
- simulator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime, expires
Links
- 238000012360 testing method Methods 0.000 claims abstract description 82
- 238000004088 simulation Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 13
- 230000003993 interaction Effects 0.000 claims description 9
- 230000009471 action Effects 0.000 description 24
- 230000007246 mechanism Effects 0.000 description 12
- 238000010200 validation analysis Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 8
- 238000012795 verification Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000009118 appropriate response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Definitions
- This invention relates to the field of data processing systems. More particularly, this invention relates to the simulation of systems including a processor core and a plurality of hardware devices.
- SoC system-on-chip
- the present invention provides apparatus for simulating data processing operations performed by a data processing apparatus, said data processing apparatus including a processor core operable to execute program instructions and a plurality of hardware devices coupled to said processor core, said apparatus comprising:
- a hardware simulator operable to simulate said plurality of said hardware devices, said hardware simulator being responsive to one or more stimulus signals to generate one or more response signals simulating a response of one or more of said plurality of hardware devices to said one or more stimulus signals if applied to one or more of said plurality of hardware devices;
- an instruction set simulator operable to simulate said processor core, said instruction set simulator being responsive to one or more stimulus signals to simulate execution of one or more program instructions by said processor core and to generate one or more response signals simulating a response of said processor core if said one or more program instructions were executed by said processor core;
- test scenario manager coupled to said hardware simulator and said instruction set simulator and operable to generate said stimulus signals supplied to said hardware simulator and said instruction set simulator such that said test scenario manager acts as a master to command simulation operations performed by said hardware simulator and said instruction set simulator in accordance with predetermined test scenario parameters.
- the invention recognises that whilst in the real physical device the processor core may generally act as the master and command the rest of the system in its operation, during simulation the hardware simulator and the instruction set simulator may usefully both be treated as slaves to a test scenario manager.
- the test scenario manager may command the instruction set simulator to execute particular program instruction sequences or fragments which it is desired to simulate in combination with particular sets of stimulus signals being applied to the plurality of hardware devices that in the real system are coupled to the processor core.
- this provides an effective and time efficient test and validation technique whereby the interaction of the processor core executing program instructions with the hardware devices associated with the core may be accurately simulated and the simulation directed at particular coordinated states of circumstances/state of the system.
- This arrangement reverses the normal situation in which the processor core is the master and instead makes the processor core a slave that is commanded by the test scenario manager.
- test scenario parameters specify an interleaved sequence of stimuli to be applied to the hardware simulator and the instruction set simulator.
- the ability to interleave simulation signals in such a predetermined manner is highly effective in identifying and diagnosing potential problems with a system design.
- test scenario manager needs some mechanism by which to communicate with the instruction set simulator.
- a software signal interface controller to provide such a communication mechanism is embodied in the form of software executed by the instruction set simulator itself. This is an efficient and flexible way of achieving communication between the test scenario manager and the instruction set simulator.
- a preferred mechanism for passing information between the test scenario manager and the instruction set simulator is via a shared memory. Such a mechanism is advantageously easy to provide and manage.
- the instruction set simulator may utilise the shared memory in a variety of different ways. Preferred ways in which the instruction set simulator may read the shared memory include the shared memory being one or more of:
- an interrupt signal store operable to latch interrupt signals applied to said processor core simulated by said instruction set simulator
- a command memory operable to store commands to said instruction set simulator.
- test scenario parameters could be essentially random parameters seeking to explore a wide span of system state of the system being validated
- the test scenario parameters are a user specified subset of stimulus signals.
- a user of the validation system will often be able to identify ranges of stimulus signals which are likely to be of particular interest and towards which the validation and verification efforts of a product development cycle should be directed.
- the user may specify the subset of stimulus signals to be applied in a particular set and vary this between sets to explore what are envisaged to be potentially problematic situations.
- problematic situation which the present technique is well suited to investigate are ones aimed at simulating time critical real time operational scenarios involving the interaction of the processor core operating under program instruction control with various hardware devices.
- An example of such a situation would be whether or not a FIFO was being emptied quickly enough by an associated hardware device whilst it was being filled at its maximum rate by software executing on the processing core.
- the present technique is also well suited to allow a user to specify a subset of stimulus signals which can be used to establish performance limitations (e.g. speed, bandwidth etc) of a system under test prior to the real system becoming available.
- performance limitations e.g. speed, bandwidth etc
- the interaction between a processor core executing program instructions and an associated hardware device is particular important to test in the circumstance of the program instructions forming part of a software driver for the hardware device in question.
- This type of interaction is particular well suited to the command driven type testing provided by this technique in that the test scenario manager may trigger particular device driver software to be run applying predetermined stimuli to an associated hardware device and checking for an appropriate response.
- the communication provided by use of the shared memory advantageously provides a degree of independence from the particular simulation environment used for the hardware simulation (e.g. the hardware could be simulated in Verilog, VHDL or a mixture thereof).
- the present invention provides a method of simulating data processing operations performed by a data processing apparatus, said data processing apparatus including a processor core operable to execute program instructions and a plurality of hardware devices coupled to said processor core, said method comprising the steps of:
- test scenario manager uses a test scenario manager to generate said stimulus signals such that said test scenario manager acts as a master to command simulation operations to simulate both said plurality of hardware devices and said processor core in accordance with predetermined test scenario parameters.
- FIG. 1 schematically illustrates a simulation environment including a plurality of hardware devices and an instruction set simulator
- FIG. 2 schematically illustrates a more complex simulation environment including a plurality of hardware devices and an instruction set simulator
- FIG. 3 schematically illustrates an instruction set simulator and its communication mechanism with a test scenario manager
- FIG. 4 schematically illustrates the control flow within the instruction set simulator.
- FIG. 6 schematically illustrates the architecture of a general purpose computer that may be used to perform the simulation techniques discussed above.
- FIG. 1 schematically illustrates a simulation system comprising a test scenario manager 2 utilising user specified predetermined test scenario parameter data 4 to apply stimulus signals to a plurality of hardware devices 6 , 8 , 10 via test interfaces 12 , 14 , 16 .
- Responses of the hardware devices 6 , 8 , 10 are also returned and observed via the test interfaces 12 , 14 , 16 .
- An instruction set simulator 18 is provided to simulate the operation of a processor core acting under control of program instructions.
- the instruction set simulator also has a test interface 20 via which it can receive stimulus signals from the test scenario manager 2 and through which it may return results.
- the test scenario manager 2 acts as a master device in this arrangement whereby it issues commands (stimulus signals) to the various hardware devices 6 , 8 , 10 or the instruction set simulator 18 .
- commands (stimulus signals) to the various hardware devices 6 , 8 , 10 or the instruction set simulator 18 .
- the present technique extends this communication to also encompass the instruction set simulator 18 via its test interface 20 .
- the instruction set simulator may be commanded by the test scenario manager 2 to execute particular program instructions or sequences of program instructions as required.
- the instruction set simulator will act to generate appropriate response signals that would be generated by the processor core executing such program instructions and the instruction set simulator can be responsive to the state of one or more of the other hardware devices 6 , 8 , 10 within the system being simulated.
- FIG. 2 schematically illustrates a more complex system comprising a processor core and a plurality of hardware devices which it is desired to simulate.
- the simulation system still includes the test scenario manager 2 and the test parameters 4 together with the instruction set simulator 18 . Further elements corresponding to hardware devices being simulated and the driving of external busses are also included.
- the test scenario manager 2 is connected so as to be able to command execution of program instructions by the instruction set simulator 18 as well as being able to apply stimulus signals to the various hardware device simulations and recover response data from both the hardware device simulations and the instruction set simulator.
- the various hardware device simulations and the instruction set simulator may also exchange data directly between one another as required in accordance with the system being simulated.
- FIG. 3 schematically illustrates the instruction set simulator in more detail.
- the test scenario manager 2 communicates via its test interfaces with hardware devices 22 as well as with the instruction set simulator 18 .
- a test interface 20 / is provided to identify messages issued by the test scenario manager 2 that are intended for the instruction set simulator 18 and make the appropriate writes to shared memory that can then be read by the instruction set simulator 18 .
- This portion of the test interface 20 / is provided on the simulation environment side as software that is part of the test bench being used.
- shared memory 24 , 26 , 28 , 30 are illustrated in FIG. 3 , although in practice these may be common physical memory locations and what differs is the way in which the test interface 20 // within the instruction set simulator 18 chooses to interpret the data stored in that shared memory location.
- FIG. 3 shows the proposed structure for the software XTI interface (external test interface).
- the XTSM 2 interfaces with an e language XVC (external verification controller) stub. This provides an XVC id which is then used to communicate through the software XTI to the nominated software XVC.
- the software XTI can be configured to use any one of the proposed communication technologies.
- the Task Manager's main responsibility is the scheduling of the software XVCs. This could be a simple pre-emptive scheduler with fixed time-slots and stacks for each of the XVCs. Interrupts and driver call-backs could be implemented as system events that can trigger other XVC actions.
- This XTI interface holds state and control information about the external model, and is responsible for receiving and executing action requests from the XTSM. This interface component initiates and monitors the execution progress of the current action, and informs the external model scenario manager that it is ready for the next action. Command packets received from the XTSM would have a format similar to that shown below:
- Action Count 1a Action ID 2a. Action Parameter Data Block ⁇ close oversize brace ⁇ Repeated for ea 3a. Action Trigger Event ID
- the XTI is also responsible for receiving action synchronisation events, and generating status events such that the status structure can be read from the XTSM.
- Some typical events passed in and out of the software domain XTI are listed in the table below:
- Event Direction Comments Trigger event ID fired In A system event has been detected, XTI to Check ID Stop Run In Suspend action processing Action Complete Out Current Action completed XTSM to read status Action Sequence Out Current list of Actions completed Complete XTSM to read status Device Error Detected Out I/O Error/Timeout detected XTSM to read status Message Waiting Out Annotation text available XTSM to read status
- the basic XTI data passing mechanism for RDI would be to monitor the XTSM/XTI interface for commands and generate a SWI on the core for external communications events. Data is passed back from the task manager via another SWI which is handled by the RDI/XTI interface and passed back to the XTSM/XTI.
- the SWI handlers would manage the data passing between interfaces.
- Section 5.4 describes the basic TUBE model. This implementation would require an enhancement such that the TUBE register could be written to via an external source and hence by the software task manager itself. Another variant on the TUBE that would not require modification would be the Internal Memory (IntMem) block documented in section 5.2 of ARM DDI 0243A-01. Both mechanisms would access as bidirectional data passing registers for XTI communication.
- IntMem Internal Memory
- command sequences using this implementation would be presented via the 32 external interrupt lines from the XTSM/XTI and would be read and translated via the task manager. Being unidirectional however, feedback would be required by some other mechanism such as reference [4] above.
- an ARMulator plug-in would be developed to interface to the XTSM/XTI and pass communications down through an ARMulator plug-in XTI to the software task manager. Communications would be driven by the use of SWI calls. The SWI handlers would manage the data passing between interfaces. The model used would be that of an operating system interface, documented in section 2.4 of the above application note document.
- FIG. 4 is a diagram showing the expanded software driver test coordinating process which waits for commands received via the system test control interface.
- the action control loop 1 calls the scheduler implemented as a set of method calls in a CValTools to create a set of action tasks.
- the number and type of action tasks are defined by the user.
- Each action task has its own command loop and executes on a “tick” call basis. In one allocated tick, it must process any commands in its command queue before returning from the call back.
- the tick for each task is driven by the CValTools class that operates under a timer interrupt.
- the CValTools also provides a set of methods such as:
- FIG. 5 is a schematic illustration of the way in which data may be passed from the test scenario manager 2 to the instruction set simulator 18 via a shared memory 32 .
- the verification code includes a plurality of client stubs which serve to write data values into the shared memory 32 as commanded by the test scenario manager 2 .
- a polling loop operable on the software side for the instruction set simulator 18 polls the shared memory 32 and reads the data written therein passing this to the appropriate server stub code within the instruction set simulator and then onto the appropriate routine that will service the stimulus that has been specified by the data passed.
- the shared memory 32 may correspond to any of the elements 24 , 26 , 28 or 30 from FIG. 3 .
- FIG. 6 schematically illustrates a general purpose computer 200 of the type that may be used to implement the above described techniques.
- the general purpose computer 200 includes a central processing unit 202 , a random access memory 204 , a read only memory 206 , a network interface card 208 , a hard disk drive 210 , a display driver 212 and monitor 214 and a user input/output circuit 216 with a keyboard 218 and mouse 220 all connected via a common bus 222 .
- the central processing unit 202 will execute computer program instructions that may be stored in one or more of the random access memory 204 , the read only memory 206 and the hard disk drive 210 or dynamically downloaded via the network interface card 208 .
- the results of the processing performed may be displayed to a user via the display driver 212 and the monitor 214 .
- User inputs for controlling the operation of the general purpose computer 200 may be received via the user input output circuit 216 from the keyboard 218 or the mouse 220 .
- the computer program could be written in a variety of different computer languages.
- the computer program may be stored and distributed on a recording medium or dynamically downloaded to the general purpose computer 200 .
- the general purpose computer 200 can perform the above described techniques and can be considered to form an apparatus for performing the above described technique.
- the architecture of the general purpose computer 200 could vary considerably and FIG. 6 is only one example.
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)
- Debugging And Monitoring (AREA)
Abstract
A simulation system is provided for simulating operation of a plurality of hardware devices in combination with an instruction set simulator simulating execution of program instructions by a program core. A test scenario manager acts as a master and serves to command the hardware devices and the instruction set simulator with stimulus signals to simulate various specified activity.
Description
1. Field of the Invention
This invention relates to the field of data processing systems. More particularly, this invention relates to the simulation of systems including a processor core and a plurality of hardware devices.
2. Description of the Prior Art
The ability to effectively and efficiently test and/or validate designs is becoming increasingly important. Typical data processing system designs are rapidly increasing in complexity and furthermore are including circuit blocks designed by a variety of different sources or companies. So called system-on-chip (SoC) designs that integrate a large number of functional elements on a single integrated circuit have strong advantages in terms of cost and performance, but require significant amounts of validation and testing before the designs can be reliably released for manufacture. This validation and testing requirement is becoming a bottleneck in getting new systems into the market place. Consequently, measures that can improve the efficiency and effectiveness of such validation and testing of designs are strongly advantageous.
There are currently 3 approaches that can be used to validate a SoC design:
- (a) Build a software model of the design and run the same software when the hardware is complete. The problems here include that the hardware models are not fully represented in software in that there is no hardware feedback loop such that different hardware block models can interact fully.
- (b) Build VHDL and/or Verilog (trickboxes) models to plug into the external interfaces of the SoC blocks to provide external stimulus to the SoC. This approach is commonly used but suffers from the problem that the code is not very re-usable, and a large amount of knowledge is required of the operation of each trickbox to create effective tests.
- (c) Build models of each of the blocks (eVCs) in the SoC using an HVL (hardware verification language) such a Specman to replace existing hardware blocks in turn, such that the modelled blocks can provide stimulus into the system. Here a problem is that the integrity of the system is compromised as existing blocks need to be removed and re-inserted per test.
The copending U.S. patent application U.S. Ser. No. 09/994,023 filed on 27 Nov. 2001 with the same inventor and Assignee as the current application describes a mechanism for the coordinated validation of hardware devices. The disclosure of this earlier copending application is incorporated herein in its entirety by reference.
The copending U.S. patent application entitled “Software and Hardware Simulation” filed on 22 Feb. 2002 describes a mechanism for testing software drivers and their associated hardware. The disclosure of this earlier copending application is incorporated herein in its entirety by reference.
As well as simulating the behaviour of hardware devices, such as peripherals and interfaces, it is desirable to also be able to simulate and/or validate the behaviour of software executing on a processor core. In normal operation of the real system the program instructions executing on the processor core typically have control and authority over the system as a whole and direct its operation following the program instruction sequence. It is known to provide instruction set simulators which allow execution of program instructions by a processor core to be simulated, but it is currently not practical to bring such instruction execution simulation meaningfully together with hardware device simulation in an efficient manner. Whilst it may be possible to allow an instruction set simulation to steadily simulate execution of a stream of program instructions whilst a hardware simulation operates in parallel to simulate the action of hardware surrounding the processor core, the interaction between the hardware simulation and instruction execution simulation is substantially unmanaged and relies upon quasi-random occurrence of combinations of state in order to test the range of operational state of the system as a whole. This is highly time consuming and in many cases not practical due to the relatively slow speed at which hardware devices may be accurately and reliably simulated.
Viewed from one aspect the present invention provides apparatus for simulating data processing operations performed by a data processing apparatus, said data processing apparatus including a processor core operable to execute program instructions and a plurality of hardware devices coupled to said processor core, said apparatus comprising:
a hardware simulator operable to simulate said plurality of said hardware devices, said hardware simulator being responsive to one or more stimulus signals to generate one or more response signals simulating a response of one or more of said plurality of hardware devices to said one or more stimulus signals if applied to one or more of said plurality of hardware devices;
an instruction set simulator operable to simulate said processor core, said instruction set simulator being responsive to one or more stimulus signals to simulate execution of one or more program instructions by said processor core and to generate one or more response signals simulating a response of said processor core if said one or more program instructions were executed by said processor core;
a test scenario manager coupled to said hardware simulator and said instruction set simulator and operable to generate said stimulus signals supplied to said hardware simulator and said instruction set simulator such that said test scenario manager acts as a master to command simulation operations performed by said hardware simulator and said instruction set simulator in accordance with predetermined test scenario parameters.
The invention recognises that whilst in the real physical device the processor core may generally act as the master and command the rest of the system in its operation, during simulation the hardware simulator and the instruction set simulator may usefully both be treated as slaves to a test scenario manager. In this way, the test scenario manager may command the instruction set simulator to execute particular program instruction sequences or fragments which it is desired to simulate in combination with particular sets of stimulus signals being applied to the plurality of hardware devices that in the real system are coupled to the processor core. Surprisingly, this provides an effective and time efficient test and validation technique whereby the interaction of the processor core executing program instructions with the hardware devices associated with the core may be accurately simulated and the simulation directed at particular coordinated states of circumstances/state of the system. This arrangement reverses the normal situation in which the processor core is the master and instead makes the processor core a slave that is commanded by the test scenario manager.
In particularly preferred embodiments the test scenario parameters specify an interleaved sequence of stimuli to be applied to the hardware simulator and the instruction set simulator. The ability to interleave simulation signals in such a predetermined manner is highly effective in identifying and diagnosing potential problems with a system design.
It will be appreciated that the test scenario manager needs some mechanism by which to communicate with the instruction set simulator. In preferred embodiments of the invention a software signal interface controller to provide such a communication mechanism is embodied in the form of software executed by the instruction set simulator itself. This is an efficient and flexible way of achieving communication between the test scenario manager and the instruction set simulator.
A preferred mechanism for passing information between the test scenario manager and the instruction set simulator is via a shared memory. Such a mechanism is advantageously easy to provide and manage.
The instruction set simulator may utilise the shared memory in a variety of different ways. Preferred ways in which the instruction set simulator may read the shared memory include the shared memory being one or more of:
a debug interface register of said processor core simulated by said instruction set simulator;
a memory location accessible to said processor core simulated by said instruction set simulator;
an interrupt signal store operable to latch interrupt signals applied to said processor core simulated by said instruction set simulator; and
a command memory operable to store commands to said instruction set simulator.
Whilst it will be appreciated that the test scenario parameters could be essentially random parameters seeking to explore a wide span of system state of the system being validated, in preferred embodiments the test scenario parameters are a user specified subset of stimulus signals. In practice, a user of the validation system will often be able to identify ranges of stimulus signals which are likely to be of particular interest and towards which the validation and verification efforts of a product development cycle should be directed. In this context the user may specify the subset of stimulus signals to be applied in a particular set and vary this between sets to explore what are envisaged to be potentially problematic situations.
One particular type of problematic situation which the present technique is well suited to investigate are ones aimed at simulating time critical real time operational scenarios involving the interaction of the processor core operating under program instruction control with various hardware devices. An example of such a situation would be whether or not a FIFO was being emptied quickly enough by an associated hardware device whilst it was being filled at its maximum rate by software executing on the processing core.
The present technique is also well suited to allow a user to specify a subset of stimulus signals which can be used to establish performance limitations (e.g. speed, bandwidth etc) of a system under test prior to the real system becoming available.
The advantages of the coordinated approach to test and validation provided by the present technique and the ability to include within this the processor core executing program instructions are particular evident in circumstances such as when an interaction between a first hardware device and the processor core is being simulated and then an interruption to this interaction is simulated as being generated by a second hardware device. The ability of this system as a whole to cope with such real life potentially problematic situations is important to accurately test whilst at a simulation and validation stage.
The interaction between a processor core executing program instructions and an associated hardware device is particular important to test in the circumstance of the program instructions forming part of a software driver for the hardware device in question. This type of interaction is particular well suited to the command driven type testing provided by this technique in that the test scenario manager may trigger particular device driver software to be run applying predetermined stimuli to an associated hardware device and checking for an appropriate response.
The communication provided by use of the shared memory advantageously provides a degree of independence from the particular simulation environment used for the hardware simulation (e.g. the hardware could be simulated in Verilog, VHDL or a mixture thereof).
Viewed from another aspect the present invention provides a method of simulating data processing operations performed by a data processing apparatus, said data processing apparatus including a processor core operable to execute program instructions and a plurality of hardware devices coupled to said processor core, said method comprising the steps of:
in response to one or more stimulus signals, simulating said plurality of said hardware devices and generating one or more response signals simulating a response of one or more of said plurality of hardware devices to said one or more stimulus signals if applied to one or more of said plurality of hardware devices;
in response to one or more stimulus signals, simulating execution of one or more program instructions by said processor core and generating one or more response signals simulating a response of said processor core if said one or more program instructions were executed by said processor core;
using a test scenario manager to generate said stimulus signals such that said test scenario manager acts as a master to command simulation operations to simulate both said plurality of hardware devices and said processor core in accordance with predetermined test scenario parameters.
The above, and other objects, features and advantages of this invention will be apparent from the following detailed description of illustrative embodiments which is to be read in connection with the accompanying drawings.
An instruction set simulator 18 is provided to simulate the operation of a processor core acting under control of program instructions. The instruction set simulator also has a test interface 20 via which it can receive stimulus signals from the test scenario manager 2 and through which it may return results.
The test scenario manager 2 acts as a master device in this arrangement whereby it issues commands (stimulus signals) to the various hardware devices 6, 8, 10 or the instruction set simulator 18. Details of the messaging mechanisms used for communicating between the test scenario manager 2 and various hardware devices 6, 8, 10 may be found in the copending U.S. patent application Ser. No. 09/994,023 referred to above and incorporated herein by reference. The present technique extends this communication to also encompass the instruction set simulator 18 via its test interface 20. Thus, the instruction set simulator may be commanded by the test scenario manager 2 to execute particular program instructions or sequences of program instructions as required. The instruction set simulator will act to generate appropriate response signals that would be generated by the processor core executing such program instructions and the instruction set simulator can be responsive to the state of one or more of the other hardware devices 6, 8, 10 within the system being simulated.
More particularly, FIG. 3 shows the proposed structure for the software XTI interface (external test interface). On the testbench side the XTSM 2 interfaces with an e language XVC (external verification controller) stub. This provides an XVC id which is then used to communicate through the software XTI to the nominated software XVC. The software XTI can be configured to use any one of the proposed communication technologies.
On the software side, the C++ half of the software XTI communicates with the software XVCs through a Task Manager.
The Task Manager's main responsibility is the scheduling of the software XVCs. This could be a simple pre-emptive scheduler with fixed time-slots and stacks for each of the XVCs. Interrupts and driver call-backs could be implemented as system events that can trigger other XVC actions.
XTI Command Interface
References [3] to [6] below give background information regarding each of the XTI communications channels that may be available to pass data from the hardware (RTL) environment into the software domain. Data is passed to and from the software domain using these channels. The data is formatted in such a way as to facilitate the following command set from and to the XTSM XTI interface. An XVC overview including the XTI can be found in ISB02-GENC-000365 (Reference [1]):
This XTI interface holds state and control information about the external model, and is responsible for receiving and executing action requests from the XTSM. This interface component initiates and monitors the execution progress of the current action, and informs the external model scenario manager that it is ready for the next action. Command packets received from the XTSM would have a format similar to that shown below:
1. Action Count | ||||
1a. Action ID | ||||
2a. Action Parameter Data Block | {close oversize brace} | Repeated for ea | ||
3a. Action Trigger Event ID | ||||
The action parameter data block above in field 2 a. of the above will take the form of a linked list of structures, each structure containing a scalar value of relevance to its associated Action ID to be processed. Return status information from the XTI is encoded in a single status structure:
1. |
||
2. |
||
3. |
||
4. Action Trigger Event ID | ||
5. Last Error code | ||
6. Message text | ||
The XTI is also responsible for receiving action synchronisation events, and generating status events such that the status structure can be read from the XTSM. Some typical events passed in and out of the software domain XTI are listed in the table below:
Event | Direction | Comments |
Trigger event ID fired | In | A system event has been detected, |
XTI to Check ID | ||
Stop Run | In | Suspend action processing |
Action Complete | Out | Current Action completed XTSM to |
read status | ||
Action Sequence | Out | Current list of Actions completed |
Complete | XTSM to read status | |
Device Error Detected | Out | I/O Error/Timeout detected XTSM to |
read status | ||
Message Waiting | Out | Annotation text available XTSM to |
read status | ||
- [1] Andy Nightingale “PrimeXsys Validation Architecture” ISB02-GENC-000365
- [2] Alistair Bruce, John Goodenough “Re-useable Hardware/Software Co-verification of IP Blocks” 14th IEEE ASIC/SOC Conference, September 2001.
- [3] RDI 1.5 Implementation: ARM document references for the remote debug interface (RDI) applications programming interface (API) are as follows:
- RDI-0003-CUST-ESPC-B RDI 1.5
- RDI-0005-CUST-ESPC-B RDI 1.5 terms and abbreviations
- RDI-0008-CUST-ESPC-B RDI 1.5/1.0 Protocol converter
- RDI-0013-CUST-ESPC-B RDI 1.5.1 changes from 1.5
- RDI-0014-CUST-ESPC-A Remote_A RDI usage
- RDI-0015-CUST-ESPC-A Multi-ICE RDI usage
- RDI-0016-CUST-ESPC-A ARMulator RDI usage
- RDI-0044-PRIV-ESPC-A01 RDI for NDI
- RDI-0047-PRIV-ESPC-A02 RDI Self describing modules
The basic XTI data passing mechanism for RDI would be to monitor the XTSM/XTI interface for commands and generate a SWI on the core for external communications events. Data is passed back from the task manager via another SWI which is handled by the RDI/XTI interface and passed back to the XTSM/XTI. The SWI handlers would manage the data passing between interfaces.
- [4] Tube/Internal Memory Implementation: As specified in ARM Document
- ARM DDI 0243A-01 ARM ADK Technical Reference Manual
Section 5.4 describes the basic TUBE model. This implementation would require an enhancement such that the TUBE register could be written to via an external source and hence by the software task manager itself. Another variant on the TUBE that would not require modification would be the Internal Memory (IntMem) block documented in section 5.2 of ARM DDI 0243A-01. Both mechanisms would access as bidirectional data passing registers for XTI communication.
- [5] VIC Implementation: The PrimeCell vectored interrupt controller (VIC) PL190 ARM document reference number is:
- ARM DDI 0181C ARM PrimeCell PL190 Technical Reference Guide
Essentially command sequences using this implementation would be presented via the 32 external interrupt lines from the XTSM/XTI and would be read and translated via the task manager. Being unidirectional however, feedback would be required by some other mechanism such as reference [4] above.
- [6] ARMulator plug-in implementation: ARM document references for the ARMulator applications programming interface (API) are as follows:
- ARM DAI 0032E Application note 32: The ARMulator
- appnote32_RevE.zip: Example ARMulator custom models
Using a similar mechanism to that of the RDI above, an ARMulator plug-in would be developed to interface to the XTSM/XTI and pass communications down through an ARMulator plug-in XTI to the software task manager. Communications would be driven by the use of SWI calls. The SWI handlers would manage the data passing between interfaces. The model used would be that of an operating system interface, documented in section 2.4 of the above application note document.
The above mentioned references are documents that are all publicly available, e.g. from ARM Limited, Cambridge, England.
The tick for each task is driven by the CValTools class that operates under a timer interrupt. The CValTools also provides a set of methods such as:
ptcc=peek_msg( )
post_msg(ptcc)
ptcc=get_msg( )
wait(ticks)
abort(error_level)
Each of the above commands will have use of appropriate structures.
Although illustrative embodiments of the invention have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various changes and modifications can be effected therein by one skilled in the art without departing from the scope and spirit of the invention as defined by the appended claims.
Claims (20)
1. Apparatus for simulating data processing operations performed by a data processing apparatus, said data processing apparatus including a processor core operable to execute program instructions and a plurality of hardware devices coupled to said processor core, said apparatus comprising:
a hardware simulator operable to simulate said plurality of said hardware devices, said hardware simulator being responsive to one or more stimulus signals to generate one or more response signals simulating a response of one or more of said plurality of hardware devices to said one or more stimulus signals if applied to one or more of said plurality of hardware devices;
an instruction set simulator operable to simulate said processor core, said instruction set simulator being responsive to one or more stimulus signals to simulate execution of one or more program instructions by said processor core and to generate one or more response signals simulating a response of said processor core if said one or more program instructions were executed by said processor core;
a test scenario manager coupled to said hardware simulator and said instruction set simulator and operable to generate said stimulus signals supplied to said hardware simulator and said instruction set simulator such that said test scenario manager acts as a master to command simulation operations performed by said hardware simulator and said instruction set simulator in accordance with predetermined test scenario parameters, wherein said test scenario parameters specify an interleaved sequence of stimulus signals to be applied by said hardware simulator and said instruction set simulator.
2. Apparatus as claimed in claim 1 , wherein test scenario manager controls said instruction set simulator by a software signal interface controller provided as software executed by said instruction set simulator.
3. Apparatus as claimed in claim 2 , wherein said software signal interface controller receives stimulus signals from said test scenario manager using a shared memory into which said test scenario manager may write data and from which said software signal interface controller may read data.
4. Apparatus as claimed in claim 3 , wherein said shared memory is read by said instruction set simulator as being one or more of:
a debug interface register of said processor core simulated by said instruction set simulator;
a memory location accessible to said processor core simulated by said instruction set simulator;
an interrupt signal store operable to latch interrupt signals applied to said processor core simulated by said instruction set simulator; and
a command memory operable to store commands to said instruction set simulator.
5. Apparatus as claimed in claim 1 , wherein said predetermined test scenario parameters are a user specified subset of stimulus signals.
6. Apparatus as claimed in claim 5 , wherein said user specified subset of stimulus signals are directed to simulate a time critical real time operational scenario.
7. Apparatus as claimed in claim 5 , wherein said user specified subset of stimulus signals are directed to establish performance limitations of said data processing apparatus.
8. Apparatus as claimed in claim 1 , wherein said test scenario manager is operable to stimulate an interruption of interaction between a first hardware device and said processor core executing program instruction relating to said first hardware device with an interrupt generated by a second hardware device.
9. Apparatus as claimed in claim 1 , wherein said program instructions being simulated by said instruction set simulator are at least part of a software driver for controlling a hardware device being simulated by said hardware simulator.
10. Apparatus as claimed in claim 3 , wherein communication of said test scenario manager with said hardware simulator via said shared memory provides independence of said instruction set simulator and said test scenario manager from a hardware simulation environment used by said hardware simulator.
11. A method of simulating data processing operations performed by a data processing apparatus, said data processing apparatus including a processor core operable to execute program instructions and a plurality of hardware devices coupled to said processor core, said method comprising the steps of:
in response to one or more stimulus signals, simulating said plurality of said hardware devices and generating one or more response signals simulating a response of one or more of said plurality of hardware devices to said one or more stimulus signals if applied to one or more of said plurality of hardware devices;
in response to one or more stimulus signals, simulating execution of one or more program instructions by said processor core and generating one or more response signals simulating a response of said processor core if said one or more program instructions were executed by said processor core;
using a test scenario manager to generate said stimulus signals such that said test scenario manager acts as a master to command simulation operations to simulate both said plurality of hardware devices and said processor core in accordance with predetermined test scenario parameters, wherein said test scenario parameters specify an interleaved sequence of stimulus signals to be applied in simulating said plurality of said hardware devices and simulating execution of one or more program instructions by said processor core.
12. Method as claimed in claim 11 , wherein test scenario manager controls said instruction set simulator by a software signal interface controller provided as software executed by an instruction set simulator which also simulates execution of said program instructions by said processor core.
13. Method as claimed in claim 12 , wherein said software signal interface controller receives stimulus signals from said test scenario manager using a shared memory into which said test scenario manager may write data and from which said software signal interface controller may read data.
14. Method as claimed in claim 13 , wherein said shared memory is read by said instruction set simulator as being one or more of:
a debug interface register of said processor core simulated by said instruction set simulator;
a memory location accessible to said processor core simulated by said instruction set simulator;
an interrupt signal store operable to latch interrupt signals applied to said processor core simulated by said instruction set simulator; and
a command memory operable to store commands to said instruction set simulator.
15. Method as claimed in claim 11 , wherein said predetermined test scenario parameters are a user specified subset of stimulus signals.
16. Method as claimed in claim 15 , wherein said user specified subset of stimulus signals are directed to simulate a time critical real time operational scenario.
17. Method as claimed in claim 15 , wherein said user specified subset of stimulus signals are directed to establish performance limitations of said data processing apparatus.
18. Method as claimed in claim 11 , wherein said test scenario manager is operable to stimulate an interruption of interaction between a first hardware device and said processor core executing program instruction relating to said first hardware device with an interrupt generated by a second hardware device.
19. Method as claimed in claim 11 , wherein said program instructions being simulated are at least part of a software driver for controlling a hardware device being simulated.
20. Method as claimed in claim 13 , wherein communication of said test scenario manager via said shared memory provides independence of said instruction set simulator and said test scenario manager from a hardware simulation environment used to simulate said plurality of hardware devices.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/118,427 US7099813B2 (en) | 2002-04-09 | 2002-04-09 | Simulating program instruction execution and hardware device operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/118,427 US7099813B2 (en) | 2002-04-09 | 2002-04-09 | Simulating program instruction execution and hardware device operation |
Publications (2)
Publication Number | Publication Date |
---|---|
US20030191616A1 US20030191616A1 (en) | 2003-10-09 |
US7099813B2 true US7099813B2 (en) | 2006-08-29 |
Family
ID=28674432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/118,427 Expired - Lifetime US7099813B2 (en) | 2002-04-09 | 2002-04-09 | Simulating program instruction execution and hardware device operation |
Country Status (1)
Country | Link |
---|---|
US (1) | US7099813B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8087021B1 (en) * | 2005-11-29 | 2011-12-27 | Oracle America, Inc. | Automated activity processing |
US20120266183A1 (en) * | 2011-04-16 | 2012-10-18 | Mark Henrik Sandstrom | Efficient Network and Memory Architecture for Multi-core Data Processing System |
US10061615B2 (en) | 2012-06-08 | 2018-08-28 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10133599B1 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10318353B2 (en) | 2011-07-15 | 2019-06-11 | Mark Henrik Sandstrom | Concurrent program execution optimization |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047176B2 (en) * | 2000-05-05 | 2006-05-16 | Fujitsu Limited | Method and system for hardware simulation |
US20110289373A1 (en) * | 2007-01-31 | 2011-11-24 | Klein Russell A | Electornic Design Emulation Display Tool |
CN107918585B (en) * | 2016-10-07 | 2023-05-02 | 福特全球技术公司 | Method and device for testing software program |
CN110825438B (en) * | 2018-08-10 | 2022-07-19 | 北京百度网讯科技有限公司 | Method and device for simulating data processing of artificial intelligence chip |
CN114706376B (en) * | 2022-06-06 | 2022-08-26 | 南京宏泰半导体科技有限公司 | Hardware control device and method based on software decoupling |
Citations (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5710934A (en) * | 1992-05-27 | 1998-01-20 | Sgs-Thomson Microelectronics, S.A. | Methods and test platforms for developing an application-specific integrated circuit |
US5991533A (en) * | 1994-04-12 | 1999-11-23 | Yokogawa Electric Corporation | Verification support system |
US6002861A (en) * | 1988-10-05 | 1999-12-14 | Quickturn Design Systems, Inc. | Method for performing simulation using a hardware emulation system |
US6006028A (en) * | 1993-05-18 | 1999-12-21 | International Business Machines Corporation | Test program generator |
US6134516A (en) * | 1997-05-02 | 2000-10-17 | Axis Systems, Inc. | Simulation server system and method |
US6295623B1 (en) * | 1999-01-29 | 2001-09-25 | Credence Systems Corporation | System for testing real and simulated versions of an integrated circuit |
US20010042226A1 (en) * | 2000-03-02 | 2001-11-15 | Jonathan Dzoba | System and method for automatically configuring a debug system |
US20020002698A1 (en) * | 2000-05-25 | 2002-01-03 | International Business Machines Corporation | Method for verifying the design of a microprocessor |
US20020019969A1 (en) * | 1999-10-29 | 2002-02-14 | Hellestrand Graham R | Hardware and software co-simulation including simulating the cache of a target processor |
US20020040288A1 (en) * | 2000-09-29 | 2002-04-04 | Hiroaki Yamoto | Method for design validation of complex IC |
US20020042897A1 (en) * | 2000-09-29 | 2002-04-11 | Tanisys Technology Inc. | Method and system for distributed testing of electronic devices |
US20020111783A1 (en) * | 2001-01-19 | 2002-08-15 | Kodosky Jeffrey L. | Simulation, measurement and/or control system and method with coordinated timing |
US20020133325A1 (en) * | 2001-02-09 | 2002-09-19 | Hoare Raymond R. | Discrete event simulator |
US20030131325A1 (en) * | 1999-11-30 | 2003-07-10 | Bridges2Silicon, Inc. | Method and user interface for debugging an electronic system |
US20030149962A1 (en) * | 2001-11-21 | 2003-08-07 | Willis John Christopher | Simulation of designs using programmable processors and electronically re-configurable logic arrays |
US20030182642A1 (en) * | 1999-11-30 | 2003-09-25 | Schubert Nils Endric | Hardware debugging in a hardware description language |
US20030200515A1 (en) * | 1997-10-20 | 2003-10-23 | 0-In Design Automation Inc. | Method for automatically generating checkers for finding functional defects in a description of circuit |
US6678645B1 (en) | 1999-10-28 | 2004-01-13 | Advantest Corp. | Method and apparatus for SoC design validation |
US20040025122A1 (en) * | 2000-11-28 | 2004-02-05 | Schubert Nils Endric | Hardware-based HDL code coverage and design analysis |
US20040250231A1 (en) * | 1999-02-05 | 2004-12-09 | Killian Earl A. | Automated processor generation system for designing a configurable processor and method for the same |
US20050076314A1 (en) * | 2001-02-02 | 2005-04-07 | Kabushiki Kaisha Toshiba | System LSI development apparatus and the method thereof for developing a system optimal to an application |
US20050100032A1 (en) * | 1999-12-14 | 2005-05-12 | Microsoft Corporation | System and method for simulating network connection characteristics |
US20050144577A1 (en) * | 2001-04-04 | 2005-06-30 | International Business Machines | Method and system for logic verification using mirror interface |
US20050143630A1 (en) * | 2001-05-11 | 2005-06-30 | Cogstate, Ltd | System and method of testing cognitive function |
US20050143968A9 (en) * | 1998-02-17 | 2005-06-30 | National Instruments Corporation | Reconfigurable measurement system utilizing a programmable hardware element and fixed hardware resources |
US20050149898A1 (en) * | 1998-10-14 | 2005-07-07 | Hakewill James R.H. | Method and apparatus for managing the configuration and functionality of a semiconductor design |
US20050193280A1 (en) * | 1999-11-30 | 2005-09-01 | Bridges2Silicon, Inc. | Design instrumentation circuitry |
-
2002
- 2002-04-09 US US10/118,427 patent/US7099813B2/en not_active Expired - Lifetime
Patent Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6002861A (en) * | 1988-10-05 | 1999-12-14 | Quickturn Design Systems, Inc. | Method for performing simulation using a hardware emulation system |
US5710934A (en) * | 1992-05-27 | 1998-01-20 | Sgs-Thomson Microelectronics, S.A. | Methods and test platforms for developing an application-specific integrated circuit |
US6006028A (en) * | 1993-05-18 | 1999-12-21 | International Business Machines Corporation | Test program generator |
US5991533A (en) * | 1994-04-12 | 1999-11-23 | Yokogawa Electric Corporation | Verification support system |
US6134516A (en) * | 1997-05-02 | 2000-10-17 | Axis Systems, Inc. | Simulation server system and method |
US20030200515A1 (en) * | 1997-10-20 | 2003-10-23 | 0-In Design Automation Inc. | Method for automatically generating checkers for finding functional defects in a description of circuit |
US20050143968A9 (en) * | 1998-02-17 | 2005-06-30 | National Instruments Corporation | Reconfigurable measurement system utilizing a programmable hardware element and fixed hardware resources |
US20050149898A1 (en) * | 1998-10-14 | 2005-07-07 | Hakewill James R.H. | Method and apparatus for managing the configuration and functionality of a semiconductor design |
US6295623B1 (en) * | 1999-01-29 | 2001-09-25 | Credence Systems Corporation | System for testing real and simulated versions of an integrated circuit |
US20040250231A1 (en) * | 1999-02-05 | 2004-12-09 | Killian Earl A. | Automated processor generation system for designing a configurable processor and method for the same |
US6678645B1 (en) | 1999-10-28 | 2004-01-13 | Advantest Corp. | Method and apparatus for SoC design validation |
US20020019969A1 (en) * | 1999-10-29 | 2002-02-14 | Hellestrand Graham R | Hardware and software co-simulation including simulating the cache of a target processor |
US20050125754A1 (en) * | 1999-11-30 | 2005-06-09 | Schubert Nils E. | Hardware debugging in a hardware description language |
US20030131325A1 (en) * | 1999-11-30 | 2003-07-10 | Bridges2Silicon, Inc. | Method and user interface for debugging an electronic system |
US20030182642A1 (en) * | 1999-11-30 | 2003-09-25 | Schubert Nils Endric | Hardware debugging in a hardware description language |
US20050193280A1 (en) * | 1999-11-30 | 2005-09-01 | Bridges2Silicon, Inc. | Design instrumentation circuitry |
US20050100032A1 (en) * | 1999-12-14 | 2005-05-12 | Microsoft Corporation | System and method for simulating network connection characteristics |
US20010042226A1 (en) * | 2000-03-02 | 2001-11-15 | Jonathan Dzoba | System and method for automatically configuring a debug system |
US20020002698A1 (en) * | 2000-05-25 | 2002-01-03 | International Business Machines Corporation | Method for verifying the design of a microprocessor |
US20020042897A1 (en) * | 2000-09-29 | 2002-04-11 | Tanisys Technology Inc. | Method and system for distributed testing of electronic devices |
US20020040288A1 (en) * | 2000-09-29 | 2002-04-04 | Hiroaki Yamoto | Method for design validation of complex IC |
US20040025122A1 (en) * | 2000-11-28 | 2004-02-05 | Schubert Nils Endric | Hardware-based HDL code coverage and design analysis |
US20020111783A1 (en) * | 2001-01-19 | 2002-08-15 | Kodosky Jeffrey L. | Simulation, measurement and/or control system and method with coordinated timing |
US20050076314A1 (en) * | 2001-02-02 | 2005-04-07 | Kabushiki Kaisha Toshiba | System LSI development apparatus and the method thereof for developing a system optimal to an application |
US20020133325A1 (en) * | 2001-02-09 | 2002-09-19 | Hoare Raymond R. | Discrete event simulator |
US20050144577A1 (en) * | 2001-04-04 | 2005-06-30 | International Business Machines | Method and system for logic verification using mirror interface |
US20050143630A1 (en) * | 2001-05-11 | 2005-06-30 | Cogstate, Ltd | System and method of testing cognitive function |
US20030149962A1 (en) * | 2001-11-21 | 2003-08-07 | Willis John Christopher | Simulation of designs using programmable processors and electronically re-configurable logic arrays |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8087021B1 (en) * | 2005-11-29 | 2011-12-27 | Oracle America, Inc. | Automated activity processing |
US20120266183A1 (en) * | 2011-04-16 | 2012-10-18 | Mark Henrik Sandstrom | Efficient Network and Memory Architecture for Multi-core Data Processing System |
US8490111B2 (en) * | 2011-04-16 | 2013-07-16 | Throughputer, Inc. | Efficient network and memory architecture for multi-core data processing system |
US10514953B2 (en) | 2011-07-15 | 2019-12-24 | Throughputer, Inc. | Systems and methods for managing resource allocation and concurrent program execution on an array of processor cores |
US10318353B2 (en) | 2011-07-15 | 2019-06-11 | Mark Henrik Sandstrom | Concurrent program execution optimization |
US10437644B2 (en) | 2011-11-04 | 2019-10-08 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US10310901B2 (en) | 2011-11-04 | 2019-06-04 | Mark Henrik Sandstrom | System and method for input data load adaptive parallel processing |
US10310902B2 (en) | 2011-11-04 | 2019-06-04 | Mark Henrik Sandstrom | System and method for input data load adaptive parallel processing |
US10133600B2 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10430242B2 (en) | 2011-11-04 | 2019-10-01 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US10133599B1 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US11150948B1 (en) | 2011-11-04 | 2021-10-19 | Throughputer, Inc. | Managing programmable logic-based processing unit allocation on a parallel data processing platform |
US10963306B2 (en) | 2011-11-04 | 2021-03-30 | Throughputer, Inc. | Managing resource sharing in a multi-core data processing fabric |
US10620998B2 (en) | 2011-11-04 | 2020-04-14 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US11928508B2 (en) | 2011-11-04 | 2024-03-12 | Throughputer, Inc. | Responding to application demand in a system that uses programmable logic components |
US10789099B1 (en) | 2011-11-04 | 2020-09-29 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US20210303354A1 (en) | 2011-11-04 | 2021-09-30 | Throughputer, Inc. | Managing resource sharing in a multi-core data processing fabric |
USRE47945E1 (en) | 2012-06-08 | 2020-04-14 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
USRE47677E1 (en) | 2012-06-08 | 2019-10-29 | Throughputer, Inc. | Prioritizing instances of programs for execution based on input data availability |
US10061615B2 (en) | 2012-06-08 | 2018-08-28 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10942778B2 (en) | 2012-11-23 | 2021-03-09 | Throughputer, Inc. | Concurrent program execution optimization |
US11036556B1 (en) | 2013-08-23 | 2021-06-15 | Throughputer, Inc. | Concurrent program execution optimization |
US11188388B2 (en) | 2013-08-23 | 2021-11-30 | Throughputer, Inc. | Concurrent program execution optimization |
US11347556B2 (en) | 2013-08-23 | 2022-05-31 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11385934B2 (en) | 2013-08-23 | 2022-07-12 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11500682B1 (en) | 2013-08-23 | 2022-11-15 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11687374B2 (en) | 2013-08-23 | 2023-06-27 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11816505B2 (en) | 2013-08-23 | 2023-11-14 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11915055B2 (en) | 2013-08-23 | 2024-02-27 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
Also Published As
Publication number | Publication date |
---|---|
US20030191616A1 (en) | 2003-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8644305B2 (en) | Method and system for modeling a bus for a system design incorporating one or more programmable processors | |
US6539522B1 (en) | Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs | |
US5546562A (en) | Method and apparatus to emulate VLSI circuits within a logic simulator | |
US6678625B1 (en) | Method and apparatus for a multipurpose configurable bus independent simulation bus functional model | |
US6188975B1 (en) | Programmatic use of software debugging to redirect hardware related operations to a hardware simulator | |
US8180620B2 (en) | Apparatus and method for performing hardware and software co-verification testing | |
US20090024381A1 (en) | Simulation device for co-verifying hardware and software | |
US9418181B2 (en) | Simulated input/output devices | |
US7979822B2 (en) | Apparatus and method for performing a sequence of verification tests to verify a design of a data processing system | |
US8504344B2 (en) | Interface between a verification environment and a hardware acceleration engine | |
US7099813B2 (en) | Simulating program instruction execution and hardware device operation | |
US20040088150A1 (en) | System and method for hardware and software co-verification | |
US7319947B1 (en) | Method and apparatus for performing distributed simulation utilizing a simulation backplane | |
US10409935B2 (en) | Modeling a bus for a system design incorporating one or more programmable processors | |
US7627462B2 (en) | Hardware simulation using a test scenario manager | |
US20050144436A1 (en) | Multitasking system level platform for HW/SW co-verification | |
US20020188432A1 (en) | Circuit model generation and circuit model testing | |
Hassoun et al. | A transaction-based unified architecture for simulation and emulation | |
US7447618B2 (en) | Method and system for ASIC simulation | |
AU2011217727B2 (en) | Co-design of a testbench and driver of a device | |
JPH08314760A (en) | Program development supporting device | |
US7110928B1 (en) | Apparatuses and methods for modeling shared bus systems | |
JP2000163456A (en) | Logic verifying method | |
WO2019021898A1 (en) | Development support device | |
JP2003177937A (en) | Apparatus and method for improvement of communication between emulator unit and host device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ARM LIMITED, UNITED KINGDOM Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NIGHTINGALE, ANDREW MARK;REEL/FRAME:012787/0454 Effective date: 20020402 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553) Year of fee payment: 12 |