Claims Analysis
Total Claims: 38
Claim 1
Independent Claim
133 words
A machine implemented method for co-simulating a hardware-software system having memory, the method comprising the steps of: interleavingly simulating hardware operations and software execution for the hardware-software system on a machine for one or more co-simulation runs; and concurrently facilitating a single coherent view of the memory of the hardware-software system by said simulation of hardware operations and said simulation of software execution during said one or more co-simulation runs, such that selected portions of at least a first memory segment of the memory can be dynamically as well as statically configured/reconfigured for either unoptimized accesses or optimized accesses for all or selected portions of said one or more co-simulation runs, wherein unoptimized accesses are performed through simulated hardware operations, and optimized accesses are performed through an alternate route, without simulating hardware operations.
Claim 2
Dependent Claim
133 words
A machine implemented method for co-simulating a hardware-software system having memory, the method comprising the steps of: interleavingly simulating hardware operations and software execution for the hardware-software system on a machine for one or more co-simulation runs; and concurrently facilitating a single coherent view of the memory of the hardware-software system by said simulation of hardware operations and said simulation of software execution during said one or more co-simulation runs, such that selected portions of at least a first memory segment of the memory can be dynamically as well as statically configured/reconfigured for either unoptimized accesses or optimized accesses for all or selected portions of said one or more co-simulation runs, wherein unoptimized accesses are performed through simulated hardware operations, and optimized accesses are performed through an alternate route, without simulating hardware operations.
Claim 3
Dependent Claim
68 words
The machine implemented method of claim 1, wherein the method further comprises the step of statically configuring/reconfiguring said first memory segment on the machine for said one or more co-simulation runs, as a memory segment configured to be eligible to have selected portions dynamically as well as statically configured/re-configured for all or selected portions of said one or more co-simulation runs, for either unoptimized accesses or optimized accesses.
Claim 4
Dependent Claim
35 words
The machine implemented method of claim 2, wherein the method further comprises the step of statically configuring/reconfiguring on the machine for said one or more co-simulation runs, a second memory segment for unoptimized accesses only.
Claim 5
Dependent Claim
34 words
The machine implemented method of claim 2, wherein the method further comprises the step of statically configuring/reconfiguring on the machine said one or more co-simulation runs, a second memory segment for optimized accesses only.
Claim 6
Dependent Claim
45 words
The machine implemented method of claim 2, wherein the method further comprises the step of statically or dynamically configuring/reconfiguring on the machine for all or selected portions of said one or more co-simulation runs, a first portion of said first memory segment for unoptimized/optimized accesses.
Claim 7
Dependent Claim
89 words
The machine implemented method of claim 1, wherein said method further comprises the step of periodically suspending said simulation of software execution, switching from said simulation of software execution to said simulation of hardware operations, and subsequently returning to said simulation of software execution during said one or more co-simulation runs, such that simulation time can be dynamically as well as statically configured/reconfigured to be optimized, and yet said simulation of hardware operations is nevertheless ensured to advance in a desired manner relative to said simulation of software execution.
Claim 8
Dependent Claim
40 words
The machine implemented method of claim 6, wherein said method further comprises the step of configuring/reconfiguring on the machine for said one or more co-simulation runs, whether said interleaved simulations are to be performed with or without simulation time optimization.
Claim 9
Dependent Claim
44 words
The machine implemented method of claim 7, wherein said suspending, switching and subsequently returning step is performed at each instruction boundary, whenever a portion of a co-simulation run is configured/reconfigured on the machine with said interleaved simulations to be performed without simulation time optimization.
Claim 10
Dependent Claim
80 words
The machine implemented method as set forth in claim 7, wherein said suspending, switching and subsequently returning step includes suspending said software execution simulation and switching to said hardware operations simulation whenever an unoptimized memory access is encountered, and then returning to said software execution simulation when bus cycles for the unoptimized memory access encountered are completed, whenever a portion of a co-simulation run on the machine is configured/re-configured with said interleaved simulations to be performed with simulation time optimized.
Claim 11
Dependent Claim
78 words
The machine implemented method of claim 7, wherein said method further comprises the step of optionally configuring/reconfiguring on the machine for all or selected portions of said one or more co-simulation runs, to have said interleaved simulations performed with a software simulation clock cycle quantity, with or without an associated hardware simulation clock cycle quantity, whenever a portion of a co-simulation run is configured on the machine with said interleaved simulations to be performed with simulation time optimized.
Claim 12
Dependent Claim
302 words
The machine implemented method as set forth in claim 10, wherein said suspending, switching and subsequently returning step includes suspending said software execution simulation and switching to said hardware operations simulation whenever either an unoptimized memory access is encountered or software execution simulation has advanced by the software simulation clock cycle quantity, and then subsequently returning to said software execution simulation, when either bus cycles for an unoptimized memory access encountered are completed or hardware operations simulation has advanced by a default clock cycle quantity, or by a hardware simulation clock cycle quantity, whenever a portion of a co-simulation run on the machine is configured to have said interleaved simulations performed with simulation time optimization, in conjunction with a software simulation clock cycle quantity; the subsequent return to said software execution simulation occurs when bus cycles for an unoptimized memory access encountered are completed, if the suspending and switching occurred as a result of the unoptimized memory access was encountered, the subsequent return to said software execution simulation occurs after said hardware simulation has advanced by a default clock cycle quantity, if the suspending and switching occurred as a result of said software simulation having advanced by the software simulation clock cycle quantity, and the portion of the co-simulation run is not configured on the machine with said interleaved simulations to be performed with a hardware simulation clock cycle quantity; and the subsequent return to said software execution simulation occurs after said hardware simulation has advanced by a hardware simulation clock cycle quantity if the suspending and switching occurred as a result of said software simulation having advanced by the software simulation clock cycle quantity, and the portion of the co-simulation run is also configured on the machine with said interleaved simulations to be performed with the hardware simulation clock cycle quantity.
Claim 13
Dependent Claim
111 words
A machine implemented method for co-simulating a hardware-software system having memory, the method comprising the steps of: interleavingly simulating hardware operations and software execution for the hardware-software system on a machine for one or more co-simulation runs; and periodically suspending said simulation of software execution, switching from said simulation of software execution to said simulation of hardware operations, and subsequently returning to said simulation of software execution during said one or more co-simulation runs, such that simulation time can dynamically as well as statically configured/reconfigured to be optimized, and yet said simulation of hardware operations is nevertheless ensured to advance in a desired manner relative to said simulation of software execution.
Claim 14
Dependent Claim
111 words
A machine implemented method for co-simulating a hardware-software system having memory, the method comprising the steps of: interleavingly simulating hardware operations and software execution for the hardware-software system on a machine for one or more co-simulation runs; and periodically suspending said simulation of software execution, switching from said simulation of software execution to said simulation of hardware operations, and subsequently returning to said simulation of software execution during said one or more co-simulation runs, such that simulation time can dynamically as well as statically configured/reconfigured to be optimized, and yet said simulation of hardware operations is nevertheless ensured to advance in a desired manner relative to said simulation of software execution.
Claim 15
Dependent Claim
40 words
The machine implemented method of claim 12, wherein said method further comprises the step of configuring/reconfiguring on the machine for said one or more co-simulation runs, whether said interleaved simulations are to be performed with or without simulation time optimization.
Claim 16
Dependent Claim
44 words
The machine implemented method of claim 13, wherein said suspending, switching and subsequently returning step is performed at each instruction boundary, whenever a portion of a co-simulation run is configured/reconfigured on the machine with said interleaved simulations to be performed without simulation time optimization.
Claim 17
Dependent Claim
80 words
The machine implemented method as set forth in claim 13, wherein said suspending, switching and subsequently returning step includes suspending said software execution simulation and switching to said hardware operations simulation whenever an unoptimized memory access is encountered, and then returning to said software execution simulation when bus cycles for the unoptimized memory access encountered are completed, whenever a portion of a co-simulation run on the machine is configured/re-configured with said interleaved simulations to be performed with simulation time optimized.
Claim 18
Dependent Claim
78 words
The machine implemented method of claim 13, wherein said method further comprises the step of optionally configuring/reconfiguring on the machine for all or selected portions of said one or more co-simulation runs, to have said interleaved simulations performed with a software simulation clock cycle quantity, with or without an associated hardware simulation clock cycle quantity, whenever a portion of a co-simulation run is configured on the machine with said interleaved simulations to be performed with simulation time optimized.
Claim 19
Dependent Claim
302 words
The machine implemented method as set forth in claim 13, wherein said suspending, switching and subsequently returning step includes suspending said software execution simulation and switching to said hardware operations simulation whenever either an unoptimized memory access is encountered or software execution simulation has advanced by the software simulation clock cycle quantity, and then subsequently returning to said software execution simulation, when either bus cycles for an unoptimized memory access encountered are completed or hardware operations simulation has advanced by a default clock cycle quantity, or by a hardware simulation clock cycle quantity, whenever a portion of a co-simulation run on the machine is configured to have said interleaved simulations performed with simulation time optimization, in conjunction with a software simulation clock cycle quantity; the subsequent return to said software execution simulation occurs when bus cycles for an unoptimized memory access encountered are completed, if the suspending and switching occurred as a result of the unoptimized memory access was encountered, the subsequent return to said software execution simulation occurs after said hardware simulation has advanced by a default clock cycle quantity, if the suspending and switching occurred as a result of said software simulation having advanced by the software simulation clock cycle quantity, and the portion of the co-simulation run is not configured on the machine with said interleaved simulations to be performed with a hardware simulation clock cycle quantity; and the subsequent return to said software execution simulation occurs after said hardware simulation has advanced by a hardware simulation clock cycle quantity if the suspending and switching occurred as a result of said software simulation having advanced by the software simulation clock cycle quantity, and the portion of the co-simulation run is also configured on the machine with said interleaved simulations to be performed with the hardware simulation clock cycle quantity.
Claim 20
Independent Claim
170 words
An apparatus comprising: one or more execution units for executing programming instructions; one or more storage medium coupled to said one or more execution units, and having stored therein first and second sequences of programming instructions to be executed by said one or more execution units during operation to interleavingly simulate hardware operations and software execution for a hardware-software system having memory for one or more co-simulation runs; and third sequence of programming instructions to be executed by said one or more execution units during operation, to concurrently facilitate, during said interleaved simulations for one or more co-simulation runs, a single coherent view of the memory of the hardware-software system by said first and second sequence of programming instructions, such that selected portions of at least a first memory segment of the memory can be dynamically as well as statically configured/reconfigured for either unoptimized accesses or optimized accesses, wherein unoptimized accesses are performed through simulated hardware operations, and optimized accesses are performed through an alternate route, without simulating hardware operations.
Claim 21
Independent Claim
170 words
An apparatus comprising: one or more execution units for executing programming instructions; one or more storage medium coupled to said one or more execution units, and having stored therein first and second sequences of programming instructions to be executed by said one or more execution units during operation to interleavingly simulate hardware operations and software execution for a hardware-software system having memory for one or more co-simulation runs; and third sequence of programming instructions to be executed by said one or more execution units during operation, to concurrently facilitate, during said interleaved simulations for one or more co-simulation runs, a single coherent view of the memory of the hardware-software system by said first and second sequence of programming instructions, such that selected portions of at least a first memory segment of the memory can be dynamically as well as statically configured/reconfigured for either unoptimized accesses or optimized accesses, wherein unoptimized accesses are performed through simulated hardware operations, and optimized accesses are performed through an alternate route, without simulating hardware operations.
Claim 22
Dependent Claim
65 words
The apparatus of claim 18, wherein said third sequence of programming instructions include logic for statically configuring/reconfiguring said first memory segment for said one or more co-simulation runs, as a memory segment configured to be eligible to have selected portions dynamically as well as statically configured/re-configured for all or selected portions of said one or more co-simulation runs, for either unoptimized accesses or optimized accesses.
Claim 23
Dependent Claim
33 words
The apparatus of claim 19, wherein said third sequence of programming instructions further include logic for statically configuring/reconfiguring for said one or more co-simulation runs, a second memory segment for unoptimized accesses only.
Claim 24
Dependent Claim
33 words
The apparatus of claim 19, wherein said third sequence of programming instructions further include logic for statically configuring/reconfiguring for said one or more co-simulation runs, a second memory segment for optimized accesses only.
Claim 25
Dependent Claim
43 words
The apparatus of claim 19, wherein said third sequence of programming instructions further include logic for statically or dynamically configuring/reconfiguring for all or selected portions of said one or more co-simulation runs, a first portion of said first memory segment for unoptimized/optimized accesses.
Claim 26
Dependent Claim
89 words
The apparatus of claim 18, wherein said third sequence of programming instructions further include logic for periodically suspending said simulation of software execution, switching from said simulation of software execution to said simulation of hardware operations, and subsequently returning to said simulation of software execution during said one or more co-simulation runs, such that simulation time can dynamically as well as statically configured/reconfigured to be optimized, and yet said simulation of hardware operations is nevertheless ensured to advance in a desired manner relative to said simulation of software execution.
Claim 27
Dependent Claim
38 words
The apparatus of claim 23, wherein said third sequence of programming instructions further include logic for configuring/reconfiguring for said one or more co-simulation runs, whether said interleaved simulations are to be performed with or without simulation time optimization.
Claim 28
Dependent Claim
51 words
The apparatus of claim 24, wherein said third sequence of programming instructions include in particular logic for performing said suspending, switching and subsequently returning at each instruction boundary, whenever a portion of a co-simulation run is configured/reconfigured on the machine with said interleaved simulations to be performed without simulation time optimization.
Claim 29
Dependent Claim
81 words
The apparatus as set forth in claim 24, wherein said third sequence of programming instructions include in particular logic for suspending said software execution simulation and switching to said hardware operations simulation whenever an unoptimized memory access is encountered, and then returning to said software execution simulation when bus cycles for the unoptimized memory access encountered are completed, whenever a portion of a co-simulation run on the machine is configured/re-configured with said interleaved simulations to be performed with simulation time optimized.
Claim 30
Dependent Claim
79 words
The apparatus of claim 24, wherein said third sequence of programming instructions further includes logic for optionally configuring/reconfiguring on the machine for all or selected portions of said one or more co-simulation runs, to have said interleaved simulations performed with a software simulation clock cycle quantity, with or without an associated hardware simulation clock cycle quantity, whenever a portion of a co-simulation run is configured on the machine with said interleaved simulations to be performed with simulation time optimized.
Claim 31
Dependent Claim
306 words
The apparatus as set forth in claim 27, wherein said third sequence of programming instructions includes in particular logic for suspending said software execution simulation and switching to said hardware operations simulation whenever either an unoptimized memory access is encountered or software execution simulation has advanced by the software simulation clock cycle quantity, and then subsequently returning to said software execution simulation, when either bus cycles for an unoptimized memory access encountered are completed or hardware operations simulation has advanced by a default clock cycle quantity, or by a hardware simulation clock cycle quantity, whenever a portion of a co-simulation run on the machine is configured to have said interleaved simulations performed with simulation time optimization, in conjunction with a software simulation clock cycle quantity; the subsequent return to said software execution simulation is performed when bus cycles for an unoptimized memory access encountered are completed, if the suspending and switching occurred as a result of the unoptimized memory access was encountered, the subsequent return to said software execution simulation is performed after said hardware simulation has advanced by a default clock cycle quantity, if the suspending and switching occurred as a result of said software simulation having advanced by the software simulation clock cycle quantity, and the portion of the co-simulation run is not configured on the machine with said interleaved simulations to be performed with a hardware simulation clock cycle quantity; and the subsequent return to said software execution simulation is performed after said hardware simulation has advanced by a hardware simulation clock cycle quantity if the suspending and switching occurred as a result of said software simulation having advanced by the software simulation clock cycle quantity, and the portion of the co-simulation run is also configured on the machine with said interleaved simulations to be performed with the hardware simulation clock cycle quantity.
Claim 32
Independent Claim
160 words
An apparatus comprising: one or more execution units for executing programming instructions one or more storage medium coupled to said one or more execution units, and having stored therein first and second sequences of programming instructions to be executed by said one or more execution units during operation to interleavingly simulate hardware operations and software execution for a hardware-software system having memory for one or more co-simulation runs; and third sequence of programming instructions to be executed by said one or more execution units during operation, to periodically suspend said simulation of software execution, switch from said simulation of software execution to said simulation of hardware operations, and subsequently return to said simulation of software execution during said one or more co-simulation runs, such that simulation time can dynamically as well as statically configured/reconfigured to be optimized, and yet said simulation of hardware operations is nevertheless ensured to advance in a desired manner relative to said simulation of software execution.
Claim 33
Independent Claim
160 words
An apparatus comprising: one or more execution units for executing programming instructions one or more storage medium coupled to said one or more execution units, and having stored therein first and second sequences of programming instructions to be executed by said one or more execution units during operation to interleavingly simulate hardware operations and software execution for a hardware-software system having memory for one or more co-simulation runs; and third sequence of programming instructions to be executed by said one or more execution units during operation, to periodically suspend said simulation of software execution, switch from said simulation of software execution to said simulation of hardware operations, and subsequently return to said simulation of software execution during said one or more co-simulation runs, such that simulation time can dynamically as well as statically configured/reconfigured to be optimized, and yet said simulation of hardware operations is nevertheless ensured to advance in a desired manner relative to said simulation of software execution.
Claim 34
Dependent Claim
37 words
The apparatus of claim 29, wherein said third sequence of programming instructions include logic for configuring/reconfiguring for said one or more co-simulation runs, whether said interleaved simulations are to be performed with or without simulation time optimization.
Claim 35
Dependent Claim
50 words
The apparatus of claim 30, wherein said third sequence of programming instructions include in particular logic for said suspending, switching and subsequently returning at each instruction boundary, whenever a portion of a co-simulation run is configured/reconfigured on the machine with said interleaved simulations to be performed without simulation time optimization.
Claim 36
Dependent Claim
81 words
The apparatus as set forth in claim 30, wherein said third sequence of programming instructions include in particular logic for suspending said software execution simulation and switching to said hardware operations simulation whenever an unoptimized memory access is encountered, and then returning to said software execution simulation when bus cycles for the unoptimized memory access encountered are completed, whenever a portion of a co-simulation run on the machine is configured/re-configured with said interleaved simulations to be performed with simulation time optimized.
Claim 37
Dependent Claim
76 words
The apparatus of claim 30, wherein said third sequence of programming instructions further include logic for optionally configuring/reconfiguring for all or selected portions of said one or more co-simulation runs, to have said interleaved simulations performed with a software simulation clock cycle quantity, with or without an associated hardware simulation clock cycle quantity, whenever a portion of a co-simulation run is configured on the machine with said interleaved simulations to be performed with simulation time optimized.
Claim 38
Dependent Claim
304 words
The apparatus as set forth in claim 30, wherein said third sequence of programming instructions include logic for suspending said software execution simulation and switching to said hardware operations simulation whenever either an unoptimized memory access is encountered or software execution simulation has advanced by the software simulation clock cycle quantity, and then subsequently returning to said software execution simulation, when either bus cycles for an unoptimized memory access encountered are completed or hardware operations simulation has advanced by a default clock cycle quantity, or by a hardware simulation clock cycle quantity, whenever a portion of a co-simulation run on the machine is configured to have said interleaved simulations performed with simulation time optimization, in conjunction with a software simulation clock cycle quantity; the subsequent return to said software execution simulation is performed when bus cycles for an unoptimized memory access encountered are completed, if the suspending and switching occurred as a result of the unoptimized memory access was encountered, the subsequent return to said software execution simulation is performed after said hardware simulation has advanced by a default clock cycle quantity, if the suspending and switching occurred as a result of said software simulation having advanced by the software simulation clock cycle quantity, and the portion of the co-simulation run is not configured on the machine with said interleaved simulations to be performed with a hardware simulation clock cycle quantity; and the subsequent return to said software execution simulation is performed after said hardware simulation has advanced by a hardware simulation clock cycle quantity if the suspending and switching occurred as a result of said software simulation having advanced by the software simulation clock cycle quantity, and the portion of the co-simulation run is also configured on the machine with said interleaved simulations to be performed with the hardware simulation clock cycle quantity.