A Flexible Software Architecture for Semiconductor Packaging Equipment
Xiaoli Liu,Jie Huo,Zheng Zhang,Ziyang Liu,Liang Tang
DOI: https://doi.org/10.1109/icept.2013.6756560
2013-01-01
Abstract:Software architecture is concerned with capturing the system structures, and describing how a system is decomposed into components and how these components interconnect. When it comes to the industry application, especially software in the semiconductor packaging equipment, the driving forces behind architecture decisions include complex and delicate process requirements, hardware structures, run-time environment performance, safety-critical, multi-processing, fault tolerance, monitoring, high throughput and so on. Developing principles of semiconductor equipments software has not been systematically discussed.In order to satisfy diversity requirements for the semiconductor packaging equipments due to fast developments of semiconductor packaging technologies, besides common principles of software engineering, we are dedicated to discuss and design architecture as platform software which could provide an infrastructure for different product-specific software. Basically, the Module frame and Execute frame are combined to form a platform structure. The Module architecture encompasses functional decompositions and layers (HMI, Logic design, Motion control, physical layouts), which could reduce and isolate external and internal dependencies, improve the reusability and scalability. In particular, exception handling and processing logic are divided into sub-modules with common interfaces in order to adapt the change of processing procedures. The execute architecture is used to describe the dynamics of system including the run-time elements, communication mechanisms, and resource allocation, which more takes the hardware properties into consideration and provides the interfaces to the third-party software such as motion control, computer vision and manufacturing management etc. In this paper, we will show how this architecture helps the exploitation of commonalities and evolution to fit collaborative development, software scalability, evolving hardware structure, and various process requirements.