Deterministic Concurrent Test Executor for Automated Test Equipment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Automated Test Equipment (ATE) systems face challenges in achieving fully deterministic concurrent execution due to interference from shared resources and limited CPU utilization, leading to non-deterministic test execution and inefficient resource arbitration.
Innovation Solution
A test program executor that asynchronously executes multiple test suites by transmitting asynchronous requests with call-specific call tree hierarchy addresses, allowing the subsystem to reorder operations deterministically, ensuring deterministic real-time execution despite non-deterministic timing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple test suites are executed in parallel on multi-core CPU, then CPU utilization and productivity are improved, but execution timing becomes non-deterministic and test reliability deteriorates
Solution Approach 1:
The system performs preliminary scheduling of test suites by assigning priority levels and execution orders before actual test execution. The scheduler pre-determines which test suites will run on which CPU cores and in what sequence, ensuring that even though execution is parallel, the timing and order are predetermined and controllable, thus maintaining reliability while achieving high CPU utilization.
Solution Approach 2:
The test execution system is segmented into independent test suites that can run in parallel on different CPU cores. Each test suite is treated as an independent unit with its own resource requirements and timing characteristics. This segmentation allows the system to distribute work across multiple cores for high productivity while managing each segment's execution separately to maintain overall determinism.
2Productivity
If shared resources are arbitrated dynamically during concurrent test execution, then resource utilization is improved, but arbitration overhead and execution time increase
Solution Approach 1:
Resource allocation and arbitration policies are predetermined before test execution begins. The scheduler assigns specific resources (CPU cores, I/O devices, memory) to test suites in advance based on their requirements and priorities. This preliminary allocation eliminates the need for dynamic arbitration during execution, reducing overhead and ensuring that resource utilization is optimized without time loss.
3Productivity
If test suites are executed asynchronously to improve productivity, then CPU utilization increases, but execution order becomes unpredictable and reliability decreases
Solution Approach 1:
The scheduler predetermined the execution order and timing of asynchronous test suites before execution begins. Each test suite is assigned a priority level and scheduled execution time slot. The system uses synchronization mechanisms and barriers to ensure that test suites complete in the predetermined order, maintaining reliability while allowing asynchronous execution for high productivity.
Solution Approach 2:
The system implements feedback mechanisms where the scheduler monitors the execution status of test suites and adjusts subsequent scheduling decisions based on actual performance and timing data. This feedback loop ensures that even with asynchronous execution, the overall execution order remains predictable and reliable, while maximizing CPU utilization through efficient resource allocation.
Data Source
AI summary
The invention concerns a test program executor for an Automated Test Equipment, wherein the test program executor is configured to execute a test flow having a plurality of test suites, wherein the test program executor is configured to asynchronously execute the plurality of test suites, wherein a test suite contains a call of a function of a subsystem, wherein the function of the subsystem is related with a subsystem operation that is to be executed by the subsystem, and to signal a call of a function of a subsystem by transmitting an asynchronous request to the subsystem, the asynchronous request having a call-specific call tree hierarchy address and the call-specific operation to be executed by the subsystem, and wherein the test program executor is further configured to determine an execution order of the subsystem operations, such that the execution order of the subsystem operations depends on their call-specific call tree hierarchy addresses.


