Method and apparatus for determining positions of a plurality of pixels to be introduced in a substrate of a photolithographic mask
11366383 · 2022-06-21
Assignee
Inventors
- Vladimir Dmitriev (Tsurit, IL)
- Kujan Gorhad (Kfar Kama, IL)
- Joachim Welte (Darmstadt, DE)
- Tanya Serzhanyuk (Rishon LeZion, IL)
Cpc classification
G03F7/70508
PHYSICS
G03F7/70625
PHYSICS
International classification
Abstract
The present invention refers to a method and an apparatus for determining positions of a plurality of pixels to be introduced into a substrate of a photolithographic mask by use of a laser system, wherein the pixels serve to at least partly correct one or more errors of the photolithographic mask. The method comprises the steps: (a) obtaining error data associated with the one or more errors; (b) obtaining first parameters of an illumination system, the first parameters determining an illumination of the photolithographic mask of the illumination system when processing a wafer by illuminating with the illumination system using the photolithographic mask; and (c) determining the positions of the plurality of pixels based on the error data and the first parameters.
Claims
1. A method for determining positions of a plurality of pixels to be introduced into a substrate of a photolithographic mask by use of a laser system, wherein the pixels serve to at least partly correct one or more errors of the photolithographic mask, the method comprising: a. obtaining error data associated with the one or more errors; b. obtaining first parameters of an illumination system, the first parameters determining an illumination of the photolithographic mask of the illumination system when processing a wafer by illuminating with the illumination system using the photolithographic mask, wherein obtaining the first parameters comprises deconvoluting an error correction map with a deconvolution kernel comprising an illumination pixel transmission; and c. determining the positions of the plurality of pixels based on the error data and the first parameters.
2. The method of claim 1, wherein the one or more errors comprise at least one of: at least one registration error of a pattern of the photolithographic mask, at least one optical transmission error of the substrate of the photolithographic mask, at least one planarity error of the substrate of the photolithographic mask, and at least one overlay error.
3. The method of claim 1, wherein step c. comprises determining the positions of the plurality of pixels based on the error data, the first parameters, and second parameters associated with a linear imaging transformation performed by the illumination system.
4. The method of claim 1, wherein the illumination system comprises at least one aperture determining the illumination of the photolithographic mask.
5. The method of claim 1, wherein obtaining the first parameters comprises: deconvoluting an error correction map with a deconvolution kernel comprising the illumination of the illumination system.
6. The method of claim 1, wherein determining the illumination pixel transmission comprises: deconvoluting the error correction map with the pixel density.
7. The method of claim 1, wherein determining the deconvolution kernel of the illumination comprises: a. generating a reference mask having a plurality of pixels arranged with a varying pixel density; b. illuminating several wafers with the reference mask using a monopole setting, wherein each wafer is illuminated with a different angle of the monopole setting relative to an optical axis of the reference mask; and c. determining the deconvolution kernel of the illumination from a variation of the critical dimension of the several illuminated wafers.
8. The method of claim 1, wherein determining the deconvolution kernel of the illumination comprises: a. illuminating a wafer by a photolithographic mask with an illumination of the illumination system, wherein the photolithographic mask does not have the plurality of pixels, and determining the critical dimension of the wafer; b. writing a pixel density into the substrate of the photolithographic mask; c. illuminating the wafer by the photolithographic mask with the illumination of the illumination system, and determining a critical dimension; d. determining a variation of the critical dimension by subtracting the critical dimension of step a. from the critical dimension of step c.; and e. determining the deconvolution kernel by deconvoluting the variation of the critical dimension with the written pixel density.
9. The method of claim 1, further comprising the step of determining a type of each of the plurality of pixels.
10. The method of claim 9, further comprising the step of determining laser beam parameters of the laser system based on the determined positions and the type of each of the plurality of pixels.
11. The method of claim 1, further comprising the step of generating a writing map based on the positions and the type of the determined pixels, wherein the writing map describes a distribution of the plurality of pixels to be introduced in the substrate of the photolithographic mask.
12. The method of claim 11, wherein the writing map compensates an averaging effect of an illumination of the photolithographic mask by the illumination system having the first parameters and/or second parameters associated with a linear imaging transformation performed by the illumination system on the plurality of pixels when processing the wafer.
13. The method of claim 12, further comprising the step of increasing a density of pixel arrangements in the writing map, and/or reducing a pixel density within the pixel arrangements in the writing map for compensating the averaging effect of the illumination of the illumination system.
14. A non-transitory computer-readable medium storing a computer program comprising instructions for causing a computer system to perform the steps of claim 1.
15. The method of claim 1, wherein the first parameters comprise at least one of: an on-axis illumination setting, an annular illumination setting, a dipole illumination setting, a quadrupole illumination setting, a disar illumination setting, a quasar illumination setting, or a source mask optimization, SMO, setting.
16. An apparatus for determining positions of a plurality of pixels to be introduced into a substrate of a photolithographic mask by use of a laser system, wherein the pixels serve to at least partly correct one or more errors of the photolithographic mask, wherein the apparatus comprises: a. means for obtaining error data associated with the one or more errors; b. means for obtaining first parameters of an illumination system, the first parameters determining an illumination of the photolithographic mask by the illumination system when processing a wafer by illuminating with the illumination system using the photolithographic mask, wherein obtaining the first parameters comprises deconvoluting an error correction map with a deconvolution kernel comprising an illumination pixel transmission; and c. means for determining the positions of the plurality of pixels based on the error data and the first parameters.
17. The apparatus of claim 16, wherein the means for obtaining error data comprises means for measuring the error data of the photolithographic mask.
18. The apparatus of claim 16, further comprising means for determining an optical transmission variation across the photolithographic mask.
19. The apparatus of claim 16, wherein the apparatus is adapted to execute the steps of: obtaining error data associated with the one or more errors; obtaining first parameters of an illumination system, the first parameters determining an illumination of the photolithographic mask of the illumination system when processing a wafer by illuminating with the illumination system using the photolithographic mask; and determining the positions of the plurality of pixels based on the error data and the first parameters.
20. The apparatus of claim 16, wherein the first parameters comprise at least one of: an on-axis illumination setting, an annular illumination setting, a dipole illumination setting, a quadrupole illumination setting, a disar illumination setting, a quasar illumination setting, or a source mask optimization, SMO, setting.
21. A method for determining positions of a plurality of pixels to be introduced into a substrate of a photolithographic mask by use of a laser system, wherein the pixels serve to at least partly correct one or more errors of the photolithographic mask, the method comprising: obtaining error data associated with the one or more errors; obtaining first parameters of an illumination system, the first parameters determining an illumination of the photolithographic mask of the illumination system when processing a wafer by illuminating with the illumination system using the photolithographic mask, wherein obtaining the first parameters comprises deconvoluting an error correction map with a deconvolution kernel comprising the illumination of the illumination system; and determining the positions of the plurality of pixels based on the error data and the first parameters.
22. A method for determining positions of a plurality of pixels to be introduced into a substrate of a photolithographic mask by use of a laser system, wherein the pixels serve to at least partly correct one or more errors of the photolithographic mask, the method comprising: obtaining error data associated with the one or more errors; obtaining first parameters of an illumination system, the first parameters determining an illumination of the photolithographic mask of the illumination system when processing a wafer by illuminating with the illumination system using the photolithographic mask; and determining the positions of the plurality of pixels based on the error data and the first parameters; generating a writing map based on the positions and the type of the determined pixels, wherein the writing map describes a distribution of the plurality of pixels to be introduced in the substrate of the photolithographic mask; wherein the writing map compensates an averaging effect of an illumination of the photolithographic mask by the illumination system having the first parameters and/or second parameters associated with a linear imaging transformation performed by the illumination system on the plurality of pixels when processing the wafer.
Description
DESCRIPTION OF DRAWINGS
(1) To better understand the present invention and to appreciate its practical applications, the following Figures are provided and referenced hereafter. It should be noted that the Figures are given as examples only and in no way limit the scope of the invention.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
DETAILED DESCRIPTION
(22) In the following, the present invention will be more fully described hereinafter with reference to the accompanying Figures, in which exemplary embodiments of the invention are illustrated. However, the present invention may be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and will convey the scope of the invention to persons skilled in the art.
(23) In particular, the inventive method is described in the context of photolithographic masks. However, the person skilled in the art will appreciate that the defined method is not restricted to the application of correcting defective photolithographic masks. Rather, the inventive method can be applied to all transmissive optical elements that are corrected by the introduction of a plurality of pixels. Further, the method described in this application can also be applied to correct templates for the nanoimprint lithography.
(24)
(25) The portion of the substrate 110 of the photolithographic mask 100 carrying pattern elements 120 is called an active area 170 of the mask 100, whereas the boundary portion that does not have pattern elements 120 is called a non-active area 180. A laser beam having the actinic exposure or illumination wavelength illuminates the substrate 110 of the mask 100 through the second or rear surface 160 of the substrate 110.
(26)
(27)
(28) The metrology tool 340 that measures the error(s) 140, 240 of a photolithographic mask 100 and a template 200, respectively, can be a laser system that can determine a CD (critical dimension) variation or a critical dimension uniformity (CDU) of pattern elements 120 across the mask 100, and can thus, for example, determine registration errors 140 of the photomask 100. For example, the metrology system 340 can be a PROVE® tool that can be used for measuring registration errors and/or overlay errors.
(29) In addition to the metrology tool 340, the first interface 310 of the apparatus 300 can also be connected to a metrology tool that can measure a variation of the optical transmission across a photolithographic mask 100 and/or a template 200 as for example a WLCD tool (not represented in
(30) In another embodiment, it is possible to integrate the metrology tool 340 into the apparatus 300 (not depicted in
(31) Further, the apparatus 300 comprises a second interface 320 that connects the apparatus 300 to the illumination system 350 via the connection 325. Hence, in the example depicted in
(32) In the illumination system 350, the aperture 420 may be replaced by another aperture having different openings that generate a different illumination setting of the illumination system 350. The illumination system 350 may be able to set an on-axis or an off-axis illumination setting that best images the pattern 130 of the photomask 100 into the photoresist arranged on a wafer. The illumination system 350 can implement any requested illumination setting by changing the aperture 420. For example, apart from an annular illumination setting, the illumination system 350 can adjust a dipole illumination setting, a quadrupole illumination setting, a disar illumination setting, a quasar illumination setting, and a source mask optimization (SMO) setting. Further, instead of an aperture type of illumination setting, modules that allow more flexible illumination schemes can also be used, such as micro-mirror based, or faceted mirror based modules.
(33) The light 415 that has transmitted through the opening(s) 425 of the aperture 420 impacts onto the condenser 430. The condenser 430 directs the light 415 to the rear side 160 of the photomask 100. The photomask 100 is not part of the illumination system 350. The mask 100 is fixed to a chuck 440 of the illumination system 350. The chuck 440 may be movable in three dimensions. Further, the chuck 440 may rotate the photomask 110 via two axes that are perpendicular to each other. Thus, the chuck 440 realizes a linear imaging transformation of the photomask 100. The linear imaging transformation of the photolithographic mask comprises two parameters for a mask shift, two parameters for a mask scaling, and two parameters for a generalized mask rotation.
(34) The light 415 structured by the pattern 130 of the mask 100 enters the objective 450. The objective 450 images the pattern element 120 of the mask 100 onto a photoresist 470 arranged on a wafer 460. Typically, the objective 450 reduces the size of the pattern elements 130 of the mask 100 by a factor of four or five on the photoresist 470 of the wafer 460. As already mentioned above, the wafer 460 is not part of the illumination system 350. The wafer 460 is fixed in the illumination system 350 by a second chuck 480.
(35) The illumination system 350 has a connection 325 to the second interface 320 of the apparatus 300. The illumination system 350 can transmit its possible illumination settings as first parameters to the apparatus 300. The first parameters may be a fixed illumination setting determined by the aperture 420. It is also possible that the illumination setting is variable. In this case the illumination setting can transmit the available illumination settings to the apparatus 300. The first parameters may also comprise a position dependence of the illumination within one or more openings 525 of the aperture 425.
(36) Typically, the determination of the illumination setting is part of the mask design process. This means that it is fixed during the mask layout process. Therefore, the illumination setting of the illumination system 350 is often obtained from the mask design software or from the database where the mask design is stored.
(37) Further, the illumination system 350 communicates the range of the linear imaging transformations that the chuck 440 can perform to the apparatus 300. The available range of the linear imaging transformations is transmitted in form of an available range of the second parameters of the illumination system 350. In an alternative embodiment, the illumination system 350 communicates a fixed set of second parameters to the apparatus 300. This can be done if one, several or all parameters of the illumination system 350 are determined by one or more constraints the illumination system 350 should fulfil.
(38) The illumination system 350 can be realized in the form of a lithographic scanner, also called scanner, or a lithographic stepper, also known as a stepper.
(39) Again, with respect to
(40) The processing unit 330 may also vary the type of pixels when determining the positions of the pixels. The position data and the various kinds of pixels may be simultaneously varied in a joint optimization process. Further, the first parameters of the illumination system 350 associated with the illumination setting and/or the second parameters of the illumination system associated with the linear imaging transformation can also be varied depending on whether these parameters are fixed or not by the illumination system 300. The positions and the type of the pixels as well as the first and the second parameters of the illumination system 350 may be determined in a joint optimization process. Details of a joint optimization process are described in the U.S. Pat. No. 9,658,527 B2 of the applicant.
(41) The positions of pixels determined in a joint optimization process can be summarized in a writing map PD(x,y,z) 360. The writing map PD(x,y,z) 360 may contain the positions and types of all pixels necessary to correct the error 140 of the mask 100. If this is the case, the writing map 360 typically comprises pixels of two or more pixel types. But, it is also possible to generate separate writing maps for each individual type of pixels PD.sub.i(x,y,z).
(42) The pixels determined by the processing unit 330 may be arranged in several pixel arrangements. A pixel arrangement is characterized in that a density of pixels is constant within a pixel arrangement and a pixel arrangement only comprises one type of pixel. Typically, pixels or pixel arrangements are arranged in a layer within the substrate 110 of a photolithographic mask 100. Thus, a pixel density PD(x,y,z) or a pixel arrangement density is often a two-dimensional density PD(x,y,z=const.). But, it is also possible to arrange pixels or pixel arrangements as a one-dimensional structure or a three-dimensional volume PD(x,y,z).
(43) The processing unit 330 may be realized in hardware, software, firmware or a combination thereof. The processing unit 330 may be a microprocessor, a general-purpose processor, a special purpose processor, CPU (Central Processing Unit), or the like. It may be part of a computer system, for example of the computer system implementing the apparatus 300. Alternatively, the processing unit 330 may be set-up as a separate unit such as a PC (Personal Computer), a workstation, a mainframe, etc. (not indicated in
(44) The apparatus 330 can output the writing map(s) PD(x,y,z) 360 via the connection 335 to the error correction apparatus 370.
(45) The error correction apparatus 370 includes a pulse laser source 530 that produces a beam or a light beam 535 of pulses or light pulses. The laser source 530 generates light pulses of variable duration. The pulse duration may be as low as 10 fs (femtosecond) but may also be continuously increased up to 100 ps (picosecond). The pulse energy of the light pulses generated by the pulsed laser source 530 can also be adjusted across a huge range reaching from 0.01 μJ per pulse up to 10 mJ per pulse. Further, the repetition rate of the light pulses comprises the range from 1 Hz to 100 MHz. For example, the light pulses may be generated by a Ti:Sapphire laser operating at a wavelength of 800 nm. However, the error correction method is not limited to this laser type, principally all laser types may be used having a photon energy that is smaller than the band gap of the substrate 110 of the photolithographic mask 100 and that are able to generate pulses with durations in the femtosecond range. Therefore, for example, Nd-YAG laser or dye laser systems may also be applied (not shown in
(46) The steering mirror 590 directs the pulsed laser beam 535 into the focusing objective 540. The objective 540 focuses the pulsed laser beam 535 through the rear substrate surface 160 into the substrate 110 of the photolithographic mask 100. The NA (numerical aperture) of the applied objectives 540 depends on the predetermined spot size of the focal point and the position of the focal point within the substrate 110 of the photolithographic mask 100 relative to the rear substrate surface 160. The NA of the objective 540 may be up to 0.9, which results in a focal point spot diameter of essentially 1 μm and a maximum intensity of essentially 10.sup.20 W/cm.sup.2. The NA of the objective 540 may be even higher than 0.9, but the higher the NA the more constraints the design of the objective 540 have. Furthermore, it is beneficial that the objective 540 has a large working distance so that it allows to focus on the center of the mask 100 or even on the front side 150 of the substrate 110 of the photolithographic mask 100.
(47) The error correction apparatus 370 also includes a controller 580 and a computer system 560 that manage the translations of the two-axis positioning stages of the sample holder 520 in the plane of the x- and y-direction. The controller 580 and the computer system 560 also control the translation of the objective 540 perpendicular to the plane of the chuck 520 (z-direction) via the one-axis positioning stage 550 to which the objective 540 is fixed. It should be noted that in other embodiments of the error correction apparatus 370, the chuck 520 may be equipped with a three-axis positioning system to move the photolithographic mask 100 to the target location and the objective 540 may be fixed, or the chuck 520 may be fixed and the objective 540 may be moveable in three dimensions.
(48) The computer system 560 may be a microprocessor, a general-purpose processor, a special purpose processor, a CPU (Central Processing Unit), or the like. It may be arranged in the controller 580, or may be a separate unit such as a PC (Personal Computer), a workstation, a mainframe, etc. The computer system 560 may further comprise an interface that connects the computer system 560 with the apparatus 300 of
(49) Further, the error correction apparatus 370 may also provide a viewing system including a CCD (Charge-Coupled Device) camera 565 that receives light from an illumination source arranged in the chuck 520 via the dichroic mirror 545. The viewing system facilitates navigation of the photolithographic mask 100 to the target position. Further, the viewing system may also be used to observe the formation of a modified area on the rear substrate surface 160 of the photolithographic mask 100 by the pulse laser beam 535 of the light source 530.
(50) In a configuration not represented in
(51)
(52) Further, it is possible to correct registration errors without introducing a too large amount of CDU. In this case the part of the defect does not occur which arises from writing pixels in the middle of the mask substrate instead of writing the pixels in a z-direction as close as possible to the plane where the pattern elements are arranged. In an alternative approach, it is also conceivable to accept a larger amount of registration correction that can subsequently be corrected by introducing a further layer of pixel arrangements 620 to recover a good CDU. For correcting registration errors, pixels may typically have a height of 10 μm to 15 μm. For correcting a transmission variation or a CDU, a pixel height may be approximately 5 μm.
(53) The determination of pixel arrangements 630 and 640 having a different density of pixel arrangements considers the CD of the pattern elements 120 directly below the pixel arrangements 630 and 640. But, the current method of the CD correction does not consider the illumination setting of the illumination system 350 used when illuminating a wafer 470 through the corrected photolithographic mask 600.
(54)
(55) In the absence of pixels or the pixel arrangements 720 in the mask substrate 110, the pattern elements 120 are homogeneously illuminated by the optical radiation 710. The presence of pixels or pixel arrangements 720 in the mask substrate 110 changes this situation. In the following, the effect of a single pixel arrangement 720 is estimated on the pattern elements 120 arranged on the front side 150 of substrate 110. Modern illumination systems 370 use immersion lithography, thus the NA (numerical aperture) for the illumination of the wafer 460 typically amounts to: NA.sub.W=1.35. If it is assumed that the projection objective 450 reduces the pattern element size by a factor of four, the NA at the level of the photomask 600 is: NA.sub.M=NA.sub.W/4=1.35/4=0.34. The angle between the marginal ray 770 and the optical axis 780 can be determined from Snell's law: NA.sub.M=n.sub.M.Math.sin α.sub.M=n.sub.G.Math.sin α.sub.G, and assuming n.sub.M=1, the angle α.sub.G can be expressed: α.sub.G=arcsin[(sin α.sub.M)/n.sub.Qz]−arcsin[NA.sub.G/n.sub.Qz]. As it is indicated in
(56)
(57) This means that the pattern element 120 receives optical radiation subjected to an averaging effect of the pixel arrangements 810, 820 and 830. In the prior art, the effect of the pixel arrangement 820 has only been considered on the image generation of the pattern element 120. In a similar manner, the effect of the attenuation of the pixel arrangement 810 and 830 has been restricted to the pattern element 118 and 122, respectively.
(58) The diagram 900 of
(59) It is also clearly seen from
(60) For the correction of the CD error map CD.sub.E(x,y) different approximations can be used. In a first approximation, it is assumed that the pixels act as scattering centers having a spherical shape for the optical radiation 920 incident on the pixels. This relation is expressed in equations (14) and (15) indicated above. In a second approach, this restriction of the scattering behavior of the pixels is removed. As already indicated above, the scattering effect of a pixel or a pixel arrangement depends on the angle the optical radiation incidents on the pixel or the pixel arrangement. This effect is caused by a non-spherical shape of a pixel. Thus, in the general case, a variation of the angle of the optical radiation incident on the projected area 925 within the projected area 925 on the effects of the pixels is considered. Equations (7) and (11) describe the general case.
(61) The diagram 1000 of
(62)
(63)
(64) The CDU range to be corrected by the CD error correction map CD.sub.C(x,y) caused by the writing map PD(x,y,z) is approximately 6 nm in the specific example of
(65)
(66) Thus, the effective writing map PD.sub.C(x,y,z) of
(67) As discussed in the context of
(68) In order to generate an optimal writing map, the illumination setting of the illumination system 350 should be considered when determining the positions and the type(s) of pixels that are to be introduced in the mask substrate 110. The illumination setting is represented by the first parameters of the illumination system 350. When determining the positions and/or the type of the pixels, a target CD ΔCD.sub.C(x,y) of the photomask 600 should also be taken into account. In a first approach, the optimal writing map is generated by iteratively varying the optical attenuation of each pixel arrangement 950 that is hit by the optical radiation 920 in order to obtain the best correction performance ΔCD(x,y). Alternatively, or additionally, the density of the pixel arrangements 620 can also be varied to determine an optimized writing map.
(69) In a second approach, the optimal writing map PD(x,y,z) can be obtained from equation (11). To obtain the optical writing map, a deconvolution is generated for the convolution of the illumination pixel transmission IPT(x,y) and the writing map PD(x,y,z) as indicated in equation (9). As it is indicated by equation (11), the optical writing map PD(x,y,z) can be determined by an inverse Fourier transform of the quotient of the Fourier transform of the CD variation and the Fourier transform of the illumination pixels transmission or the convolution kernel IPT(x,y). The convolution kernel IPT(x,y) can be obtained from equation (16).
(70) The deconvolutional kernel IPT(x,y) of the illumination or the illumination setting can be determined by two different ways. In a first approach, it is possible to write a plurality of pixels or pixel arrangements 610, 620 in a substrate 110 of a reference mask or a calibration mask. The reference mask is then used for illuminating various wafers 460 using various illumination settings. Preferably the various wafers are illuminated using a monopole setting and systematically varying the angle of the monopole setting with respect to the optical axis. By analyzing the CD variation of the various wafers 460, the deconvolution kernels of various illumination settings can be determined.
(71) In a second approach for determining the deconvolution kernel IPT(x,y) of the illumination setting, the CD change ΔCD(x,y) of a plurality of pixels is determined by measuring a wafer 460 prior to and after the introduction of the pixels into the substrate 110 of a reference or a calibration mask 100, 600. When using the second approach, it is beneficial if the reference mask has pixels or the pixel arrangements 610, 620 with a steeply varying pixel density in the x- and/or the y-direction.
(72)
(73)
(74) The person skilled in the art will appreciate that a deconvoluted or optimized writing map PD(x,y,z) 1700 can be determined for all types of defects of photolithographic masks 100. In particular, a deconvoluted writing map PD.sub.D(x,y,z) can be determined which corrects two or more different types of errors of the photolithographic mask 100.
(75) The deconvoluted writing map PD(x,y,z=const.) just comprises pixel arrangements 620 written in one layer 750. Further improvements of the optimized writing map PD(x,y,z) can be achieved by introducing pixel arrangements 620 in two or more layers.
(76)
(77)
(78)
(79) In some implementations, the computer system 560 can include one or more data processors for processing data, one or more storage devices for storing data, such as one or more databases, and/or one or more computer programs including instructions that when executed by the computer system causes the computer system to carry out the computations or processes described above. The computer system can include one or more input devices, such as a keyboard, a mouse, a touchpad, and/or a voice command input module, and one or more output devices, such as a display, and/or an audio speaker.
(80) The computer system can show graphical user interfaces on the display to assist the user of the error correction apparatus.
(81) In some implementations, the computer system 560 can include digital electronic circuitry, computer hardware, firmware, software, or any combination of the above. The features related to processing of data can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. Alternatively or addition, the program instructions can be encoded on a propagated signal that is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a programmable processor.
(82) In some implementations, the operations associated with processing of data described in this document can be performed by one or more programmable processors executing one or more computer programs to perform the functions described in this document. A computer program can be written in any form of programming language, including compiled or interpreted 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.
(83) For example, the computer system 560 is configured to be suitable for the execution of a computer program and can include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only storage area or a random access storage area or both. Elements of a computer include one or more processors for executing instructions and one or more storage area 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 machine-readable storage media, such as hard drives, magnetic disks, magneto-optical disks, or optical disks. Machine-readable storage media suitable for embodying computer program instructions and data include various forms of non-volatile storage area, including by way of example, semiconductor storage devices, e.g., EPROM, EEPROM, and flash storage devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM discs.
(84) In some implementations, the processes for operating an error correction apparatus described above can be implemented using software for execution on one or more mobile computing devices, one or more local computing devices, and/or one or more remote computing devices. For instance, the software forms procedures in one or more computer programs that execute on one or more programmed or programmable computer systems, either in the mobile computing devices, local computing devices, or remote computing systems (which may be of various architectures such as distributed, client/server, or grid), each including at least one processor, at least one data storage system (including volatile and non-volatile memory and/or storage elements), at least one wired or wireless input device or port, and at least one wired or wireless output device or port.
(85) In some implementations, the software may be provided on a medium, such as a CD-ROM, DVD-ROM, or Blu-ray disc, readable by a general or special purpose programmable computer or delivered (encoded in a propagated signal) over a network to the computer where it is executed. The functions may be performed on a special purpose computer, or using special-purpose hardware, such as coprocessors. The software may be implemented in a distributed manner in which different parts of the computation specified by the software are performed by different computers. Each such computer program is preferably stored on or downloaded to a storage media or device (e.g., solid state memory or media, or magnetic or optical media) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer system to perform the procedures described herein. The inventive system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer system to operate in a specific and predefined manner to perform the functions described herein.
(86) While this specification contains many implementation details, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular embodiments of the invention. 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. The separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments. 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.
(87) 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 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.
(88) Thus, particular embodiments of the invention have been described. Other embodiments are within the scope of the following claims. In addition, the actions recited in the claims can be performed in a different order and still achieve desirable results.