Software integration system, test device and software execution method
Through the software integration system designed with the front-end and back-end separation architecture, the high maintenance costs and management problems caused by the independence of the supporting software of the test equipment are solved, unified software management and coordination of complex application scenarios are realized, and performance and stability are improved.
Patent Information
- Application Number
- CN202310713334.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-15
- Publication Date
- 2024-12-27
AI Technical Summary
The existing testing equipment supporting software is independent and has high maintenance costs, so it cannot achieve unified management and is difficult to meet the needs of complex application scenarios.
Adopting the architectural design of front-end separation, the graphics interaction module is separated from the test service module, and the user interaction unit and the functional service unit run on the front-end respectively, and are released and run through plug-ins to achieve unified development and maintenance, reduce maintenance costs and improve performance and stability.
It realizes unified software maintenance and management, improves performance and stability, meets the coordination and operation management of complex application scenarios, and reduces maintenance costs.
Smart Images

Figure CN119201653A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to semiconductor testing technology and software technology, and in particular to a software integration system, testing equipment and software execution method. Background Art
[0002] Electronic devices usually need to integrate a large number of electronic chips. Before the chips are integrated into electronic devices, they usually need to go through wafer testing and final testing (FT, also known as packaging testing, finished product testing or chip testing) to determine the reliability and performance of the test object and separate good and bad products.
[0003] As we all know, the speed of chip replacement is very fast. As the functions of chips become more and more powerful, their complexity is getting higher and higher, the requirements for test equipment are also getting higher and higher, and the corresponding supporting software is also increasing to meet the development and debugging requirements of chips in various scenarios. Over the years, many software supporting test equipment have been derived. These software can be divided into development software, debugging software, and maintenance software according to the application scenario. Each category of software includes multiple software.
[0004] In the process of realizing the present disclosure, the inventor of the present disclosure discovered through research that, currently, the software supporting the test equipment is independent of each other, and different software may use completely different development languages and compilers. When problems arise, each software needs to be maintained separately, which results in high maintenance costs. In addition, these software cannot be managed in a unified manner, making it difficult to meet the needs of complex application scenarios that require the cooperation of multiple software. Summary of the invention
[0005] The embodiments of the present disclosure provide a software integration system, a test device, a software execution method, an electronic device and a storage medium, so as to at least partially solve the above-mentioned problem of software supporting the test device.
[0006] One aspect of an embodiment of the present disclosure provides a software integration system, wherein the software integration system and the software in the software integration system are respectively implemented based on a front-end and back-end separated architecture, the software integration system includes a front-end graphic interaction module and a back-end test service module, the software includes a front-end user interaction unit and a back-end functional service unit, the graphic interaction module is used to publish the user interaction unit in the form of a plug-in, and the test service module is used to run the functional service unit.
[0007] Another aspect of the embodiments of the present disclosure provides a software execution method, the software execution method is applied to a software integration system, the software integration system and the software in the software integration system are respectively implemented based on a front-end and back-end separated architecture, the software integration system includes a front-end graphic interaction module and a back-end test service module, the software includes a front-end user interaction unit and a back-end functional service unit, the graphic interaction module is used to publish the user interaction unit in the form of a plug-in, and the test service module is used to run the functional service unit; the method includes:
[0008] In response to receiving the start request, the graphic interaction module starts running the first user interaction unit corresponding to the start request;
[0009] The graphic interaction module sends a start instruction for starting a first functional service unit to the test service module, where the first functional service unit is a functional service unit included in the software where the first user interaction unit is located;
[0010] The test service module starts running the first functional service unit;
[0011] In response to receiving the execution instruction, the first user interaction unit generates a work instruction based on the execution instruction, and sends the work instruction to the first functional service unit;
[0012] The first functional service unit executes the work instruction.
[0013] Another aspect of the embodiments of the present disclosure provides a test device, including a host computer and at least one slave computer; the host computer includes the software integration system according to any embodiment of the present disclosure, and the software in the software integration system includes at least one test-related software for semiconductor testing;
[0014] The functional service unit in the test-related software is used to receive the work instructions sent by the user interaction unit in the test-related software, generate control instructions based on the work instructions, and send the control instructions to the target lower computer corresponding to the work instructions to control the target lower computer to perform corresponding operations.
[0015] In another aspect of the embodiments of the present disclosure, another software execution method is provided, the software execution method is applied to a test device, the test device includes a software integration system, the software integration system includes at least one test-related software for semiconductor testing, the software integration system and the test-related software are respectively implemented based on a front-end and back-end separated architecture, the software integration system includes a front-end graphic interaction module and a back-end test service module, the test-related software includes a front-end user interaction unit and a back-end functional service unit, the graphic interaction module is used to publish the user interaction unit in the form of a plug-in, and the test service module is used to run the functional service unit; the method includes:
[0016] In response to receiving the start request, the graphic interaction module starts running the first user interaction unit corresponding to the start request;
[0017] The graphic interaction module sends a start instruction for starting a first functional service unit to the test service module, where the first functional service unit is a functional service unit included in the software where the first user interaction unit is located;
[0018] The test service module starts running the first functional service unit;
[0019] In response to receiving the execution instruction, the first user interaction unit generates a work instruction based on the execution instruction, and sends the work instruction to the first functional service unit;
[0020] The first functional service unit executes the work instruction and controls the lower computer of the test equipment to perform corresponding operations.
[0021] Another aspect of the embodiments of the present disclosure provides an electronic device, including:
[0022] Memory for storing computer programs;
[0023] The processor is used to execute the computer program stored in the memory, and when the computer program is executed, the method described in any of the above embodiments of the present disclosure is implemented.
[0024] Another aspect of the embodiments of the present disclosure provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the method described in any of the above embodiments of the present disclosure is implemented.
[0025] The software integration system, test device, software execution method, electronic device, and storage medium provided by the embodiments of the present disclosure can achieve the following beneficial technical effects:
[0026] The software integration system is implemented based on a front-end and back-end separation architecture, including a front-end graphic interaction module and a back-end test service module; the software in the software integration system is also implemented based on a front-end and back-end separation architecture, including a front-end user interaction unit and a back-end functional service unit. The graphic interaction module in the software integration system is used to publish the user interaction unit in the software in the form of a plug-in, and the test service module in the software integration system is used to run the functional service unit in the software. Since the user interaction unit in the software is published in the form of a plug-in in the graphic interaction module in the software integration system, it can be implemented using a unified development language and compiler, thereby achieving unified maintenance and management of the software in the software integration system, which helps to reduce maintenance costs; secondly, each software is implemented based on a front-end and back-end separation architecture, user interaction is achieved through the front end, and the functional services of the software itself are achieved through the back end, which helps to improve the performance and stability of the software and improve the user experience; in addition, since the unified management of the software can be achieved through the software integration system, in complex application scenarios that require the cooperation of multiple software, the coordination and operation management of multiple software can be achieved through the software integration system, so that multiple software can cooperate with each other to meet the needs of complex application scenarios;
[0027] The above-mentioned software integration system can be set in the host computer of the test equipment, and the software in the software integration system includes at least one test-related software for semiconductor testing. After the functional service unit in the test-related software receives the work instruction sent by the corresponding user interaction unit, it generates a control instruction based on the work instruction and sends it to the target lower computer corresponding to the work instruction, so as to control the target lower computer to perform the corresponding operation. Therefore, the software integration system can be set in the host computer of the test equipment, and the target lower computer can be controlled to perform the corresponding operation through the interaction between the test-related software for semiconductor testing and the target lower computer, so as to complete the relevant matters of semiconductor testing.
[0028] The technical solution of the present disclosure is further described in detail below through the accompanying drawings and embodiments. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] The accompanying drawings, which constitute a part of the specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure.
[0030] The present disclosure may be more clearly understood from the following detailed description with reference to the accompanying drawings, in which:
[0031] Figure 1 A schematic diagram of the structure of an embodiment of the software integration system disclosed in the present invention;
[0032] Figure 2 A schematic diagram of the structure of an embodiment of a graphic interaction module in the software integration system disclosed in the present invention;
[0033] Figure 3 It is a structural diagram of another embodiment of the software integration system disclosed in the present invention;
[0034] Figure 4 It is a structural schematic diagram of an embodiment of the test device disclosed in the present invention;
[0035] Figure 5 It is a structural schematic diagram of another embodiment of the test device disclosed in the present invention;
[0036] Figure 6 It is a structural schematic diagram of another embodiment of the test device disclosed in the present invention;
[0037] Figure 7 A flowchart of an embodiment of the software execution method disclosed herein;
[0038] Figure 8 A flowchart of another embodiment of the software execution method disclosed herein;
[0039] Fig. 9 It is an interaction flow chart of an application embodiment between a graphic interaction module and a test service module in the software integration system disclosed in the present invention;
[0040] Fig.10 It is an interaction flow chart of an application embodiment between a graphic interaction module and a test service module in the software integration system disclosed in the present invention;
[0041] Fig.11 It is an interaction flow chart of an application embodiment between a graphic interaction module and a test service module in the software integration system disclosed in the present invention;
[0042] Fig.12 A flowchart of another embodiment of the software execution method disclosed herein;
[0043] Fig.13 A flowchart of another embodiment of the software execution method disclosed herein;
[0044] Fig.14 A flowchart of another embodiment of the software execution method disclosed herein;
[0045] Fig.15 An interactive flow chart of an embodiment of the software execution method disclosed herein;
[0046] Fig.16 The figure is a schematic diagram of the structure of an application embodiment of the electronic device disclosed in the present invention. DETAILED DESCRIPTION
[0047] Various exemplary embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. It should be noted that the relative arrangement of components and steps, numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present disclosure unless otherwise specifically stated.
[0048] Those skilled in the art can understand that the terms "first" and "second" in the embodiments of the present disclosure are only used to distinguish different steps, devices or modules, etc., and neither represent any specific technical meaning nor indicate the necessary logical order between them.
[0049] It should also be understood that in the embodiments of the present disclosure, “plurality” may refer to two or more than two, and “at least one” may refer to one, two, or more than two.
[0050] It should also be understood that any component, data or structure mentioned in the embodiments of the present disclosure can generally be understood as one or more, unless explicitly limited or otherwise indicated in the context.
[0051] In addition, the term "and / or" in the present disclosure is only a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in the present disclosure generally indicates that the associated objects before and after are in an "or" relationship.
[0052] It should also be understood that the description of the various embodiments in the present disclosure focuses on the differences between the various embodiments, and the same or similar aspects thereof can be referenced to each other, and for the sake of brevity, they will not be described one by one.
[0053] At the same time, it should be understood that for the convenience of description, the sizes of the various parts shown in the drawings are not drawn according to the actual proportional relationship.
[0054] The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the present disclosure, its application, or uses.
[0055] Technologies, methods, and equipment known to ordinary technicians in the relevant art may not be discussed in detail, but where appropriate, the technologies, methods, and equipment should be considered part of the specification.
[0056] It should be noted that like reference numerals and letters refer to similar items in the following figures, and therefore, once an item is defined in one figure, it need not be further discussed in subsequent figures.
[0057] The embodiments of the present disclosure can be applied to electronic devices such as terminal devices, computer systems, servers, etc., which can operate with many other general or special computing system environments or configurations. Examples of well-known terminal devices, computing systems, environments and / or configurations suitable for use with electronic devices such as terminal devices, computer systems, servers, etc. include, but are not limited to: personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, microprocessor-based systems, set-top boxes, programmable consumer electronics, network personal computers, small computer systems, large computer systems, and distributed cloud computing technology environments including any of the above systems, etc.
[0058] Electronic devices such as terminal devices, computer systems, servers, etc. can be described in the general context of computer system executable instructions (such as program modules) executed by computer systems. Generally, program modules can include routines, programs, object programs, components, logic, data structures, etc., which perform specific tasks or implement specific abstract data types. Computer systems / servers can be implemented in a distributed cloud computing environment, where tasks are performed by remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules can be located on local or remote computing system storage media including storage devices.
[0059] Figure 1 FIG. 1 is a schematic diagram of the structure of an embodiment of the software integration system disclosed in the present invention. Figure 1 As shown, the software integration system is implemented based on a front-end and back-end separation architecture, including a front-end graphic interaction module 102 and a back-end test service module (TestServer) 104. The software in the software integration system is also implemented based on a front-end and back-end separation architecture, and each software includes a front-end user interaction unit 106 and a back-end functional service unit 108. Among them, the graphic interaction module 102 is used to publish the user interaction unit 106 in each software in the form of a plug-in, and the test service module 104 is used to run the functional service unit 108 in each software.
[0060] In this embodiment, since the user interaction unit in the software is published in the form of a plug-in in the graphic interaction module in the software integration system, a unified development language and compiler can be used to implement it, thereby achieving unified maintenance and management of the software in the software integration system, which helps to reduce maintenance costs; secondly, each software is implemented based on a front-end and back-end separated architecture, with user interaction achieved through the front-end and the functional services of the software itself achieved through the back-end, which helps to improve the performance and stability of the software and helps to improve the user experience; in addition, since the software integration system can be used to uniformly manage the software therein, in complex application scenarios that require the cooperation of multiple software, the software integration system can be used to coordinate and manage the operation of multiple software so that multiple software can cooperate with each other to meet the needs of complex application scenarios.
[0061] Optionally, in the software integration system of any embodiment of the present disclosure, the graphic interaction module 102 may adopt a multi-process architecture, so that the graphic interaction module 102 may respectively run the user interaction units 106 of different software using independent processes.
[0062] Based on this embodiment, the graphic interaction module adopts a multi-process architecture, so that each user interaction unit running on the graphic interaction module is an independent process. Each user interaction unit can be enabled / disabled independently to avoid mutual influence between different software, which helps to improve the stability and security of the entire software integration system.
[0063] Figure 2 FIG. 1 is a schematic diagram of a structure of an embodiment of a graphic interaction module in the software integration system disclosed in the present invention. Figure 2 As shown, in some of the implementations, the graphic interaction module 102 may include: a main process, at least one rendering process, and at least one plug-in process. In this embodiment, the graphic interaction module 102 may use independent plug-in processes to run different user interaction units 106, and one user interaction unit 106 may be run through one plug-in process, and the plug-in processes of the user interaction units 106 running different software are independent of each other. The graphic interaction module 102 may use at least one rendering process to render the content for display to the user, and the rendering processes may be independent of each other, and each workbench corresponds to one rendering process.
[0064] Optionally, in some of the implementations, the plug-in process and the rendering process in the embodiments of the present disclosure may be isolated from each other, and the plug-in process may access the rendering process through the main process or inter-process communication. In a specific implementation, the graphic interaction module 102 may include only one main process, and interfaces related to creating a graphical user interface (GUI) are only called by the main process.
[0065] Based on this embodiment, the graphic interaction module includes a main process, at least one rendering process and at least one plug-in process. Different user interaction units are run using independent plug-in processes. Content for display to users is rendered using independent rendering processes. The plug-in process and the rendering process are isolated from each other, thereby achieving isolation of the user interface (UI) and business logic, and further improving the security and stability of the software integration system.
[0066] Optionally, in some of the implementations, the graphic interaction module 102 may include a code editor and a graphic interaction interface. The code editor is mainly used to implement the development, compilation, debugging, maintenance and other functions of the software code in the software integration system; the graphic interaction interface is mainly used to provide a software interface for interaction with the user. In a specific implementation, the user interaction unit 106 of the software in the software integration system can be specifically published in the graphic interaction interface. Those skilled in the art can understand that the functions of the graphic interaction module 102 or the units included therein are not limited to this, and other functions can also be implemented according to actual needs.
[0067] Optionally, in some of the implementations, the above-mentioned code editor can be implemented using the code editor Visual Studio Code (VS Code) developed by Microsoft.
[0068] VSCode is a simplified and efficient code editor that supports development operations such as debugging, task execution, and version management, and can provide a fast coding, compiling, and debugging tool. VSCode supports operating systems such as Windows, Linux, and macOS, as well as open source code, and can build software for various operating systems. Secondly, VSCode is built using Electron, which gives users the ability to interact with the underlying layer, and can provide interface interaction support based on Web technologies such as Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), and scripting language JavaScript (JS). In addition, VSCode also has some platform features, such as desktop notifications, which increase the convenience of user interaction.
[0069] VSCode adopts a multi-process architecture, which can include a main process and at least one rendering process. Based on the expansion capability of VSCode plug-ins, it supports the development of plug-ins with different functions on VSCode. At least one plug-in process can be extended to run the front-end plug-ins of various software. The plug-in processes run independently of each other and do not affect each other. Any plug-in can be disabled / enabled at any time, which helps to improve the stability of VSCode and thus help to achieve the security and stability of the software integration system.
[0070] Optionally, in some implementations, the test service module 104 may adopt a plug-in loading technology to start running the corresponding functional service unit 108 based on a start instruction of the user interaction unit 106 .
[0071] Based on this embodiment, in cooperation with each front-end plug-in, each functional service unit running in the test service module also adopts plug-in loading technology. When the front-end plug-in is enabled, the back-end functional service unit will be enabled. This can save memory resources and help improve resource utilization. It can also avoid unused functional service units running on the test service module and affecting the stability of the test service module, which helps to improve the stability of the test service module.
[0072] Optionally, in some of the implementations, the software in the software integration system may include test-related software for semiconductor testing, and the test-related software may include, but is not limited to, any one or more of the following categories of software: development software, debugging software, maintenance software, mass production software, etc. The embodiments of the present disclosure do not limit the software in the software integration system.
[0073] Optionally, in the embodiments of the present disclosure, the test-related software used for semiconductor testing may include but is not limited to any one or more of the following types of software: development software, debugging software, maintenance software, mass production software, and the like. In practical applications, development software may include but is not limited to engineering editing software, user code software, pattern editing software, format conversion software, and the like; debugging software may include but is not limited to FailList debugging software, pattern debugging software, waveform debugging software, shmoo software, board monitoring software, and the like; maintenance software may include but is not limited to calibration software, system maintenance software, system fault monitoring software, alarm software, and the like; mass production software may include but is not limited to mass production OI software, and the like. The embodiments of the present disclosure do not limit the specific types of test-related software used for semiconductor testing and the specific types of software that are used for semiconductor testing according to actual needs.
[0074] Based on this embodiment, unified management of test-related software used for semiconductor testing can be achieved through a software integration system. In complex application scenarios that require the cooperation of multiple test-related software (such as functional debugging, etc.), coordination and operation management of multiple test-related software can be achieved through a software integration system, so that multiple test-related software can cooperate with each other to meet the needs of complex application scenarios.
[0075] Optionally, in some of the implementations, the user interaction unit 106 is mainly used to provide a software interface for interacting with the user, for receiving various instructions (such as work instructions) sent by the user, and sending the received instructions to the corresponding functional service unit 108. The functional service unit 108 is a service that matches the user interaction unit of the front end, and is used to implement the functional service of the corresponding software, and based on the work instructions sent by the corresponding user interaction unit 106, controls the lower computer of the test equipment for semiconductor testing to perform corresponding operations, for example, controls the lower computer to perform specific operations such as initialization, loading test projects, executing test processes, and returning test results, and can also update the status of the test equipment to synchronize the status of the test equipment with other software.
[0076] In a specific implementation, the user interaction unit and the corresponding functional service unit can communicate using the Remote Procedure Call (RPC) protocol, so that the user interaction unit does not need to explicitly distinguish between local calls and remote calls, so as to ensure that the communication between the user interaction unit and the corresponding functional service unit becomes more convenient and efficient while providing concise semantics similar to local calls as much as possible.
[0077] Based on this embodiment, when setting up test-related software for semiconductor testing in a software integration system, various instructions sent by the user can be received through the user interaction unit and sent to the corresponding functional service unit, and the functional service unit controls the lower computer of the test equipment used for semiconductor testing to perform corresponding operations, thereby realizing interaction with the lower computer based on the front-end and back-end separated architecture provided by the embodiment of the present disclosure, controlling the lower computer to perform corresponding operations, and realizing relevant operations of the semiconductor testing application scenario.
[0078] Figure 3 FIG. 1 is a schematic diagram of another embodiment of the software integration system disclosed in the present invention. Figure 3 As shown, in Figure 1On the basis of the illustrated embodiment, in this implementation, the test service module 104 may further include a test service management unit (TestServerManager) 1042, and the test service management unit 1042 is used to: in response to receiving a start instruction sent by the graphic interaction module 102 after starting to run the first user interaction unit 106, run the first functional service unit 108, wherein the first user interaction unit 106 is at least one user interaction unit 106 released in the graphic interaction module 102, and the first functional service unit 108 is at least one functional service unit 108 corresponding to the first user interaction unit 106 (i.e., in the software); in response to receiving an exit instruction sent by the graphic interaction module 102 after terminating the running of the first user interaction unit 106, end the running of the first functional service unit 108.
[0079] Based on this embodiment, a test service management unit can be set in the test service module, and after the first user interaction unit in the graphic interaction module starts running, the first functional service unit can be started and run. After the first user interaction unit ends running, the first functional service unit can be ended. The start / deactivation management of the functional service units of each software can be implemented through the test service management unit. This can save memory resources and help improve resource utilization. It can also avoid unused functional service units from running on the test service module and affecting the stability of the test service module, which helps to improve the stability of the test service module.
[0080] Optionally, in some of the implementations, the test service management unit 1042 can also be used to: in the process of the first functional service unit 108 controlling the lower computer to perform a corresponding operation, in response to receiving status information of the test device returned by the lower computer during the process of performing the corresponding operation, update the status of the test device based on the most recently received status information.
[0081] In a specific implementation, a state table may be used to record the state of the test device, wherein the state of the test device may include, but is not limited to, idle, initialization, loading a test project, opening a batch, testing, closing a batch, unloading a test project, etc., which is not limited in the embodiment of the present disclosure. By updating the state of the test device recorded in the state table, the current state of the test device may be known so as to synchronize the state of the test device with other software.
[0082] Optionally, in some of the implementations, the test service management unit 1042 may also be used to: in response to receiving a work instruction sent by the second user interaction unit 106, query the current state of the test device, and confirm whether the current state of the test device supports the operation corresponding to the work instruction sent by the second user interaction unit 106, wherein the second user interaction unit 106 is at least one user interaction unit published in the graphic interaction module 102, and the second user interaction unit and the first user interaction unit may be the same user interaction unit or may be different user interaction units, and the embodiments of the present disclosure do not limit this; in response to the current state of the test device supporting the operation corresponding to the work instruction sent by the second user interaction unit 106, the second function service unit 108 controls the lower computer to perform the corresponding operation based on the work instruction sent by the second user interaction unit 106, and the second function service unit 108 is the function service unit 108 corresponding to the second user interaction unit 106; in response to the current state of the test device not supporting the operation corresponding to the work instruction sent by the second user interaction unit 106, return a response message to the second user interaction unit 106 indicating that the current state of the test device does not support the work instruction sent by the second user interaction unit 106.
[0083] For example, if the work instruction sent by the second user interaction unit 106 received by the test service management unit 1042 is a work instruction for initializing the lower computer, and the current state of the test device is testing, the corresponding operation of initializing the lower computer is not supported; if the work instruction sent by the second user interaction unit 106 received by the test service management unit 1042 is a work instruction for chip testing, and the current state of the test device is initialization, since the chip test cannot be directly executed in the initialization state and the test project needs to be loaded first, the corresponding operation of chip testing is not supported. For another example, if the work instruction sent by the second user interaction unit 106 received by the test service management unit 1042 is a work instruction for initializing the lower computer, and the current state of the test device is idle, the corresponding operation of initializing the lower computer is supported; if the work instruction sent by the second user interaction unit 106 received by the test service management unit 1042 is a work instruction for loading the test project, and the current state of the test device is initialization completed, the corresponding operation of chip testing is supported.
[0084] In a specific implementation, a correspondence table can be used to record the correspondence between the operations supported by each state of the test device and / or corresponding to the work instruction. Therefore, after the test service management unit receives the work instruction sent by the second user interaction unit, the current state of the test device is queried from the state table, and then, based on the correspondence table, it is determined whether the current state of the test device supports the operation corresponding to the work instruction.
[0085] In addition, the first software identifier (ID) of the current control lower computer to perform the corresponding operation can also be recorded in the state table. When the current state of the test device does not support the operation corresponding to the work instruction sent by the second user interaction unit, after returning the response message that the current state of the test device does not support the work instruction sent by the second user interaction unit to the second user interaction unit, the second software identifier of the software where the second user interaction unit is located can be recorded in the state table, and the state table can be monitored. When the current state of the test device can support the operation corresponding to the work instruction sent by the second user interaction unit, the lower computer can be directly controlled to perform the corresponding operation corresponding to the work instruction, or a reminder message that the current state of the test device can support the operation corresponding to the work instruction sent by the second user interaction unit can be sent to the second user interaction unit, and the user determines whether to continue to instruct the work instruction. Among them, each software ID is used to uniquely identify a software, for example, it can be a software name, number, etc., and the software ID can be obtained from the control instruction, that is, the instructions sent by the user interaction unit and the functional service unit of each software can carry the software ID of the software. The embodiment of the present disclosure does not limit this.
[0086] Based on this embodiment, the state management of the test device can be implemented through the test service management unit to coordinate the control operations of various software on the lower computer in the test device.
[0087] Optionally, in the software integration system of any embodiment of the present disclosure, the graphics interaction module 102 may include a debugging protocol service unit (not shown in the figure), which is used to provide protocol services required for debugging the graphics interaction module, and can support various debugging protocols, such as the Debugger Adaptor Protocol (DAP), and support remote debugging of user code executed on the lower computer; in addition, the running function of the storage test (MemoryPattern, MPAT) class assembly language instructions can be provided. By running the MemoryPattern class assembly language instructions, a series of data read / written to all addresses of the memory can be calculated.
[0088] Optionally, in the software integration system of any embodiment of the present disclosure, the test service module 104 may also include a session recording service unit (DataLog, not shown in the figure), which is used to register the logs to be recorded (such as test process data, etc.) to a publish-subscribe message system (such as KafkaServer). After receiving the data stream related to the log pushed by the lower computer during the test process, the publish-subscribe message system sends the data stream as a log message to the session recording service unit. The session recording service unit receives the log message and can output it to a file in a preset format, such as a standard test data file (STDF) format or a text file (TXT) format, so as to be stored or written into a database and other processing.
[0089] Optionally, in the software integration system of any embodiment of the present disclosure, the test service module 104 may also include a project management service unit (ProjectManager, not shown in the figure), which is mainly used for: obtaining test project file (TestClass) information, editing string description (Spec) information, project verification, and providing verification functions for boundary scanning software (such as Shmoo software) and hardware unit debugging tools (such as Status). The hardware unit in the embodiment of the present disclosure may include, but is not limited to: boards or other forms of hardware units that support various functions and have various physical characteristics, and the embodiment of the present disclosure does not limit this.
[0090] Based on the embodiments of the present disclosure, in some specific applications, the test service module 104 can implement functions including but not limited to loading back-end services corresponding to various front-end plug-ins, obtaining the test engine according to the device under test (DUT) number, and obtaining version information of various software according to the call of the user interaction unit in the graphic interaction module 102.
[0091] Figure 4 FIG. 1 is a schematic diagram of a structure of an embodiment of the test device disclosed in the present invention. The test device of the embodiment of the present invention can be used for semiconductor testing, such as wafer testing, chip testing, etc. Figure 4 As shown, the test equipment of this embodiment includes a host computer (System Server) 10 and at least one slave computer (SateliteServer, also called a test head) 20. The host computer 10 includes the software integration system of any of the above embodiments of the present disclosure, and the software in the software integration system includes at least one test-related software for semiconductor testing.
[0092] Among them, the function service unit 108 in the test-related software is used to receive the work instruction sent by the user interaction unit 106 in the test-related software, generate a control instruction based on the work instruction, and send the control instruction to the target lower computer 20 corresponding to the work instruction to control the target lower computer 20 to perform the corresponding operation. In a specific implementation, the lower computer corresponding to the channel list (channelmap, including at least one channel ID) carried in the work instruction can be determined as the target lower computer according to the correspondence between the preset channel ID and the lower computer ID, wherein each channel ID is used to uniquely identify a channel on the hardware unit, and each lower computer ID is used to uniquely identify a lower computer, and the embodiment of the present disclosure does not limit this.
[0093] Based on this embodiment, by setting up a software integration system in the upper computer of the test equipment, the development, debugging and maintenance of various test-related software for semiconductor testing can be realized through the software integration system. The test service module is located between the graphic interaction module and the lower computer, runs as an independent process, provides services for the graphic interaction module, and controls the target lower computer to perform corresponding operations through interaction with the target lower computer, thereby completing related matters of semiconductor testing.
[0094] Figure 5 FIG. 1 is a schematic diagram of another embodiment of the test device disclosed in the present invention. Figure 5 As shown, in Figure 4 On the basis of the embodiment shown, in this embodiment, the lower computer 20 may include a test engine (TestEngine) 202, a test host (TestHost) 204 and a hardware driver module 206, and the hardware driver module 206 includes a driver unit of at least one hardware unit. The hardware units in the embodiment of the present disclosure may include, but are not limited to: boards or other forms of hardware units that support various functions and have various physical characteristics, and the embodiment of the present disclosure does not limit this. Among them:
[0095] The test engine 202 is used to control the target hardware unit to execute the operation corresponding to the control instruction through the target driver unit in the hardware driver module 206 when the control instruction is a first-class instruction; and to call the test host 204 to execute the control instruction when the control instruction is a second-class instruction. The target driver unit is the driver unit of the target hardware unit in the hardware driver module 206 corresponding to the above-mentioned working instruction.
[0096] In a specific implementation, the corresponding relationship between the channel ID, the test engine ID (corresponding to the lower computer ID, each lower computer includes a test engine) and the hardware unit ID can be preset, wherein each hardware unit ID is used to uniquely identify a hardware unit (such as a board), each hardware unit can provide multiple channels, and the target lower computer corresponding to the channel list carried in the work instruction and the hardware unit on the target lower computer (i.e., the target hardware unit) are determined. This operation can be performed by the test service module, and the hardware unit ID of the target hardware unit is carried by the control instruction, and the embodiment of the present disclosure does not limit this.
[0097] Optionally, in some of the implementations, the first category of instructions in the embodiments of the present disclosure may include, but are not limited to, various types of instructions sent by debugging software, maintenance software, and the like. The second category of instructions in the embodiments of the present disclosure may include, but are not limited to, various types of instructions sent by development software, mass production software, and the like. The embodiments of the present disclosure do not limit the types of software involved in the first category of instructions and the second category of instructions and the types of instructions sent.
[0098] The test host 204 is used to control the target hardware unit to execute the operation corresponding to the control instruction through the target driver unit in the hardware driver module 206 according to the call of the test engine 202.
[0099] Based on the embodiments of the present disclosure, the host computer of the test equipment includes a software integration system, a lower computer test engine, a test host and a hardware driver module. The functional service unit in the test-related software can send control instructions to the test engine in the lower computer. The test engine controls the target hardware unit to execute the operation corresponding to the control instruction directly through the target driver unit in the hardware driver module according to the specific type of the control instruction, or calls the test host, and the test host controls the target hardware unit to execute the operation corresponding to the control instruction through the target driver unit in the hardware driver module, thereby completing the relevant matters of semiconductor testing.
[0100] In a specific implementation, the test engine can be responsible for managing the test host, receiving instructions from the host computer, and receiving access to the hardware unit from the test host process and the test engine process, and is responsible for monitoring and managing the life cycle of the test host process. The test host process is a host process used to execute user code (i.e., user test code used for testing), which is responsible for loading, managing and executing user code, and executing user code according to the test process specified by the user.
[0101] In the specific implementation, the RPC protocol can be used for communication between the graphic interaction module and the test service module. In this case, the graphic interaction module and the test service module can serve as the RPC client (RPC Client) and the RPC server (RPC Server) respectively. The test service module and the test engine can communicate with each other using the framework gRPC based on the RPC protocol implementation. In this case, the test service module and the test engine can serve as the gRPC client (gRPC Client) and the gRPC server (gRPC Server) respectively. gRPC provides a simple way to define services, and the client can make full use of the Hyper Text Transfer Protocol (HTTP) and dual stream (2stream) features, which helps save bandwidth, reduce the number of connections of the Transmission Control Protocol (TCP), save CPU usage, etc.
[0102] Figure 6 FIG. 1 is a schematic diagram of the structure of another embodiment of the test device disclosed in the present invention. Figure 6 As shown, in Figure 5 On the basis of the illustrated embodiment, in this embodiment, the lower computer 20 may further include a driver adapter 208. Accordingly, in this embodiment, the test host 204 is specifically used to forward the control instruction to the driver adapter 208, and the control instruction may include the hardware unit ID of the target hardware unit. The driver adapter 208 is used to determine the target driver unit corresponding to the control instruction. For example, the target driver unit ID corresponding to the hardware unit ID in the control instruction can be determined based on the corresponding relationship between the hardware unit ID and the driver unit ID, and the control instruction is forwarded to the target driver unit. In a specific implementation, the driver adapter 208 can, for example, determine the target driver unit ID corresponding to the hardware unit ID in the control instruction based on the corresponding relationship between the hardware unit ID and the driver unit ID, thereby determining the corresponding target driver unit. The target driver unit is used to control the target hardware unit to perform the operation corresponding to the control instruction.
[0103] In a specific implementation, the driver adapter 208 can be set separately, or can be used as a dynamic link library (DLL) to be called by the test host 204 and the test engine 202 when needed, or can be set as a DLL in the test host 204 and the test engine 202 respectively, and called by the test host 204 and the test engine 202 when needed. The specific implementation form and location of the driver adapter 208 in the embodiment of the present disclosure are not limited.
[0104] Since the DUT needs to be tested for corresponding functions through different hardware units, and different hardware units have different driver interfaces, the lower computer needs to call the hardware driver through different driver interfaces. In the embodiment of the present disclosure, the driver units of all hardware units installed on each upper computer are uniformly encapsulated in the hardware driver module, and the driver adapter provides a unified driver interface to determine the target driver unit corresponding to each control instruction, thereby realizing unified calling of the driver unit.
[0105] Optionally, in some implementations, the function service unit 108 is specifically used to receive a work instruction, generate a control instruction based on the work instruction, determine the target test engine 202 corresponding to the work instruction, and send the control instruction to the target test engine 202, which is a test engine in a target lower computer 20 in at least one lower computer 20 determined based on the work instruction. Accordingly, in this embodiment, the target test engine 202 is used to control the target hardware unit to perform the operation corresponding to the control instruction through the target driver unit in the target hardware driver module when the control instruction is a first-class instruction; and to call the target test host 204 to execute the control instruction when the control instruction is a second-class instruction, which is a test host in the target lower computer 20. The target test host 204 is used to control the target hardware unit to perform the operation corresponding to the control instruction through the target driver unit in the target hardware driver module 206, which is a hardware driver module in the target lower computer 20.
[0106] Based on this embodiment, the function service unit calls the target test engine to control the lower computer to implement the function of the software where the function service unit is located.
[0107] Figure 7 The flowchart of an embodiment of the software execution method of the present disclosure. The software execution method of this embodiment can be applied to the software integration system of any of the above embodiments of the present disclosure, and the software integration system and the software in the software integration system are respectively implemented based on the architecture of front-end and back-end separation. Among them, the software integration system includes a front-end graphic interaction module and a back-end test service module, and the software in the software integration system includes a front-end user interaction unit and a back-end functional service unit, wherein the graphic interaction module is used to publish the user interaction unit in the form of a plug-in, and the test service module is used to run the functional service unit. Figure 7 As shown, the software execution method of this embodiment includes:
[0108] 302. In response to receiving a start request, the graphic interaction module starts running a first user interaction unit corresponding to the start request.
[0109] 304. The graphic interaction module sends a start instruction for starting the first functional service unit to the test service module.
[0110] The first functional service unit is a functional service unit included in the software where the first user interaction unit is located.
[0111] 306. The test service module starts running the first functional service unit.
[0112] 308. In response to receiving the execution instruction, the first user interaction unit generates a work instruction based on the execution instruction, and sends the work instruction to the first functional service unit.
[0113] 310. The first functional service unit executes the work instruction.
[0114] In this embodiment, since the user interaction unit in the software is published in the form of a plug-in in the graphic interaction module in the software integration system, a unified development language and compiler can be used to implement it, thereby achieving unified maintenance and management of the software in the software integration system, which helps to reduce maintenance costs; secondly, each software is implemented based on a front-end and back-end separated architecture, with user interaction achieved through the front-end and the functional services of the software itself achieved through the back-end, which helps to improve the performance and stability of the software and helps to improve the user experience; in addition, since the software integration system can be used to uniformly manage the software therein, in complex application scenarios that require the cooperation of multiple software, the software integration system can be used to coordinate and manage the operation of multiple software so that multiple software can cooperate with each other to meet the needs of complex application scenarios.
[0115] Optionally, in some implementations, in the above operation 302, in response to receiving a start request, the main process in the graphic interaction module may start a plug-in process, and run the first user interaction unit corresponding to the start request through the plug-in process.
[0116] Figure 8 FIG. 1 is a flowchart of another embodiment of the software execution method of the present disclosure. The software execution method of this embodiment can be applied to the software integration system of any of the above embodiments of the present disclosure. Figure 8 As shown, the software execution method of this embodiment includes:
[0117] 402 , in response to receiving a start request, a main process in the graphic interaction module starts a plug-in process, and runs a first user interaction unit corresponding to the start request through the plug-in process.
[0118] 404. The graphic interaction module sends a start instruction for starting the first functional service unit to the test service module.
[0119] The first functional service unit is a functional service unit included in the software where the first user interaction unit is located.
[0120] 406. The test service module starts running the first functional service unit.
[0121] 408. In response to receiving the execution instruction, the first user interaction unit generates a work instruction based on the execution instruction, and sends the work instruction to the first functional service unit.
[0122] 410. The first functional service unit executes the work instruction.
[0123] 412. The first functional service unit forwards the execution result obtained by executing the work instruction to the first user interaction unit.
[0124] 414. The plug-in process running the first functional service unit forwards the execution result to the main process in the graphic interaction module.
[0125] 416 , the main process in the graphic interaction module renders the execution result through the rendering process to obtain a display image and displays the display image so that the user can know the execution result.
[0126] Optionally, in the software execution method of any of the above embodiments, it may also include: in response to receiving an exit instruction for the first user interaction unit, the graphic interaction module ends the operation of the first user interaction unit by stopping the plug-in process used to run the first user interaction unit, and sends an exit instruction for ending the operation of the first functional service unit to the test service module; the test service module ends the operation of the first functional service unit.
[0127] Fig. 9 The following is an interactive flow chart of an application embodiment between the graphic interaction module and the test service module in the software integration system disclosed in the present invention. Fig. 9 As shown, an example of an interactive process in which the test service module starts and stops a backend functional service unit based on the call of the graphic interaction module is exemplified. When a user needs to start a software (referred to as the third software), the corresponding first user interaction unit is enabled by clicking the front-end plug-in of the third software in the graphic interaction module. The first user interaction unit sends a startup instruction to the RPC server in the test service module through the RPC client (not shown in the figure) in the graphic interaction module using the RPC protocol. The startup instruction includes the software ID of the third software; the RPC service in the test service module forwards the startup instruction to the test service management unit in the test service module; the test service management unit starts running the first functional service unit in the first software identified by the software ID, and returns a running status message that the third software has been started to the RPC service in the test service module; the RPC server in the test service module forwards the running status message to the RPC client in the graphic interaction module; the RPC client in the graphic interaction module forwards the running status message to the first user interaction unit.
[0128] Fig.10 The following is an interactive flow chart of an application embodiment between the graphic interaction module and the test service module in the software integration system disclosed in the present invention. Fig.10 As shown in FIG. 1 , an example of an interactive process of selecting a lower computer by calling the test service module based on the graphic interaction module is shown. When a user needs to debug a lower computer (called the target lower computer) through a debugging software (called the second software), he can first use the following method to debug the lower computer: Fig. 9 The process shown starts the second software. After the second software is started, the user selects the target lower machine to be debugged through the operation interface provided by the second user interaction unit in the second software, and sends a lower machine selection instruction (as a working instruction in the above embodiment) to the RPC server in the test service module through the RPC client in the graphic interaction module (not shown in the figure) using the RPC protocol, and the lower machine selection instruction includes the software ID of the second software and the lower machine ID of the target lower machine; the RPC server in the test service module forwards the lower machine selection instruction to the test service management unit in the test service module; the test service management unit forwards the lower machine selection instruction to the second functional service unit in the second software identified by the software ID in the lower machine selection instruction; the second functional service unit selects the corresponding target lower machine according to the lower machine ID in the lower machine selection instruction, and returns a selection status message that the target lower machine has been selected to the RPC server in the test service module; the RPC server in the test service module forwards the selection status message to the RPC client in the graphic interaction module; the RPC client in the graphic interaction module forwards the selection status message to the second user interaction unit.
[0129] Fig.11 FIG. 1 is an interaction flow chart of an application embodiment between a graphic interaction module and a test service module in the software integration system disclosed in the present invention; Fig.10 As shown in FIG. 1 , an example of an interactive process in which the test service module obtains software version information based on the call of the graphic interaction module is shown. Fig.10 As shown, when a user needs to query a certain software (called third software), he can first Fig. 9The process shown starts the third software. After the third software is started, the user uses the operation interface provided by the third user interaction unit in the third software and the RPC client in the graphic interaction module (not shown in the figure) to send a version query instruction (as a working instruction in the above embodiment) to the RPC server in the test service module using the RPC protocol. The version query instruction is used to request to query the version of the third software, and the version query instruction includes the software ID of the third software; the RPC server in the test service module forwards the version query instruction to the test service management unit in the test service module; the test service management unit forwards the version query instruction to the third functional service unit in the third software identified by the software ID in the version query instruction; the third functional service unit queries the version of the third software and returns the version information of the third software to the RPC server in the test service module; the RPC service in the test service module forwards the version information to the RPC client in the graphic interaction module; the RPC client in the graphic interaction module forwards the version information to the second user interaction unit so that the second user interaction unit displays it to the user.
[0130] Fig.12 The flowchart of another embodiment of the software execution method of the present invention. The software execution method of this embodiment is applied to a test device, and the test device includes a software integration system, and the software integration system can be specifically set in the host computer of the test device. The software integration system includes at least one test-related software for semiconductor testing. The software integration system and the test-related software are implemented based on the architecture of front-end and back-end separation respectively. The software integration system includes a front-end graphic interaction module and a back-end test service module. The test-related software includes a front-end user interaction unit and a back-end functional service unit, the graphic interaction module is used to publish the user interaction unit in the form of a plug-in, and the test service module is used to run the functional service unit. The software integration system in this embodiment can be implemented by the software integration system of any of the above embodiments of the present invention, and the test device in this embodiment can be specifically the test device of any of the above embodiments of the present invention, and the embodiment of the present invention does not limit this.
[0131] like Fig.12 As shown, the software execution method of this embodiment includes:
[0132] 502. In response to receiving a start request, the graphic interaction module starts running a first user interaction unit corresponding to the start request.
[0133] 504. The graphic interaction module sends a start instruction for starting the first functional service unit to the test service module.
[0134] The first functional service unit is a functional service unit included in the software where the first user interaction unit is located.
[0135] 506. The test service module starts running the first functional service unit.
[0136] 508. In response to receiving the execution instruction, the first user interaction unit generates a work instruction based on the execution instruction, and sends the work instruction to the first functional service unit.
[0137] 510, the first functional service unit executes the work instruction to control the lower computer of the test equipment to perform corresponding operations.
[0138] Based on this embodiment, by setting up a software integration system in the upper computer of the test equipment, the development, debugging and maintenance of various test-related software for semiconductor testing can be realized through the software integration system. The test service module is located between the graphic interaction module and the lower computer, runs as an independent process, provides services for the graphic interaction module, and controls the target lower computer to perform corresponding operations through interaction with the target lower computer, thereby completing related matters of semiconductor testing.
[0139] Fig.13 FIG. 1 is a flowchart of another embodiment of the software execution method disclosed in the present invention. Fig.13 As shown, in Fig.12 Based on the embodiment shown, in this embodiment, after operation 510, the following steps are further included:
[0140] 602 , in response to receiving an execution result returned by the lower computer when executing a corresponding operation, the first function service unit forwards the execution result to the first user interaction unit.
[0141] 604. The first user interaction unit displays the execution result.
[0142] Optionally, in some of the implementations, in operation 604, the execution result can be forwarded by the plug-in process running the first functional service unit to the main process in the graphics interaction module, and then the main process in the graphics interaction module renders the execution result through the rendering process to obtain a display image and display the display image so that the user can know the execution result.
[0143] Optionally, in the above Figure 12-13 The software execution method of any embodiment may also include: in response to receiving an exit instruction for the first user interaction unit, the graphic interaction module may end the operation of the first user interaction unit by stopping the plug-in process used to run the first user interaction unit, and send an exit instruction for ending the operation of the first functional service unit to the test service module; the test service module ends the operation of the first functional service unit.
[0144] Fig.14 FIG. 1 is a flowchart of another embodiment of the software execution method disclosed herein. Fig.14As shown, in Figure 12-14 Based on any of the embodiments shown, in this embodiment, after operation 510, the following further includes:
[0145] 702 , in response to receiving the status information of the test device returned by the lower computer in the process of executing the corresponding operation, the test service module updates the status of the test device based on the most recently received status information.
[0146] In a specific implementation, a state table may be used to record the state of the test device, wherein the state of the test device may include, but is not limited to, idle, initialization, loading a test project, opening a batch, testing, closing a batch, unloading a test project, etc., which is not limited in the embodiment of the present disclosure. By updating the state of the test device recorded in the state table, the current state of the test device may be known so as to synchronize the state of the test device with other software.
[0147] Optionally, see Fig.14 The software execution method in the embodiment of the present disclosure may further include:
[0148] 704. In response to receiving the work instruction sent by the second user interaction unit, the test service module queries the current state of the test device to confirm whether the current state of the test device supports the operation corresponding to the work instruction sent by the second user interaction unit.
[0149] The second user interaction unit is a user interaction unit published in the graphic interaction module, and may be the same as or different from the first user interaction unit, which is not limited in the embodiment of the present disclosure.
[0150] In response to the current state of the test device supporting the operation corresponding to the work instruction sent by the second user interaction unit, operation 706 is performed. Otherwise, in response to the current state of the test device not supporting the operation corresponding to the work instruction sent by the second user interaction unit, operation 708 is performed.
[0151] 706. The second functional service unit controls the lower computer to perform corresponding operations based on the work instruction sent by the second user interaction unit.
[0152] Among them, the second functional service unit is a functional service unit corresponding to the second user interaction unit.
[0153] 708. The test service module returns a response message to the second user interaction unit indicating that the current state of the test device does not support the work instruction sent by the second user interaction unit.
[0154] For example, if the work instruction received by the test service module from the second user interaction unit is a work instruction for initializing the lower computer, and the current state of the test device is testing, the corresponding operation of initializing the lower computer is not supported; if the work instruction received by the test service module from the second user interaction unit is a work instruction for chip testing, and the current state of the test device is initialization, since the chip test cannot be directly executed in the initialization state and the test project needs to be loaded first, the corresponding operation of chip testing is not supported. For another example, if the work instruction received by the test service module from the second user interaction unit is a work instruction for initializing the lower computer, and the current state of the test device is idle, the corresponding operation of initializing the lower computer is supported; if the work instruction received by the test service module from the second user interaction unit is a work instruction for loading the test project, and the current state of the test device is initialization completed, the corresponding operation of chip testing is supported.
[0155] In a specific implementation, a correspondence table can be used to record the correspondence between the operations supported by each state of the test device and / or corresponding to the work instruction. Therefore, after the test service module receives the work instruction sent by the second user interaction unit, the current state of the test device is queried from the state table, and then, based on the correspondence table, it is determined whether the current state of the test device supports the operation corresponding to the work instruction.
[0156] In addition, the first software ID that currently controls the lower computer to perform the corresponding operation can also be recorded in the state table. When the current state of the test device does not support the operation corresponding to the work instruction sent by the second user interaction unit, after returning a response message to the second user interaction unit that the current state of the test device does not support the work instruction sent by the second user interaction unit, the second software identifier of the software where the second user interaction unit is located can be recorded in the state table, and the state table can be monitored. When the current state of the test device can support the operation corresponding to the work instruction sent by the second user interaction unit, the lower computer can be directly controlled to perform the corresponding operation corresponding to the work instruction, or a reminder message that the current state of the test device can support the operation corresponding to the work instruction sent by the second user interaction unit can be sent to the second user interaction unit, and the user determines whether to continue to instruct the work instruction. Among them, each software ID is used to uniquely identify a software, for example, it can be a software name, number, etc., and the software ID can be obtained from the control instruction, that is, the instructions sent by the user interaction unit and the functional service unit of each software can carry the software ID of the software. The embodiment of the present disclosure does not limit this.
[0157] Fig.15 The interactive flow chart of one embodiment of the software execution method disclosed in the present invention. Fig.15Taking a debugging software as an example, the interactive process for an execution instruction sent by the user is exemplified. For other types of software or other execution instructions, the interactive process is similar and can be referred to, and the embodiments of the present disclosure will not be repeated.
[0158] like Fig.15 As shown, when users need to debug the configuration parameters for chip testing, they can first Fig. 9 The process shown in the figure starts the debugging software (called the fourth software) and passes the following steps: Fig.10 The process shown selects the target lower machine that needs to be debugged. Afterwards, the user sets the relevant data of the configuration parameters through the operation interface provided by the fourth user interaction unit in the fourth software, and uses the RPC protocol to send configuration instructions (as execution instructions in the above embodiment) to the RPC server in the test service module through the RPC client in the graphic interaction module (not shown in the figure), and the configuration instructions include the software ID of the fourth software, the lower machine ID of the target lower machine and the relevant data of the configuration parameters; the RPC service in the test service module forwards the configuration instruction to the test service management unit in the test service module; the test service management unit forwards the configuration instruction to the fourth functional service unit in the fourth software identified by the software ID in the configuration instruction; the fourth functional service unit forwards the configuration instruction to the gRPC client in the test service module; based on the lower machine ID in the configuration instruction, the gRPC client forwards the configuration instruction to the gRPC server in the target lower machine identified by the lower machine ID; the gRPC server The configuration instruction is forwarded to the target test engine in the target lower computer; the target test engine configures the relevant data of the above configuration parameters for the target hardware unit through the target driver unit of the target hardware unit related to the configuration parameters in the hardware driver module according to the relevant data of the configuration parameters in the configuration instruction, and after the configuration is completed, returns a status message that the parameters have been configured to the gRPC server; the gRPC server forwards the status message to the gRPC client; the gRPC client forwards the status message to the fourth functional service unit; the fourth functional service unit forwards the status message to the test service management unit; the test service management unit forwards the status message to the RPC server in the test service module; the RPC server in the test service module forwards the status message to the RPC client in the graphic interaction module using the RPC protocol; the RPC client in the graphic interaction module forwards the status message to the fourth user interaction unit so that the fourth user interaction unit displays it to the user.
[0159] The software integration system of the embodiments of the present invention and the software execution method and test equipment applied to the software integration system and the software execution method and software integration system and the test equipment including the software integration system correspond to each other in terms of technical implementation, and the relevant contents can be quoted and referenced to each other and will not be repeated here.
[0160] The software execution method provided in any embodiment of the present disclosure may be executed by any appropriate device with data processing capabilities, including but not limited to: terminal devices, servers, test equipment, etc. Alternatively, the software execution method provided in any embodiment of the present disclosure may be executed by a processor, such as the processor executing the software execution method provided in any embodiment of the present disclosure by calling corresponding instructions stored in a memory. No further details will be given.
[0161] A person of ordinary skill in the art can understand that all or part of the steps of the software execution method for implementing any of the above-mentioned embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above-mentioned method embodiment; and the aforementioned storage medium includes: ROM, RAM, magnetic disk or optical disk, etc., various media that can store program codes.
[0162] In addition, an embodiment of the present disclosure further provides an electronic device, including:
[0163] Memory for storing computer programs;
[0164] The processor is used to execute the computer program stored in the memory, and when the computer program is executed, the software execution method described in any of the above embodiments of the present disclosure is implemented.
[0165] The electronic device in the embodiments of the present disclosure may include but is not limited to any one or more of the following: a computing chip, a storage chip, a sensing chip, a driving chip, a power management chip, a connection chip for communication connection, etc., and the embodiments of the present disclosure are not limited to this.
[0166] Fig.16 This is a schematic diagram of the structure of an application embodiment of the electronic device disclosed in the present invention. Fig.16 The electronic device according to the embodiment of the present disclosure is described. The electronic device may be any one or both of the first device and the second device, or a stand-alone device independent of them, and the stand-alone device may communicate with the first device and the second device to receive the collected input signals from them.
[0167] like Fig.16 As shown, the electronic device includes one or more processors and memory.
[0168] The processor may be a central processing unit (CPU) or other forms of processing units having data processing capabilities and / or instruction execution capabilities, and may control other components in the electronic device to perform desired functions.
[0169] The memory may store one or more computer program products, and the memory may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may include, for example, a random access memory (RAM) and / or a cache memory (cache), etc. The non-volatile memory may include, for example, a read-only memory (ROM), a hard disk, a flash memory, etc. One or more computer program products may be stored on the computer-readable storage medium, and the processor may run the computer program product to implement the software execution method of each embodiment of the present disclosure described above and / or other desired functions.
[0170] In one example, the electronic device may further include: an input device and an output device, and these components are interconnected via a bus system and / or other forms of connection mechanisms (not shown).
[0171] In addition, the input device may also include, for example, a keyboard, a mouse, and the like.
[0172] The output device can output various information to the outside, including determined distance information, direction information, etc. The output device can include, for example, a display, a speaker, a printer, a communication network and a remote output device connected thereto, and the like.
[0173] Of course, to simplify, Fig.16 Only some of the components related to the present disclosure in the electronic device are shown, and components such as a bus, an input / output interface, etc. are omitted. In addition, according to specific application situations, the electronic device may further include any other appropriate components.
[0174] In addition to the above-mentioned methods and devices, an embodiment of the present disclosure may also be a computer program product, which includes computer program instructions, which, when executed by a processor, enable the processor to execute the steps of the software execution method according to various embodiments of the present disclosure described in the above part of this specification.
[0175] The computer program product may be written in any combination of one or more programming languages to write program code for performing the operations of the disclosed embodiments, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server.
[0176] In addition, an embodiment of the present disclosure may also be a computer-readable storage medium having computer program instructions stored thereon, which, when executed by a processor, causes the processor to execute the steps of the software execution method according to various embodiments of the present disclosure described in the above part of this specification.
[0177] The computer readable storage medium can adopt any combination of one or more readable media. The readable medium can be a readable signal medium or a readable storage medium. The readable storage medium can include, for example, but is not limited to, a system, device or device of electricity, magnetism, light, electromagnetic, infrared, or semiconductor, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0178] The basic principles of the present disclosure are described above in conjunction with specific embodiments. However, it should be noted that the advantages, strengths, effects, etc. mentioned in the present disclosure are only examples and not limitations, and it cannot be considered that these advantages, strengths, effects, etc. are required by each embodiment of the present disclosure. In addition, the specific details disclosed above are only for the purpose of illustration and ease of understanding, and are not limitations. The above details do not limit the present disclosure to the necessity of adopting the above specific details to be implemented.
[0179] Each embodiment in this specification is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referred to each other. For the system embodiment, since it basically corresponds to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.
[0180] The block diagrams of the devices, apparatuses, equipment, and systems involved in this disclosure are only illustrative examples and are not intended to require or imply that they must be connected, arranged, and configured in the manner shown in the block diagrams. As will be appreciated by those skilled in the art, these devices, apparatuses, equipment, and systems can be connected, arranged, and configured in any manner. Words such as "including," "comprising," "having," and the like are open words, referring to "including but not limited to," and can be used interchangeably therewith. The words "or" and "and" used herein refer to the words "and / or," and can be used interchangeably therewith, unless the context clearly indicates otherwise. The word "such as" used herein refers to the phrase "such as but not limited to," and can be used interchangeably therewith.
[0181] The method and apparatus of the present disclosure may be implemented in many ways. For example, the method and apparatus of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above order of steps for the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above, unless otherwise specifically stated. In addition, in some embodiments, the present disclosure may also be implemented as a program recorded in a recording medium, which includes machine-readable instructions for implementing the method according to the present disclosure. Therefore, the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.
[0182] It should also be noted that in the apparatus, device and method of the present disclosure, each component or each step can be decomposed and / or recombined. Such decomposition and / or recombination should be regarded as equivalent solutions of the present disclosure.
[0183] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects without departing from the scope of the present disclosure. Therefore, the present disclosure is not intended to be limited to the aspects shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.
[0184] The above description has been given for the purpose of illustration and description. In addition, this description is not intended to limit the embodiments of the present disclosure to the forms disclosed herein. Although multiple example aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, changes, additions and sub-combinations thereof.
Claims
1. A software integration system, characterized in that: The software integration system and the software in the software integration system are respectively implemented based on a front-end and back-end separated architecture. The software integration system includes a front-end graphic interaction module and a back-end testing service module. The software includes a front-end user interaction unit and a back-end functional service unit. The graphic interaction module is used to publish the user interaction unit in the form of a plug-in, and the testing service module is used to run the functional service unit.
2. The system according to claim 1, characterized in that The test service module adopts plug-in loading technology to start and run the corresponding functional service unit based on the start instruction of the user interaction unit.
3. The system according to any one of claims 1-2, characterized in that: The software in the software integration system includes test-related software for semiconductor testing, and the test-related software includes any one or more of the following types of software: development software, debugging software, maintenance software, and mass production software.
4. The system according to claim 3, characterized in that The functional service unit is used to implement the functional service of the corresponding software, and based on the work instruction sent by the corresponding user interaction unit, controls the lower computer of the test equipment for semiconductor testing to perform corresponding operations.
5. The system according to claim 4, characterized in that The test service module includes a test service management unit, and the test service management unit is used to: In response to receiving a start instruction sent by the graphic interaction module after starting to run a first user interaction unit, run a first functional service unit, the first user interaction unit is at least one user interaction unit published in the graphic interaction module, and the first functional service unit is at least one functional service unit corresponding to the first user interaction unit; In response to receiving an exit instruction sent by the graphic interaction module after terminating the execution of the first user interaction unit, the execution of the first functional service unit is terminated.
6. The system according to claim 5, characterized in that The test service management unit is further used for: In the process of the first functional service unit controlling the lower computer to perform a corresponding operation, in response to receiving status information of the test device returned by the lower computer in the process of performing the corresponding operation, the status of the test device is updated based on the most recently received status information.
7. The system according to claim 6, characterized in that The test service management unit is further used for: In response to receiving the work instruction sent by the second user interaction unit, querying the current state of the test device to confirm whether the current state of the test device supports the operation corresponding to the work instruction sent by the second user interaction unit; The second user interaction unit is at least one user interaction unit published in the graphic interaction module; In response to the current state of the test device supporting the operation corresponding to the work instruction sent by the second user interaction unit, the second functional service unit controls the lower computer to perform the corresponding operation based on the work instruction sent by the second user interaction unit, and the second functional service unit is a functional service unit corresponding to the second user interaction unit; In response to the current state of the test device not supporting the operation corresponding to the work instruction sent by the second user interaction unit, a response message indicating that the current state of the test device does not support the work instruction sent by the second user interaction unit is returned to the second user interaction unit.
8. A test device, comprising a host computer and at least one slave computer; characterized in that: The host computer includes the software integration system according to any one of claims 1 to 7, and the software in the software integration system includes at least one test-related software for semiconductor testing; The functional service unit in the test-related software is used to receive the work instructions sent by the user interaction unit in the test-related software, generate control instructions based on the work instructions, and send the control instructions to the target lower computer corresponding to the work instructions to control the target lower computer to perform corresponding operations.
9. The device according to claim 8, characterized in that The lower computer includes a test engine, a test host and a hardware driver module, and the hardware driver module includes a driver unit of at least one hardware unit; The test engine is used to control the target hardware unit to perform the operation corresponding to the control instruction through the target driver unit in the hardware driver module when the control instruction is a first-category instruction; and to call the test host to execute the control instruction when the control instruction is a second-category instruction, wherein the target driver unit is a driver unit of the target hardware unit in the hardware driver module corresponding to the working instruction; The test host is used to control the target hardware unit to execute the operation corresponding to the control instruction through the target driver unit in the hardware driver module according to the call of the test engine.
10. The device according to claim 9, characterized in that The lower computer also includes a drive adapter; The test host is specifically used to forward the control instruction to the drive adapter; The drive adapter is used to determine the target drive unit corresponding to the control instruction and forward the control instruction to the target drive unit; The target driving unit is used to control the target hardware unit to execute the operation corresponding to the control instruction.
11. The device according to any one of claims 9-10, characterized in that: The functional service unit is specifically configured to receive the work instruction, generate a control instruction based on the work instruction, determine a target test engine corresponding to the work instruction, and send the control instruction to the target test engine; The target test engine is a test engine in a target lower computer in the at least one lower computer determined based on the work instruction; The target test engine is used to control the target hardware unit to execute the operation corresponding to the control instruction through the target driver unit in the target hardware driver module when the control instruction is a first-class instruction; and to call the target test host to execute the control instruction when the control instruction is a second-class instruction, wherein the target test host is the test host in the target lower computer, and the target hardware driver module is the hardware driver module in the target lower computer; The target test host is used to control the target hardware unit to execute the operation corresponding to the control instruction through the target driver unit in the target hardware driver module.
12. A software execution method, characterized in that: The software execution method is applied to a software integration system, wherein the software integration system and the software in the software integration system are respectively implemented based on a front-end and back-end separated architecture, wherein the software integration system comprises a front-end graphic interaction module and a back-end test service module, wherein the software comprises a front-end user interaction unit and a back-end functional service unit, wherein the graphic interaction module is used to publish the user interaction unit in the form of a plug-in, and the test service module is used to run the functional service unit; the method comprises: In response to receiving the start request, the graphic interaction module starts running the first user interaction unit corresponding to the start request; The graphic interaction module sends a start instruction for starting a first functional service unit to the test service module, where the first functional service unit is a functional service unit included in the software where the first user interaction unit is located; The test service module starts running the first functional service unit; In response to receiving the execution instruction, the first user interaction unit generates a work instruction based on the execution instruction, and sends the work instruction to the first functional service unit; The first functional service unit executes the work instruction.
13. The method according to claim 12, characterized in that The graphic interaction module starts running the first user interaction unit corresponding to the start request, including: The main process in the graphic interaction module starts a plug-in process, and runs the first user interaction unit corresponding to the start request through the plug-in process.
14. The method according to claim 13, characterized in that After the first functional service unit executes the work instruction, the method further includes: The first function service unit forwards an execution result obtained by executing the work instruction to the first user interaction unit; The plug-in process running the first functional service unit forwards the execution result to the main process; The main process renders the execution result through a rendering process to obtain a display image and displays the display image.
15. The method according to any one of claims 13-14, characterized in that: Also includes: In response to receiving an exit instruction for the first user interaction unit, the graphic interaction module terminates the operation of the first user interaction unit by stopping the plug-in process, and sends an exit instruction for terminating the operation of the first functional service unit to the test service module; The test service module ends running the first functional service unit.
16. A software execution method, characterized in that: The software execution method is applied to a test device, the test device includes a software integration system, the software integration system includes at least one test-related software for semiconductor testing, the software integration system and the test-related software are respectively implemented based on a front-end and back-end separated architecture, the software integration system includes a front-end graphic interaction module and a back-end test service module, the test-related software includes a front-end user interaction unit and a back-end functional service unit, the graphic interaction module is used to publish the user interaction unit in the form of a plug-in, and the test service module is used to run the functional service unit; the method includes: In response to receiving the start request, the graphic interaction module starts running the first user interaction unit corresponding to the start request; The graphic interaction module sends a start instruction for starting a first functional service unit to the test service module, where the first functional service unit is a functional service unit included in the software where the first user interaction unit is located; The test service module starts running the first functional service unit; In response to receiving the execution instruction, the first user interaction unit generates a work instruction based on the execution instruction, and sends the work instruction to the first functional service unit; The first functional service unit executes the work instruction and controls the lower computer of the test equipment to perform corresponding operations.
17. The method according to claim 16, characterized in that After the first functional service unit executes the work instruction and controls the lower computer of the test device to perform a corresponding operation, the method further includes: In response to receiving an execution result returned by the lower computer when executing a corresponding operation, the first function service unit forwards the execution result to the first user interaction unit; The first user interaction unit displays the execution result.
18. The method according to any one of claims 16-17, characterized in that: Also includes: In response to receiving an exit instruction for the first user interaction unit, the graphic interaction module ends the operation of the first user interaction unit, and sends an exit instruction for ending the operation of the first functional service unit to the test service module; The test service module ends running the first functional service unit.
19. The method according to any one of claims 16 to 18, characterized in that: Also includes: In response to receiving the status information of the test device returned by the lower computer during the execution of the corresponding operation, the test service module updates the status of the test device based on the most recently received status information.
20. The method according to claim 19, characterized in that Also includes: In response to receiving the work instruction sent by the second user interaction unit, the test service module queries the current state of the test device to confirm whether the current state of the test device supports the operation corresponding to the work instruction sent by the second user interaction unit; The second user interaction unit is at least one user interaction unit published in the graphic interaction module; In response to the current state of the test device supporting the operation corresponding to the work instruction sent by the second user interaction unit, the second function service unit controls the lower computer to perform the corresponding operation based on the work instruction sent by the second user interaction unit, and the second function service unit is a function service unit corresponding to the second user interaction unit; In response to the current state of the test device not supporting the operation corresponding to the work instruction sent by the second user interaction unit, the test service module returns a response message to the second user interaction unit indicating that the current state of the test device does not support the work instruction sent by the second user interaction unit.