The present disclosure relates to data visualization, and, more particularly, to data visualization for analyzing physical processes.
Data visualization is a technique used to transform large quantities of data into a manageable and useful form. Data visualization can be particularly useful for analyzing a physical process, such as semiconductor manufacturing, where sensors provide more data than an individual user can efficiently mentally process by simply reviewing the raw numerical data, by aiding a user to rapidly review sensor data so that decisions regarding the physical process can be made effectively.
In some applications, a user would benefit from being able to use data visualization to review data from a number of different data sources over a period of time, such that the user would be able to discern data trends over time.
The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
Embodiments of the present invention are directed to a method and system for visualizing data obtained from a physical process using trend dynamic sensor imaging (DSI). A trend DSI system receives a data set from each of a plurality of data sources for a time frame of interest, such as sensor data from a semiconductor manufacturing system, where the data sources may provide data of different scales. The trend DSI system then pre-processes the data in the data sets such that the data has a common scale. Once the data has been pre-processed, the system displays the data sets on a grid by plotting the transformed data according to a color gradient or scale. Here, the user is able to efficiently and effectively consider large quantities of data for detection of anomalies (e.g., outliers), such as flaws in a semiconductor manufacturing process, and how changing one parameter affects other parameters. For example, a user is able to view multiple SPC trend charts in a single view, and expose and/or investigate features of interest.
The physical process system 104 can include different types of physical processes from which data can be generated. For example, the physical process system 104 could include manufacturing tools. Examples of manufacturing tools include semiconductor manufacturing tools, such as etchers, chemical vapor deposition furnaces, etc, for the manufacture of electronic devices. Manufacturing such devices includes dozens of manufacturing steps involving different types of manufacturing processes, which may be known as a recipe. In another example, the physical process system 104 could include a biomedical application, where physical processes cause parameters such as temperature and resistance to vary over time. The physical process system 104 can include any type of computing device, including desktop computers, laptop computers, handheld computers or similar computing devices, to control the system.
In other embodiments, the physical process system 104 is not connected to the system 102.
The architecture 100 may also include data sources 106 that generate data about the physical process system 104 over time. For example, the data sources 106 can be sensors that detect information about the physical process system 104. In the example of a semiconductor manufacturing system, hundreds of sensors may detect data pertaining to manufacturing tools, where the data may include, for example, temperature, pressure, gas flow, and RF power, among others, over time. Data sources 112 may be part of the physical process system 104 or may be connected to the physical process system 104 (e.g., via a network).
Each data source 106 generates a data set 110 including the data from the data source 106. A data collector 108 of system 102 can collect the data sets 110 from the data sources 106 and store them in a persistent storage unit 112.
The system 102 also includes a pre-processing tool 114 for transforming data of the data sets 110 to have a common scale. Since the retrieved data sets 110 all have different scales, the data of the data sets 110 is transformed to a common scale so that the data sets 110 can be meaningfully visualized in one display. For example, one of the data sets 110 may have a larger range of values (or scale) than another of the data sets 110. Here, if a user were to visualize the raw data of these data sets 110 simply plotted on a grid, the user would not be able to appreciate relative variations of the data in all of the data sets 110. In other words, the user would not be able to perceive variations in the data set 110 with the smaller range of values (or scale) when plotted on a grid scaled to accommodate the data set 110 with the larger range of values (or scale). Therefore, the data of the data sets 110 must be transformed to have a common scale in order to be effectively perceived together on one display.
In one embodiment, the system 102 includes a graphical user interface (GUI) generator 116 that generates a GUI to display the data sets 110. In particular, the GUI generator 116 displays the data sets 110 by plotting the transformed data according to a color gradient. The GUI generator 116 can generate GUIs to illustrate data trends for a large number of data sets over time.
The GUIs generated by the GUI generator 116 can be accessible via a browser on one or more client machines 118, or, in one embodiment, the GUI generator can reside on the client machine 118 and can receive the transformed data from the pre-processing tool 114 via a network. Client machines 118 can be any type of computing device including desktop computers, laptop computers, mobile communications devices, cell phone, smart phones, handheld computers or similar computing devices.
In one embodiment, the physical process system 104, the data sources 106, the persistent storage unit 112, and the client machine 118 are connected to the trend DSI system 102, which make a direct connection or an indirect connection via a hardware interface (not shown), or via a network (not shown). The network can be a local area network (LAN), such as an intranet within a company, a wireless network, a mobile communications network, or a wide area network (WAN), such as the Internet or similar communication system. The network can include any number of networking and computing devices such as wired and wireless devices.
The division of functionality presented above is by way of example only. In other embodiments, the functionality described could be combined into a monolithic component or sub-divided into any combination of components. The data collector 108, the GUI generator 116, the client machine 118, and the pre-processing tool 114 can be hosted on a single computer system, on separate computer systems, or on a combination thereof.
At block 202, processing logic of the system 102 receives the data set 110 for each data source 106. The trend DSI system 102 can receive the data set 110 from the data sources 106, from the persistent storage unit 112, or via some other source.
At block 204, processing logic of the pre-processing tool 114 of the system 102 pre-processes the data sets 110 to transform the data to have a common scale.
At block 206, processing logic displays the pre-processed data sets by plotting the transformed data on a grid according to a color gradient. In an embodiment, the transformed data is displayed on an XYZ grid, where the X-axis is the sample number, the Y-axis is the data set, and Z is the transformed value of the data plotted as a color of the color gradient. For example, for embodiments used in semiconductor manufacturing, X is the sample number, Y is the sensor, and Z is the transformed value of the sensor. A color gradient is used to display the Z values on the grid. In one embodiment, the transformed data is associated with the color gradient via a look-up table.
In one embodiment, X is a time-based value. However, X is not limited to this, and X may be a tool/chamber-based value, e.g., where the first set of data is from chamber A, the second from chamber B, etc.
For example, the color gradient may be a −9 to +9 linear color gradient for displaying the Z values on the grid.
In block 208, in one embodiment, processing logic receives an optionally user-selected data point of interest. Here, the user may select a data point of interest from the displayed GUI. For example, the user may use a cursor control device (e.g., a mouse) to select a data point of interest (e.g., by right clicking on the data point), such as an anomaly, in the displayed data.
In block 210, in the embodiment where the user may select a data point, processing logic displays additional data associated with the selected data point. For example, a pop-up may be displayed with the data set name, the Z value, and/or a link to an SPC chart for that data set.
In block 302, according to one embodiment, processing logic of the pre-processing tool 114 standardizes the data set 110. In one embodiment of the transformation of the data, the data is standardized using the following formula:
After standardization, the majority of the data should fall in the +/−3 sigma range.
A user can select a method by which the mean and standard deviation used for standardizing the data are determined. The user may select to use all of the data retrieved to determine the mean and standard deviation, which may be a default method. The user may instead select to use the first n-samples to determine the mean and standard deviation, which allows the user to see how the data drifts over time. The user may instead select to use summary statistics from a selected time period, such as a day, which allows the users to see how the data drifts compared to a selected time period.
Other types of data transformation can be used to handle different data types and to expose different features. For example, the data may be transformed into a 0-1 range, which is useful for analyzing real time (or raw data) as compared to statistical (or SPC data) where a −9 to +9 range may be more useful.
In block 304, processing logic of the pre-processing tool 114 excludes data sets 110 having a standard deviation of zero, since these data sets 110 are likely not of interest.
In block 306, in one embodiment, processing logic may apply an optionally user-selected data window to the data of the data sets 110. For example, various windows (ex., Hamming or Hanning windows) could be applied to the transformed data to expose different features in the data sets 110.
In block 308, in one embodiment, processing logic may apply an optionally user-selected data range to the data sets 110 so that data that is not of interest is not displayed. In one embodiment, only Z values greater than a selected threshold are shown to help visually isolate features of interest. For example, the threshold values may be 0, 3 and 6. In one embodiment, any Z value greater than a positive threshold or less than a negative threshold is plotted as a 0.
In block 310, in one embodiment, processing logic may apply an optionally user-selected color scheme for display of the standardized data sets. In one embodiment, different color palettes can be selected to highlight or expose different features of interest. For example, blue to white to red may be particularly effective at showing trend data. In another embodiment, the user may select a desired scale for the color pallets. For example, a linear scale may be a default scale. However, log scaling, polynomial scaling or another user defined scaling may be used to expose different features. In one embodiment, a direction of a shift or trend of the data is not of interest, and the user is only interested in detecting the magnitude of the shift or trend. Here, absolute Z (the absolute value of Z) is plotted to improve visualization. In this embodiment, the display range is 0 to 9.
In some instances, interpolation between data sets (e.g., sensors) makes interpreting the data more difficult. Therefore, in one embodiment, a dummy data set with zero values is interleaved between each real data set.
In one embodiment, the user has the ability to zoom into an area of interest on the display. In another embodiment, the user is able to scroll left or right (along the X values) and up or down (along the data sets) to search for an area of interest, including when the user has zoomed into an area of the display. In yet another embodiment, the user can then select a data point (e.g., by right clicking on a point), and additional data about the data point may be displayed.
In another embodiment of the present invention, a user may select to use the median value of the data instead of the mean value of the data in the transformation of the data. For example, if the data set contains multi-modal switches, the mean would average out the modality, whereas median will find the most common mode and reference the data against the most common mode. In this embodiment, the data is standardized using the following formula:
In one embodiment, the default selection should be to use the mean value of the data.
In one embodiment, the default color palette for the values is blue (for low data values) to white to red (high for high data values). This color scheme helps the user visualize the actual changes in the data.
In one embodiment, at least some of the data source names (e.g., sensor names) are shown on the Y-axis.
In another embodiment, previous similar plots are subtracted from the current plot of interest so that differences between the plots become more apparent.
In an embodiment, different color palettes may be selected depending on the data sets and/or the features to be visualized or extracted. Here, a user would first select the color palette to use (e.g., red to white to blue, blue to red, etc.), and then select the transformation on the color palette.
Below are some examples of transformations on the color palette. In these the same color palette is used, but different transformations show different features. In one embodiment, a user could select multiple transformations depending on the features to be displayed.
If abs(z)<6 then z=0 else z=z
z←tan(z*·16)
The exemplary computer device 1600 includes a processing system (processing device) 1602, a main memory 1604 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), etc.), a static memory 1606 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 1616, which communicate with each other via a bus 1608.
Processing device 1602 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 1602 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The processing device 1302 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 1602 is configured to execute the Trend DSI system 102 of
The computing device 1600 may further include a network interface device 1622. The computing device 1600 also may include a video display unit 1610 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 1612 (e.g., a keyboard), a cursor control device 1614 (e.g., a mouse), and a signal generation device 1620 (e.g., a speaker).
The data storage device 1616 may include a computer-readable storage medium 1624 on which is stored one or more sets of instructions 1626 embodying any one or more of the methodologies or functions described herein. The instructions 1626 may also reside, completely or at least partially, within the main memory 1604 and/or within the processing device 1602 during execution thereof by the computing device 1600, the main memory 1604 and the processing device 1602 also constituting computer-readable media. The instructions 1626 may further be transmitted or received over a network 1628 via the network interface device 1622.
While the computer-readable storage medium 1624 is shown in an exemplary embodiment to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.
Some portions of the detailed description that follows are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “determining”, “identifying”, “comparing”, “sending”, or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments of the invention also relate to an system for performing the operations herein. This system can be specially constructed for the required purposes, or it can comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer (or machine) readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory, or any type of media suitable for storing electronic instructions.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems can be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the method steps. The structure for a variety of these systems will appear from the description herein. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the invention as described herein.
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
This patent application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Application No. 61/723,265 filed Nov. 6, 2012, which is herein incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
6421620 | Kotlow | Jul 2002 | B1 |
6734958 | MacKinnon | May 2004 | B1 |
7353475 | White et al. | Apr 2008 | B2 |
8880370 | Kadambe | Nov 2014 | B1 |
20030061212 | Smith et al. | Mar 2003 | A1 |
20030122093 | Schauer | Jul 2003 | A1 |
20030162301 | Noergaard et al. | Aug 2003 | A1 |
20050288810 | Lin et al. | Dec 2005 | A1 |
20080317329 | Shibuya et al. | Dec 2008 | A1 |
20100260722 | Ebisawa et al. | Oct 2010 | A1 |
20110225622 | Pearcy | Sep 2011 | A1 |
20110227915 | Mandella et al. | Sep 2011 | A1 |
20120041574 | Hsiung et al. | Feb 2012 | A1 |
20120143516 | Mezic et al. | Jun 2012 | A1 |
20120158808 | Yang | Jun 2012 | A1 |
20120212505 | Burroughs | Aug 2012 | A1 |
20130061188 | Hou et al. | Mar 2013 | A1 |
20130278605 | Pathak et al. | Oct 2013 | A1 |
Number | Date | Country |
---|---|---|
2004-05184 | Apr 2004 | TW |
2008-17891 | Apr 2008 | TW |
Entry |
---|
Search Report and Written Opinion for PCT/US2013/068652, dated Feb. 25, 2014. |
Number | Date | Country | |
---|---|---|---|
20140125675 A1 | May 2014 | US |
Number | Date | Country | |
---|---|---|---|
61723265 | Nov 2012 | US |