COMPUTER SYSTEM FOR AUTOMATIC TEST EQUIPMENT (ATE) USING ONE OR MORE DEDICATED PROCESSING CORES FOR ATE FUNCTIONS
20170276725 · 2017-09-28
Assignee
Inventors
Cpc classification
G06F11/263
PHYSICS
G06F11/2242
PHYSICS
G01R31/31723
PHYSICS
G01R31/2834
PHYSICS
G01R31/31907
PHYSICS
International classification
Abstract
A system and method for testing electronic circuit devices. The system has a central processing unit with a plurality of separate core processing units. The utility service program is initiated at the startup of the computer program which acts as an intermediary between user applications and the computer operating system. The utility service is responsive to an ATE execution engine to set an affinity for one or more processing cores for exclusive use for the ATE execution engine. The ATE execution engine communicates with the utility service to reserve one or more processing cores for execution of the program for testing electronic devices.
Claims
1. An automatic test equipment (ATE) computer system for testing electronic circuit devices, comprising: a central processing unit having a plurality of separate core processing units; a utility service program initiated at the start up of the computer system which acts as an intermediary between user applications and an operating system of the computer system, wherein the utility service is responsive to an ATE execution engine to set an affinity for one or more processing cores for exclusive use of the ATE execution engine in the central processing unit; and an ATE execution engine for communicating with the utility service program to reserve one or more processing cores for execution of a test program for electronic devices, using the reserved core or cores, wherein the ATE test program is executed on the reserved core or cores synchronously, apart from other computer operations which operate on remaining cores.
2. The system of claim 1, wherein the electronic circuit devices include circuits, circuit cards and electronic subsystems.
3. The computer system of claim 1, wherein the core or cores is masked in the computer operating system so that the reserved core or cores operate without any interference from the remaining cores.
4. The computer system of claim 1, including a test executive application which communicates with and verifies that the utility service is installed and running.
5. The computer system of claim 4, wherein the test executive verifies that the reserved core or cores were reserved successfully for the ATE test program.
6. The computer system of claim 3, wherein the utility service is operative to reset the mask and release the reserved core or cores to general use following termination of the ATE test program.
7. The computer system of claim 1, wherein the utility service maintains the time coherence of the ATE program without interference from application operating on cores other than the reserved core or cores.
8. The computer system of claim 1, wherein the temporal relationship of ATE signal is maintained during operation of the ATE application.
9. A computer based method for operating automatic test equipment for electronic devices under test, comprising the steps of: initiating the operation of a utility service which acts as an intermediary between user applications and an operating system of the computer system; reserving at least one core processing unit for the exclusive use of a test execution engine, such that the selected core is masked in the computer operating system; and testing electronic devices with the automatic test equipment using the reserved core.
10. The method of claim 9, wherein the temporal relationship of test signals from the ATE is uninterrupted by application processing in other core processing units.
11. The method of claim 9, including verifying that the selected core was successfully reserved.
12. The method of claim 9, including the step of resetting the affinity mask, releasing the reserved core to common use following termination of the ATE test processing.
13. The method of claim 9, wherein the electronic devices under test include electronic circuits, electronic circuit cards and electronic subsystems.
14. The method of claim 9, including the steps of verifying that the utility service is installed and operating.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
[0023] The following comprises a glossary of nomenclature used herein:
[0024] Automated Test Equipment—(ATE) an apparatus that performs tests on a device, such as circuits, circuit cards, automated subsystems and the like, using automation to quickly perform stimuli and acquisitions and evaluate the results of said stimuli and acquisitions. The use of ATE includes reference to Automated Test System (ATS) and other names for like systems that perform similar testing processes.
[0025] ATE Test Executive—Software that operates as the overall manager of component systems in an ATE. More specifically, the test executive enables the creation and configuration of test programs as well as controls the execution of said test programs.
[0026] ATE Execution Engine—The specific component or capability of an ATE Test Executive that executes predefined test programs.
[0027] Run-Time—Mode of an ATE Test Executive during which a Test Program is executing operations, often under the direction of an ATE Execution Engine.
[0028] Test Sequence—A series of operations that the user specifies for execution.
[0029] Instrument Operation—The logical instrument action, which may be a combination of physical instrument actions. That is, an operation may describe multiple actions which are performed together to accomplish a task.
[0030] Test Group—A test group consists of one or more test sequences.
[0031] Test Program—A set or collection of test groups.
[0032] Unit Under Test (UUT)—A device or component that is being tested such as a circuit card or assembly of electronic components. Sometimes also referred to as Device Under Test (DUT) or Equipment Under Test (EUT).
[0033] Service—a computer program that operates in the background conforming to specific interface rules and protocols of the operating system.
[0034] Several illustrative embodiments of the invention are described below. It will be recognized that in the manifestation of any such actual embodiment, application-specific conclusions based on developer specific goals such as those pertaining to system-related constructs and constraints, may vary from one implementation to another. While such a development effort might be complex and time-consuming, it would nevertheless be a routine undertaking for those of skill in the art having the benefit of this disclosure.
[0035] The word “exemplary” is used herein to mean “serving as an example, instance, or illustration”. Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. Those of skill in the art will recognize other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein. Furthermore, the claimed subject matter may be implemented as a method, system, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any non-transitory computer-readable device, or media.
[0036] The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here.
[0037] Embodiments of the present invention generally provide for coherent temporal alignment of ATE stimuli and/or acquisition signals and data.
[0038] For precise stimulus and acquisition, ATE systems performing parallel instrument operations require said operations to occur temporally aligned within a coherent time domain.
[0039] The embodiments described herein show an arrangement that efficiently solves this problem.
[0040] With reference to
[0041] The heart of the computer motherboard is the aforementioned CPU 120. Data transfer occurs between each core of the CPU 120 and other components such as RAM 130, ROM 140, mass storage devices 150, expansion slots 160, external ports 170, input devices 180, and output devices 190 using several busses on the motherboard, not herein specifically identified as these would be apparent to one of ordinary skill in the art, at data rates specific to the busses used. The motherboard 110 and the elements thereof described so far are the same as in any conventional multi-core system.
[0042] The principle of the invention and the improvement offered by the invention may be understood with reference to a standard multi-threaded program initiation sequence and program execution paradigm which will now be described.
[0043] A computer program consists of multiple computer instructions. The execution of each computer instruction occurs in a processing core in the computer. In a multi-core CPU 120 environment, the operating system 260 can select any one of the CPU cores, e.g., Core-0, Core-1, through Core-n, as the core on which any given computer instruction will execute.
[0044]
[0045]
[0046] The following description will relate to distinguishing features of the present invention.
[0047]
[0048] According to the invention, one or more of the cores, as shown in the exemplary embodiment (
[0049] Those of skill in the art recognize many ATE systems often restrict or limit the user in regards to permissions for accessing system level capabilities on the computer system, specifically low level native operating system capabilities such as CPU core reservation. One approach to solve this limitation is to create a service to act as an intermediary between the user application and the operating system thus abstracting the need for elevated permissions from the user application.
[0050] The Utility Service 710 is an embodiment of a service application that enables said abstraction. The utility service is started by the operating system upon initial boot of the computer system, operates in the background with sufficient privileges to perform native operating system methods 720, and continues to execute as long as the operating system is running or until manually disabled by the user.
[0051] The utility service 710 uses native operating system APIs 720 to interact with the operating system to verify that the environment is a multi-core system and to retrieve the system affinity mask. The retrieved system mask is used to set the affinity mask for one or more cores on a multi-core CPU 500 that will be reserved for the ATE execution engine process and the affinity mask for all other CPU cores 520 for general use. In one embodiment,
[0052] Consider in more detail the steps of
[0053] The ATE test executive application will start a separate process for the ATE execution engine 700. Once the execution engine process has been started 730, the engine initiates communication 732 with the utility service 710 using the service interface 750. The use of a service, the utility service 710 at run-time of a test program, is a novel approach for an ATE test executive for provisioning system level resources such as the CPU core affinity mask. From this initial communication, we confirm that the service is installed and running 734.
[0054] Before the ATE execution engine 700 begins execution of the test program steps, the engine will request reservation of one or more CPU cores 736 using the service interface 750. The engine uses the service to set the affinity of its own process.
[0055] The ATE execution engine now executes the test program 740 using the dedicated said cores. Without core reservation the execution of the instrument operations by the ATE execution engine would be managed by the CPU along with all other tasks, as illustrated in
[0056]
[0057] As a result of using one or more dedicated cores for the instrument operations, the instrument operations are executed synchronously with deterministic timing where the start time of each instrument operation is guaranteed to be exactly on the configured time interval.
[0058] Once all steps of the test program have been executed, the ATE execution engine 700 will reset the affinity 742 of the reserved one or more cores via the utility service 710 using the service interface 750. This cleanup process releases the reserved one or more cores and allows the ATE system to utilize all cores in the computer until such time that the ATE execution engine 700 repeats the reservation process for a subsequent test program execution.
[0059] All of the previous discussions have shown that the invention can run instrument operations within an ATE application on one or more dedicated processor cores and achieve the coherent time domain temporal signal alignment. To accomplish this task, the invention reserves one or more dedicated cores of the multi-core CPU 500 where the instrument operations will execute. One exemplary embodiment is depicted as 510 in
[0060] Thus it has been shown that the present invention provides a coherent time domain temporal aligned signal (stimulus and acquisition) capability on a multi-core CPU wherein one or more of the cores is isolated from other OS processes on the system and is used for the ATE test program engine. The invention reduces the cost of the ATE solution by reducing testing times and enabling improved analysis of UUT test results.
[0061] Although the invention has been described with reference to specific examples and drawings, it is understood that these examples and drawings should not be construed as limiting the application of the invention and that any changes and modifications are possible without departure from the scope of the attached patent claims.
[0062] Although a preferred embodiment of the invention has been disclosed for purposes of illustration, it should be understood that various changes, modifications and substitutions may be incorporated in the embodiment without departing from the spirit of the invention, which is defined by the claims which follow.