The present disclosure relates generally to profile control of a polishing process, and more particularly to a carrier head having piezoelectric actuators.
An integrated circuit is typically formed on a substrate (e.g. a semiconductor wafer) by the sequential deposition of conductive, semiconductive or insulative layers on a silicon wafer, and by the subsequent processing of the layers.
One fabrication step involves depositing a filler layer over a non-planar surface and planarizing the filler layer. For certain applications, the filler layer is planarized until the top surface of a patterned layer is exposed. In addition, planarization may be used to planarize the substrate surface, e.g., of a dielectric layer, for lithography.
Chemical mechanical polishing (CMP) is one accepted method of planarization. This planarization method typically requires that the substrate be mounted on a carrier head. The exposed surface of the substrate is placed against a rotating polishing pad. The carrier head provides a controllable load on the substrate to push it against the polishing pad. In some situations, the carrier head includes a membrane that forms multiple independently pressurizable chambers, with the pressure in each chamber controlling the polishing rate in each corresponding region on the substrate. A polishing liquid, such as slurry with abrasive particles, is supplied to the surface of the polishing pad.
In one aspect, a carrier head for holding a substrate in a polishing system has a housing including a carrier plate, a first flexible membrane secured to the housing, and a plurality of independently operable piezoelectric actuators secured to the carrier plate. The first flexible membrane has an upper surface and having a lower surface that provides a substrate mounting surface. The piezoelectric actuators are positioned above the first flexible membrane so as to independently adjust compressive pressure on the upper surface of the first flexible membrane.
In another aspect, a polishing system includes a platen to support a polishing pad, a carrier head to hold a substrate against the polishing pad, an in-situ monitoring system to generate a signal that depends on a thickness of a layer on the substrate being polished, and a control system. The carrier head includes a housing secured to and rotatable by the drive shaft, the housing including a carrier plate, a first flexible membrane secured to the housing, and a plurality of independently operable piezoelectric actuators. The first flexible membrane has an upper surface and a lower surface that provides a substrate mounting surface. The piezoelectric actuators are secured to the carrier plate and positioned above the first flexible membrane so as to independently adjust compressive pressure on the upper surface of the first flexible membrane. The plurality of piezoelectric actuators are arranged at different angular positions around a center axis of the carrier head. The controller is configured to control voltages applied to the plurality of piezoelectric actuators based on the signal from the in-situ monitoring system so as to reduce angular variation in thickness of the layer.
In another aspect, a polishing assembly includes a carrier head for holding a substrate in a polishing system, a drive shaft, a motor to rotate the drive shaft, a rotary electrical union, a controller, a voltage supply line, and a data line. The carrier head includes a housing secured to and rotatable by the drive shaft and including a carrier plate, a plurality of independently operable piezoelectric actuators, and circuitry secured to the housing. The piezoelectric actuators are secured to the carrier plate and positioned so as to independently adjust pressure on the substrate. The voltage supply line and the data line connects the controller to the circuitry through the rotary electrical union. The circuitry is configured to receive a voltage on a voltage supply line, receive data on a data line, and control voltages applied to the plurality of piezoelectric actuators based on the data.
In another aspect, a carrier head for holding a substrate in a polishing system includes a housing, a first flexible membrane secured to the housing to form one or more pressurizable chambers to apply pressure through a central membrane portion of the first flexible membrane to a central portion of a substrate, and a plurality of independently operable piezoelectric actuators supported by the housing, the plurality of piezoelectric actuators positioned radially outward of the central membrane portion and at different angular positions so as to independently adjust pressure on a plurality of angular zones in an annular outer region of the substrate surrounding the central portion of the substrate.
In another aspect, a carrier head for holding a substrate in a polishing system includes a housing and a first flexible membrane secured to the housing to form one or more pressurizable chambers. The first flexible membrane has a lower surface that provides a substrate mounting surface for a central portion of a substrate. A plurality of independently operable piezoelectric actuators are supported by the housing, and the plurality of piezoelectric actuators are positioned radially outward of the first flexible membrane and at different angular positions. An edge control ring that is more rigid than the first flexible membrane is coupled to the plurality of piezoelectric actuators such that the plurality of piezoelectric actuators control a tilt of the edge control ring relative to the housing. The edge control ring is positioned to apply pressure to an annular region on the substrate surrounding the central portion of the substrate.
In another aspect, a polishing system includes a platen to support a polishing pad, a drive shaft, and a carrier head for holding a substrate in a polishing system. The carrier head includes a housing secured to and movable by the drive shaft, a plurality of independently operable piezoelectric actuators supported by the housing and positioned to control pressure on an edge portion of a back surface of a substrate held by the carrier head, the plurality of piezoelectric actuators independently controllable. A control system is configured to control voltages applied to the plurality of piezoelectric actuators such that a position at which a highest pressure is applied to the edge portion of the back surface of the substrate undergoes precession in conjunction with precession of the substrate in the carrier head.
Certain implementations can include one or more of the following advantages. Pressure can be applied to a substrate in a manner that varies both radially and angularly about the center of a substrate being polished. This permits profile control in a manner that can compensate for angular variation in thickness of an incoming substrate and/or angular variations in the polishing rate of the polishing process. The pressure applied over a region can be controlled by expanding or contracting a piezoelectric actuator to deform a membrane on top of the region. Thus, polishing process of each region of the layer on the substrate can be controlled independently and with high definition. Moreover, in comparison to using pressure chambers, using piezoelectric actuators permits scaling to a much larger number of control regions in a more feasible manner. In particular, fewer rotary connections are needed, and the number of rotary connections does not need to scale with the number of piezoelectric actuators.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages are apparent from the description and drawings, and from the claims.
Polishing rate variations between different regions of a substrate can lead to the different regions of the substrate reaching their target thickness at different times. On the one hand, the different regions of the substrate may not reach the desired thickness if polishing of the regions is halted simultaneously. On the other hand, halting polishing for different zones at different times can result in defects or lower the throughput of the polishing apparatus. Thus, there is a need to be able to independently control the pressure on different regions.
In an idealized process, due to the rotation of the carrier head and the platen, the polishing rate on a substrate would be angularly symmetric about the axis of rotation of the substrate. In practice however, the polishing process can result in angular variation in the polishing rate. In addition, a substrate to be polished can have a top layer with an initial thickness that varies angularly, i.e., that has angular non-uniformity. Finally, in some manufacturing processes it may be desirable to induce angular non-uniformity in the thickness of the layer being polished in order to compensate for non-uniformity in later processing steps, e.g., deposition steps. Eliminating angular non-uniformity induced by the polishing process or when polishing a layer with an angularly non-uniform initial thickness, or purposely providing angular variation in the thickness when polishing a layer, remains a challenge.
However, a carrier head that uses multiple piezoelectric actuators can address this problem. The piezoelectric actuators can be distributed angularly around the carrier head, and each piezoelectric actuator can be independently controlled, permitting reduction or deliberate introduction of angular non-uniformity.
The polishing apparatus 100 can include a combined slurry/rinse arm 130. During polishing, the arm 130 is operable to dispense a polishing liquid 132, such as an abrasive slurry, onto the polishing pad 110. While only one slurry/rinse arm 130 is shown, additional nozzles, such as one or more dedicated slurry arms per carrier head, can be used. The polishing apparatus can also include a polishing pad conditioner to abrade the polishing pad 110 to maintain the polishing pad 110 in a consistent abrasive state.
The polishing apparatus 100 includes a carrier head 140 operable to hold a substrate 10 against the polishing pad 110. The carrier head 140 can be configured to independently control a polishing parameter, for example pressure, for each of multiple zones on the substrate 10.
The carrier head 140 can include a housing 141 that can be connected to a drive shaft 152, a membrane 182, and retaining ring 142 to retain the substrate 10 below the flexible membrane 182. The lower surface of the membrane 182 provides a mounting surface for the substrate 10. The membrane 182 can be made of an elastic material, e.g., rubber, such as silicone rubber or neoprene. The Young's modulus of the membrane 182 can range from 1 to 20 MPa. Other materials, e.g., hydrogel and foam, are possible if they deform in the elastic range with a Young's modulus between 1-10 MP, and have a relatively high shear modulus but a low adhesion so that to avoid “sticking” to the membrane. The membrane 182 can be translucent to adapt for an optical in-situ monitoring system. The membrane 182 can be secured to the housing 141.
The carrier head 140 also includes multiple independently operable piezoelectric actuators 184 positioned above the membrane 182 and secured to a carrier plate 143. The carrier plate 143 can be provided by a portion of the housing 141. The piezoelectric actuators 184 are positioned to contact an upper surface of the membrane 182 so as to independently adjust pressure on the upper surface of the membrane 182. As depicted in the
Circuitry 189, e.g., a circuit board having one or more elements such as a microcontroller, is secured to the carrier head 140. For example, the circuitry can be mounted on the top of the housing 141 of the carrier head 140. For another example, the circuitry can be mounted inside the carrier head 140.
The circuitry 189 can receive a voltage on a voltage supply line 183 from a voltage source 181. The circuitry 189 can also receive data through a data line 186 from a controller 190. The voltage supply line 183 and the data line 186 can be routed through the drive shaft 152 and a rotary electrical union 156, e.g., a slip ring, to the stationary components of the voltage source 181 and controller 190.
In addition, the circuitry can independently control a voltage applied to each piezoelectric actuator based on the data, through voltage lines 187. The data line 186 can transfer a plurality of frames of data, and each frame of a plurality of frames can include data that represents a pressure signal, or an equivalent voltage signal, for one or more of the piezoelectric actuators. In some implementations, a frame of data transmitted by the controller 190 includes a control value for each piezoelectric actuator, and the circuitry 189 is configured to determine which control value is associated with each piezoelectric actuator by the order of the control values within the frame. In some implementations, a frame of data transmitted by the controller 190 includes both a control value and an identification value for the piezoelectric actuator to which the control value applies, and the circuitry 189 is configured to determine the appropriate piezoelectric actuator for the control value based on the identification value.
Only two electrical lines, e.g., the voltage supply line 183 and the data line 186, need to be routed through the rotary electrical union 156. Consequently, the assembly can be simpler and more reliable than a pressure actuator that needs rotary connection of multiple fluid lines, e.g., pneumatic air lines. In addition, the number of piezoelectric actuators can be scaled up by appropriate modification of the data provided by the controller 190 and the functionality of the circuitry 189 to interpret the data, without having to increase the number of rotary connections.
In some implementations, the top electrode 185a is a common ground electrode for all of the piezoelectric actuators 184. In this case, the top electrode 185a can span the substrate 10. The individual bottom electrodes 185b can be the same size as the segments of the piezoelectric layer actuators. In some implementations, the piezoelectric actuators 184 are of uniform size across the carrier plate 143.
In some implementation, the piezoelectric actuator 184 includes an insulated plate 184d attached below the bottom electrode 185b. The insulated plate 184d need not have the same shape as the remainder of the actuator 184, e.g., the layer 184a. That is, the plate 184d can be a different shape and size from the piezoelectric layer 184a. For example, the insulated plate 184d can be larger (laterally) than the piezoelectric layer 184a. In addition, the insulated plates 184d can have different shapes and sizes so that the shape of the region on the membrane 182 to which pressure is applied by the piezoelectric actuator 184 can vary across the array 184c. The shape of the insulated plate 184d can be selected based on the desired shape for the zone on the substrate to which pressure will be applied by the actuator. Alternatively, the entire piezoelectric actuator, e.g., the piezoelectric layer 184a, and insulated plate 184d if present, can be selected based on the desired shape for the zone on the substrate to which pressure will be applied by the actuator.
In some implementations, more than one piezoelectric actuator 184 can be positioned above the same insulated plate 184d. In this case, the same voltage signal can be applied to the piezoelectric actuators 184 that are above the same plate 184d. Such a configuration where the actuators 184 are relatively small compared to the area spanned by a single plate 184d.
Adjacent piezoelectric actuators 184 can be separated by a gap 184b. In some implementations, the gaps between adjacent actuators 184 are uniform across the array 184c. The piezoelectric actuators can be arranged adjacently with each other to span the entire membrane 182. Gaps 184b separating each piezoelectric actuator, e.g., separating the insulated plate 184d, are sufficiently small that the pressure applied by the membrane to the substrate is smoothed. The gaps 184b can range from 100 um to 1 mm.
The piezoelectric actuators 184 can be disposed at multiple different angular positions around the axis 159. In some implementations, the actuators 184 are disposed in a regular array, e.g., a rectangular, hexagonal, or polar array.
As one example shown in
Referring to
The specific shape of the piezoelectric actuators 184 can depend on the array. For example, the piezoelectric actuators 184 can be larger in size with a pie or trapezoidal shape at the center of a substrate 10, while gradually become smaller in size with an arcuate shape toward the substrate edge. The total number of the piezoelectric actuators 184 is driven by the cost of piezoelectric materials. For example, a polishing head using piezoelectric pressure control can have 100 piezoelectric actuators with each of size around 70 mm2.
In some implementations, the angular and radial arrangement of the piezoelectric actuators 184 around a center axis can be non-uniform. For example, if one or more regions in the substrate needs higher definition control than the rest, therein more refined (smaller) piezoelectric actuators can be arranged.
As shown in
Returning to
Referring to
Referring to
This example implementation is efficient and economical to reduce angular variation because the controller 190 can control pressure distribution across the edge region using only a few piezoelectric actuators 184 located at different locations above the piezoelectric zone. In particular, by controlling the extension of the piezoelectric actuators, the three piezoelectric actuators 184a-c, the skew or tilt of the edge control ring 202 can be controlled, thus adjusting the distribution of pressure on the substrate edge.
During polishing a substrate using the hybrid carrier head 140, the controller 190 can reduce angular variation in the polishing profile at the substrate edge by selecting the vertical extensions of the actuators 184 so to select a position at which the highest or lowest pressure is applied, and the magnitude of the highest and lowest pressures. That is, selection of the vertical positions of the three locations on the edge control ring 202 controls the skew of the ring 202, and the greatest pressure will be applied at the location where the ring 202 is lowest. The lowest pressure will be applied at the location where the ring is highest, which will be 180° from where the greatest pressure is applied so long as the ring remains planar. Pressure should vary relatively uniformly along the perimeter from the location of highest pressure to the location of lowest pressure.
The controller 190 can select the location 204 for the maximum (or minimum) pressure and the magnitude of pressure applied at that location 204 in order to reduce edge non-uniformity. The controller 190 can adjust the orientation (i.e., ϑ) of the particular edge location 204 to apply the highest local pressure by changing pressures applied at the three locations of the piezoelectric actuators 184a-c. For example, if the extension of the actuator 184a is largest, actuator 184b the second largest, and actuator 184c the lowest, the location 204 will be located in the arc region between the two locations of the piezoelectric actuators 184a, 184b, as shown in
Similarly, referring to
Returning to
The polishing apparatus can include an in-situ monitoring system 160, which can be used to determine whether to adjust a polishing rate or an adjustment for the polishing rate as discussed below. In some implementations, the in-situ monitoring system 160 can include an optical monitoring system, e.g., a spectrographic monitoring system. In other implementations, the in-situ monitoring system 160 can include an eddy current monitoring system.
In one embodiment, the monitoring system 160 is an optical monitoring system. An optical access through the polishing pad can be provided by a window 118 in the polishing pad 110. The optical monitoring system 160 can include a light source 162, a light detector 164, and circuitry 166 for sending and receiving signals between a remote controller 190, e.g., a computer, and the light source 162 and light detector 164. One or more optical fibers 170 can be used to transmit the light from the light source 162 to the optical access in the polishing pad, and to transmit light reflected from the substrate 10 to the detector 164.
The output of the circuitry 166 can be a digital electronic signal that passes through a rotary coupler 129, e.g., a slip ring, in the drive shaft 124 to the controller 190 for the optical monitoring system. Similarly, the light source can be turned on or off in response to control commands in digital electronic signals that pass from the controller 190 through the rotary coupler 129 to the optical monitoring system 160. Alternatively, the circuitry 166 could communicate with the controller 190 by a wireless signal.
The light source 162 can be operable to emit white light, and the light detector 164 can be a spectrometer. As noted above, the light source 162 and light detector 164 can be connected to a computing device, e.g., the controller 190, operable to control their operation and receive their signals. The computing device can include a microprocessor situated near the polishing apparatus, e.g., a programmable computer. With respect to control, the computing device can, for example, synchronize activation of the light source with the rotation of the platen 120.
In some implementations, the light source 162 and detector 164 of the in-situ monitoring system 160 are installed in and rotate with the platen 120. In this case, the motion of the platen will cause the sensor to scan across each substrate. In particular, as the platen 120 rotates, the controller 190 can cause the light source 162 to emit a series of flashes starting just before and ending just after each substrate 10 passes over the optical access. Alternatively, the computing device can cause the light source 162 to emit light continuously starting just before and ending just after each substrate 10 passes over the optical access. In either case, the signal from the detector can be integrated over a sampling period to generate spectra measurements at a sampling frequency.
In operation, the controller 190 can receive, for example, a signal that carries information describing a spectrum of the light received by the light detector for a particular flash of the light source or time frame of the detector. Thus, this spectrum is a spectrum measured in-situ during polishing.
As shown by in
Thus, for any given scan of the optical monitoring system across the substrate, based on timing, motor encoder information, optical detection of the edge of the substrate and/or retaining ring, and the optical detection or calculation of the substrate 10 precession with respect to the retaining ring 142, the controller 190 can calculate both the radial position (relative to the center of the particular substrate 10 being scanned) and the angular position (relative to the reference angle of the particular substrate 10 being scanned) for each measured spectrum from the scan.
In many operation conditions, the precession rate of the substrate relative to the carrier head is sufficiently slow that the controller 190 can have enough time to change and apply a new pressure in a particular angular region on the substrate. Thus, in some situations, e.g., if the precession rate of the substrate is less than 10° per minute, e.g., less than 5° per minute, the optical monitoring system can optionally ignore the differences between the angular position of the substrate relative to that of the carrier head and still accurately polish the substrate to have a desired after-polishing profile.
In situations where a non-uniform angular profile is desired for polishing a substrate, the monitoring system can align initial angular positions of the substrate and the carrier head (e.g., based on a notch), and calculate a precession rate of the substrate based on the outer diameter of the substrate, the inner diameter of the retaining ring, and the rotation rate (e.g., rounds per minute) of the carrier head. The system can therefore change pressure applied to a target angular position on the substrate precisely.
In some implementations, the controller 190 can adjust pressures for reducing angular variation during polishing by counter-balancing the observed precession rate of the substrate 10. As an example in connection with
The polishing system can also include a rotary position sensor, e.g., a flange attached to an edge of the platen that will pass through a stationary optical interrupter, to provide additional data for determination of which substrate and the position on the substrate of the measured spectrum. The controller can thus associate the various measured spectra with the zones 188 or 148d (see
As an example, referring to
For each measured spectrum, the controller 190 can calculate a characterizing value. The characterizing value is typically the thickness of the outer layer, but can be a related characteristic such as thickness removed. In addition, the characterizing value can be a physical property other than thickness, e.g., metal line resistance. In addition, the characterizing value can be a more generic representation of the progress of the substrate through the polishing process, e.g., an index value representing the time or number of platen rotations at which the spectrum would be expected to be observed in a polishing process that follows a predetermined progress.
One technique to calculate a characterizing value is, for each measured spectrum, to identify a matching reference spectrum from a library of reference spectra. Each reference spectrum in the library can have an associated characterizing value, e.g., a thickness value or an index value indicating the time or number of platen rotations at which the reference spectrum is expected to occur. By determining the associated characterizing value for the matching reference spectrum, a characterizing value can be generated. This technique is described in U.S. Patent Publication No. 2010-0217430.
Another technique is to fit an optical model to the measured spectrum. In particular, a parameter of the optical model is optimized to provide the best fit of the model to the measured spectrum. The parameter value generated for the measured spectrum generates the characterizing value. This technique is described in U.S. Patent Publication No. 2013-0237128. Possible input parameters of the optical model can include the thickness, index of refraction and/or extinction coefficient of each of the layers, spacing and/or width of a repeating feature on the substrate.
Calculation of a difference between the output spectrum and the measured spectrum can be a sum of absolute differences between the measured spectrum and the output spectrum across the spectra, or a sum of squared differences between the measured spectrum and the reference spectrum. Other techniques for calculating the difference are possible, e.g., a cross-correlation between the measured spectrum and the output spectrum can be calculated.
Another technique is to analyze a characteristic of a spectral feature from the measured spectrum, e.g., a wavelength or width of a peak or valley in the measured spectrum. The wavelength or width value of the feature from the measured spectrum provides the characterizing value. This technique is described in U.S. Patent Publication No. 2011-0256805.
Pressure Control Based on the In-Situ Measurements
Generally, a desired thickness profile is to be achieved for the substrate at the end of a polishing process (or at the endpoint time when the polishing process stops). The desired thickness profile may include the same predetermined thickness for all zones of the substrate 10, or different, predetermined thicknesses for different zones of the substrate 10. When multiple substrates with non-uniform initial thicknesses are polished simultaneously, the multiple substrates may have the same desired thickness profile or different desired thickness profiles.
In some implementations, to keep the measured thickness relationships between the control zones and the reference zone similar to or the same as the thickness relationships illustrated by the desired thickness profile(s) at the endpoint time throughout the polishing process, the controller and/or computer can schedule to adjust the polishing rates of the control zones at a predetermined rate, e.g., every given number of rotations, e.g., every 5 to 50 rotations, or every given number of seconds, e.g., every 2 to 20 seconds. In some ideal situations, the adjustment may be zero at the prescheduled adjustment time. In other implementations, the adjustments can be made at a rate determined in-situ. For example, if the measured thicknesses of different zones are vastly different from the desired thickness relationships, then the controller and/or the computer may decide to make frequent adjustments for the polishing rates.
During polishing, the pressure applied on each region of the layer on a substrate is due to the membrane 182 deformation, and the membrane deformation is controlled by the vertical displacement of the corresponding piezoelectric actuator above that region. By calibrating the Young's modulus of the membrane, a static formula describing the relation between an actuator displacement and a pressure applied on the substrate can be obtained through Hook's law. As shown in
As used in the instant specification, the term substrate can include, for example, a product substrate (e.g., which includes multiple memory or processor dies), a test substrate, a bare substrate, and a gating substrate. The substrate can be at various stages of integrated circuit fabrication, e.g., the substrate can be a bare wafer, or it can include one or more deposited and/or patterned layers. The term substrate can include circular disks and rectangular sheets.
The above described polishing apparatus and methods can be applied in a variety of polishing systems. Either the polishing pad, or the carrier heads, or both can move to provide relative motion between the polishing surface and the substrate. For example, the platen may orbit rather than rotate. The polishing pad can be a circular (or some other shape) pad secured to the platen. Some aspects of the endpoint detection system may be applicable to linear polishing systems, e.g., where the polishing pad is a continuous or a reel-to-reel belt that moves linearly. The polishing layer can be a standard (for example, polyurethane with or without fillers) polishing material, a soft material, or a fixed-abrasive material. Terms of relative positioning are used; it should be understood that the polishing surface and substrate can be held in a vertical orientation or some other orientation.
Although the description above has focused on control of a chemical mechanical polishing system, the in-sequence metrology station can be applicable to other types of substrate processing systems, e.g., etching or deposition systems.
Embodiments, such as the control system, of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non transitory storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a computer-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.
The term “data processing apparatus” refers to data processing hardware and encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable digital processor, a digital computer, or multiple digital processors or computers. The apparatus can also be or further include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can optionally include, in addition to hardware, code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program, which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub programs, or portions of code. A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a data communication network.
The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). For a system of one or more computers to be “configured to” perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions.
Computers suitable for the execution of a computer program include, by way of example, can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.
Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
Control of the various systems and processes described in this specification, or portions of them, can be implemented in a computer program product that includes instructions that are stored on one or more non-transitory computer-readable storage media, and that are executable on one or more processing devices. The systems described in this specification, or portions of them, can be implemented as an apparatus, method, or electronic system that may include one or more processing devices and memory to store executable instructions to perform the operations described in this specification.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.
Other embodiments are within the scope of the following claims.
This claims priority to U.S. Provisional Application Ser. No. 63/043,616, filed on Jun. 24, 2020, the disclosure of which is incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5720845 | Liu | Feb 1998 | A |
6270397 | Wu | Aug 2001 | B1 |
6579151 | Tseng | Jun 2003 | B2 |
6623343 | Kajiwara | Sep 2003 | B2 |
6722965 | Zuniga et al. | Apr 2004 | B2 |
7048621 | Chen | May 2006 | B2 |
7131891 | Elledge | Nov 2006 | B2 |
7357695 | Elledge | Apr 2008 | B2 |
8540550 | Fujihira et al. | Sep 2013 | B2 |
20040192173 | Zuniga et al. | Sep 2004 | A1 |
20060089092 | Chen et al. | Apr 2006 | A1 |
20060135040 | Herold et al. | Jun 2006 | A1 |
20070004321 | Elledge | Jan 2007 | A1 |
20100217430 | David et al. | Aug 2010 | A1 |
20110256805 | David et al. | Oct 2011 | A1 |
20130237128 | David et al. | Sep 2013 | A1 |
20160279756 | Chang et al. | Sep 2016 | A1 |
20170304990 | Chang et al. | Oct 2017 | A1 |
20190096722 | Dhandapani | Mar 2019 | A1 |
20200238471 | Barkam et al. | Jul 2020 | A1 |
20200243364 | Kobata et al. | Jul 2020 | A1 |
20210402546 | Brown et al. | Dec 2021 | A1 |
Number | Date | Country |
---|---|---|
1185028 | Jun 1998 | CN |
1288252 | Mar 2001 | CN |
1481295 | Mar 2004 | CN |
H11-165256 | Jun 1999 | JP |
2000-006002 | Jan 2000 | JP |
2000-202759 | Jul 2000 | JP |
2000-246628 | Sep 2000 | JP |
2000-296458 | Oct 2000 | JP |
2001-150330 | Jun 2001 | JP |
2001-212754 | Aug 2001 | JP |
2001-239450 | Sep 2001 | JP |
2006-524588 | Nov 2006 | JP |
4519972 | Aug 2010 | JP |
2019-072841 | May 2019 | JP |
2019532825 | Nov 2019 | JP |
2021-154421 | Oct 2021 | JP |
10-2012-0103126 | Sep 2012 | KR |
101387980 | Apr 2014 | KR |
20170125382 | Sep 2016 | KR |
200732087 | Sep 2007 | TW |
201446411 | Dec 2014 | TW |
WO 2001087541 | Nov 2001 | WO |
WO 2015199815 | Dec 2015 | WO |
WO 2021135849 | Jul 2021 | WO |
Entry |
---|
International Search Report and Written Opinion in International Appln. No. PCT/US2021/038537, dated Oct. 13, 2021, 13 pages. |
Office Action in TW Appln. No. 110123083, dated Mar. 14, 2022, 13 pages (with English search report). |
Office Action in Chinese Appln. No. 202180014450.4, dated Jun. 7, 2023, 24 pages (with English translation). |
Office Action in Taiwanese Appln. No. 111149352, dated Sep. 20, 2023, 12 pages (with English summary and search report). |
Office Action in Japanese Appln. No. 2022-544710, dated Oct. 31, 2023, 6 pages (with English translation). |
Number | Date | Country | |
---|---|---|---|
20210402547 A1 | Dec 2021 | US |
Number | Date | Country | |
---|---|---|---|
63043616 | Jun 2020 | US |