Hardware Software Co-Simulation Synchronization Facility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current co-simulation and emulation systems for hardware and software rely on inefficient polling mechanisms, leading to interruptions and delayed request servicing due to the significant speed difference between software and hardware simulators, which hampers performance and throughput.
Innovation Solution
The introduction of synchronization facilities and hardware breakpoints allows for a permanent clock signal operation mode, enabling the hardware simulator to run continuously without software intervention, with separate channels for software and hardware requests to manage interactions efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a polling mechanism is used to service requests between software simulator and hardware simulator, then requests can be serviced, but the hardware simulator is repeatedly interrupted and performance is reduced
Solution Approach 1:
The hardware simulator is enabled to autonomously service its own requests through self-service mechanisms. The hardware breakpoint detector automatically detects when requests are ready to be serviced without requiring external polling, and the hardware simulator can independently handle these requests. This eliminates the need for the software simulator to continuously poll the hardware simulator, allowing the hardware simulator to run continuously at full performance while still reliably servicing requests when they are ready.
2Productivity
If the software simulator runs several orders of magnitudes faster than the hardware accelerator, then software simulation efficiency is improved, but the hardware accelerator cannot keep up and creates bottlenecks
Solution Approach 1:
The system dynamically adapts the interaction节奏 between software simulator and hardware accelerator based on actual request readiness. Instead of forcing a fixed polling interval that mismatches the hardware accelerator's processing speed, the system uses hardware breakpoints to dynamically signal when the hardware accelerator is ready to service requests. This dynamic synchronization allows the software simulator to run at its high speed while the hardware accelerator processes requests at its own optimal throughput rate, eliminating bottlenecks.
3Reliability
If polling intervals are used to check for new commands, then request servicing can occur, but interruptions occur even when no requests are available
Solution Approach 1:
The polling mechanism is extracted and replaced with an event-driven approach using hardware breakpoints. Instead of continuously polling for requests that may not exist, the system extracts the request detection function into a hardware breakpoint detector that only activates when actual requests are ready. This eliminates unnecessary interruptions caused by polling during idle periods while maintaining reliable request detection through the hardware breakpoint mechanism.
4Productivity
If the hardware simulator runs continuously without software intervention, then performance is maximized, but request servicing may be delayed without synchronization
Solution Approach 1:
A feedback mechanism is implemented through hardware breakpoints that provide real-time information about request readiness to the software simulator. The hardware breakpoint detector continuously monitors the hardware simulator's state and provides feedback signals when requests are ready to be serviced. This feedback loop ensures that the hardware simulator can run continuously at maximum throughput while maintaining reliable request handling accuracy, as the software simulator is immediately notified and can service requests without delay when they become available.
Data Source
AI summary
The present invention relates to a system for performing a co-simulation and/or emulation of hardware and software. The system includes a hardware simulator with an integrated hardware model, a hardware and/or software environment for controlling the hardware simulator and performing a software simulation and/or a direct software application, at least one synchronization facility within the hardware model for indicating a request from the hardware and/or software environment, a receiver for setting the synchronization facility into a predetermined state, and a controller for switching the hardware simulator between a free-running state and a request-handling state.


