Reticle data decomposition for focal plane determination in lithographic processes

A method of determining focal planes during a photolithographic exposure of a wafer surface is provided. The method may include receiving data corresponding to a surface topography of the wafer surface and determining, based on the received data corresponding to the surface topography, a plurality of regions having substantially different topographies. Reticle design data is received for exposure on the wafer surface, whereby, from the received reticle design data, reticle design data subsets that are each allocated to a corresponding one of the determined plurality of regions are generated. A best fit focal plane is then generated for each of the determined plurality of regions.

BACKGROUND

a. Field of the Invention

The present invention generally relates to semiconductor manufacturing, and more particularly to focal plane determination in lithographic processes.

b. Background of Invention

As semiconductor groundrules shrink, efforts may be made to enable the use of current generation lithography tools (e.g., high NA 193 nm immersion) for technology nodes below, for example, 20 nm or 22 nm. These efforts may, among other things, be a function of the need to reduce lithography costs and manufacturing delays associated with advancing new lithography tools.

One factor that may contribute to limiting the capabilities of advanced lithography tools is depth of focus. There are various factors which contribute to focus variability when a wafer is being exposed during a lithographic process. A significant factor associated with the advent of focus variability is the field wafer topography. For example, back-end-of-the-line (BEOL) copper (Cu) chemical mechanical polishing (CMP) processes may contribute to generating surface topography variations on each metal layer within a reticle field (e.g., exposure area of a wafer or chip).

A surface topography variation on a BEOL metal layer within the reticle field may depend on geometric design parameters such as, for example, local metal pattern densities, electrical connection linewidths, and shape perimeter densities at both the level of the CMP and at underlying metal levels. In other words, the CMP process applied to the BEOL metal layer may create a 3-dimensional (3D) topography on the metal layer rather than a planar surface. Moreover, as new metal layers are fabricated and polished using CMP, the 3D topography of the underlying metal layers also contributes to the topography variations of each new fabricated layer.

BRIEF SUMMARY

According to one or more embodiments, it may be advantageous, among other things, to decompose (i.e., split) reticle data into at least two data sets in order to determine a focal plane for each individual one of the at least two data sets (i.e., subsets) and, thus, achieve better average focus (i.e., a reduced non-correctable error) across a reticle field.

According to at least one exemplary embodiment, a method of determining focal planes during a photolithographic exposure of a wafer surface is provided. The method may include receiving data corresponding to a surface topography of the wafer surface and determining, based on the received data corresponding to the surface topography, a plurality of regions having substantially different topographies. Reticle design data is received for exposure on the wafer surface, whereby, from the received reticle design data, reticle design data subsets that are each allocated to a corresponding one of the determined plurality of regions are generated. A best fit focal plane is then generated for each of the determined plurality of regions.

According to at least one other exemplary embodiment, a computer program product for determining focal planes during a photolithographic exposure of a wafer surface is provided. The computer program product includes a computer readable storage medium readable by a processing circuit and stores instructions for execution by the processing circuit for performing a method. The performed method may include receiving data corresponding to a surface topography of the wafer surface and determining, based on the received data corresponding to the surface topography, a plurality of regions having substantially different topographies. Reticle design data is received for exposure on the wafer surface, whereby, from the received reticle design data, reticle design data subsets that are each allocated to a corresponding one of the determined plurality of regions are generated. A best fit focal plane is then generated for each of the determined plurality of regions.

According to yet another exemplary embodiment, a computer system for determining focal planes during a photolithographic exposure of a wafer surface may include a memory and a processor in communication with the memory, whereby the processor includes an instruction fetching unit for fetching instructions from memory and one or more execution units for executing fetched instructions. The computer system may be capable of performing a method including receiving data corresponding to a surface topography of the wafer surface and determining, based on the received data corresponding to the surface topography, a plurality of regions having substantially different topographies. Reticle design data is received for exposure on the wafer surface, whereby, from the received reticle design data, reticle design data subsets that are each allocated to a corresponding one of the determined plurality of regions are generated. A best fit focal plane is then generated for each of the determined plurality of regions.

DETAILED DESCRIPTION

The following one or more exemplary embodiments describe the processing of reticle data in order to enhance focal plane selection during photolithographic processes. The plane of exposure of a lithographic tool would typically be set to coincide with the surface plane of the wafer area being exposed (i.e., reticle field). However, based on variations in the surface topography of the wafer, a fixed focal plane may be defocused relative to certain points on the wafer surface. Accordingly, the following one or more embodiments describe decomposing or splitting reticle data into reticle data groups. Each of the reticle data groups is then assigned a different focal plane setting to achieve better average focus across the reticle field.

Referring toFIG. 1A, since the CMP induced topography of, for example, a fabricated BEOL metal layer can be modeled, a 3D contour100of the expected surface height after CMP may be generated. For example, as depicted in region102of the reticle field104(e.g., wafer area or chip area), the darker region tiles may be representative of a surface topography of increased height compared to region106, which includes lighter colored tiles.

A lithography tool generally exposes a reticle field by scanning a slit of fixed width (e.g., 8 mm) from one end of the reticle field to the other. Alternatively, the slit may be fixed in position while the wafer is moved. As the slit scans across the reticle field (e.g., wafer or chip area), the lithography tool exposes the slit in a focal plane, and chooses the best possible instantaneous exposure plane. Referring toFIG. 1A, for example, as slit110moves across the reticle field104, the modeled 3D topography of region102may indicate a greater height at region102relative to region106. Thus, the lithography tool may choose the best possible instantaneous exposure plane (i.e., focal plane) based on the height differences between region102and104.

Referring toFIG. 1B, in operation, based on the topography across the reticle field104, the exposure focal plane Efp(depicted by dashed area) may be varied by three-dimensionally adjusting a wafer115orientation according to height (H), a first tilt axis (X1), and a second tilt axis (X2) relative to a collimated illumination signal120that is generated by an optical source130and condenser lens140of lithography tool150. As further depicted, the collimated illumination signal120propagates through the mask or reticle145, through slit110, and then onto reticle field104of the wafer115. Selecting the focal plane Efphaving a best-fit focal plane relative to the surface topography of wafer115is further explained with the aid ofFIG. 2, whereby a graph200illustrating the wafer's115surface topography is depicted as a function of height (H) across the reticle field201.

Thus, referring toFIG. 2, for illustrative clarity, the selection of a best-fit focal plane is illustrated in two-dimensions (2D). However, as illustrated and described in relation toFIG. 1B, the focal plane can continuously be rotated in 3D about axes H, X1, and X2, which may be orthogonal to X1, to achieve the best possible instantaneous fit to the wafer topography. As depicted inFIG. 2, since the wafer surface, as indicated by 2D topography profile202, is not flat across the slit, not all points across the slit can be in perfect focus. For example, point A and point B are at different heights (H). Similarly, point C and point D are at different heights. Also, points A and D are at substantially the same height, while points B and C are at substantially the same height. Thus, based on such the topography profile202, a best fit focal plane204is accordingly selected. As depicted, the selected best-fit focal plane204is approximately in-focus with points B and C and out-of-focus with points A and D. However, the selected focal plane204may be set at the average of the maximum height Hmaxand the minimum height Hminof the 2D topography profile202to provide the best fit.

Existing modeling tools may be used to generate a 3D topography of a wafer surface within the reticle field based on, for example, BEOL CMP processes and reticle design data. An example of such a 3D topography is illustrated and described above in relation toFIG. 1A. During such a 3D modeling process, for example, a 30 mm by 30 mm reticle field (e.g., chip area) may be organized into 10 μm by 10 μm tiles. For example, each of the tiles (e.g.,101) within field104(FIG. 1A) may have an area of 10 μm by 10 μm. As depicted by the visual contrast legend111, each tile includes a height value based on the irregular surface within the 30×30 mm reticle field. Within each region107of the slit110, each of the height values associated with the tiles are utilized in order to generate a best-fit focal plane. This concept is described in 2D inFIG. 2. As depicted inFIG. 2, the best-fit focal plane204includes focus errors Er(i.e., non-correctable focus errors) relative to various points (e.g., A, D, etc.) across the wafer topography exposed through the slit110(FIG. 1A). However, according to the following embodiments, reticle data, which includes the design data associated with generating the conductive tracks on a given BEOL layer, may be processed in order to reduce the focus errors Er(i.e., non-correctable focus errors).

Referring toFIG. 3, for illustrative clarity, the selection of a best-fit focal plane according to one embodiment is also illustrated in two-dimensions (2D). However, as illustrated and described in relation toFIG. 1B, the focal plane can continuously be rotated in 3D about axes H, X1, and X2to achieve the best possible instantaneous fit to the wafer topography as the slit110moves across the reticle field104, as indicated by arrow155. The height measured along axis H may be determined relative to a reference plane such as, for example, reference plane P. Also, as previously described axes X1, and X2may be orthogonal with respect to each other.

As depicted inFIG. 3, since the wafer surface, as indicated by 2D topography profile202, is not flat across the slit, not all points across the slit can be in perfect focus. For example, point E and point F are at different heights (H). Similarly, point I and point J are at different heights. Based on the topography profile202, however, a plurality of best fit focal planes304a,304b,304cmay be accordingly selected in a manner that reduces the corresponding focus errors E′r(i.e., non-correctable focus error). As depicted, across the slit, the total reticle data may be divided into, for example, three non-overlapping data reticle subsets, Reticle A, Reticle B, and Reticle C. A non-overlapping data reticle subset may include a reticle subset which has design data that is unique to that subset and not shared with another reticle subset or subsets. For example, if reticle data is to be divided into two (2) reticle subsets, the generated first and second subsets may each include design data that does not appear in the other subset.

For Reticle A, which corresponds to the wafer topography202in Region A, best fit focal plane304ais selected. As depicted, focal plane304asubstantially tracks the surface topography (e.g., points E & F) of Region A with a reduced focus error E′rrelative to the focus error Er(FIG. 2) associated with focal plane204(FIG. 2). For Reticle B, which corresponds to the wafer topography202in Region B, best fit focal plane304bis selected. As depicted, focal plane304bsubstantially tracks the surface topography (e.g., points G & H) of Region B with a reduced focus error E′rrelative to the focus error Er(FIG. 2) associated with focal plane204(FIG. 2). Also, for Reticle C, which corresponds to the wafer topography202in Region C, best fit focal plane304cis selected. As depicted, focal plane304csubstantially tracks the surface topography (e.g., points I & J) of Region C with a reduced focus error E′rrelative to the focus error Er(FIG. 2) associated with focal plane204(FIG. 2). Thus, as shown inFIG. 3, by dividing the wafer topography202across the reticle field201into a plurality of regions (i.e., Region A, Region B, and Region C) that each correspond to a portion of the reticle data, enhanced focus plane selection may be ascertainable.

Referring toFIG. 4, a distribution pattern400of reticle design data based on the topography402of the surface of the wafer115(FIG. 1B) for the purpose determining best fit focal planes is depicted. As illustrated, regions of the 2D topography profile402having similar topographies are determined. For example, based on the 2D topography profile402, it may be determined that regions A1, A2, and A3of profile402have substantially similar topographies across the reticle field401. Regions C1and C2along with regions B1, B2, B3, and B4of profile402may also be determined to have substantially similar topographies across the reticle field401.

Based on the determination of the three (3) topography regions (i.e., A1-A3, B1-B4, C1-C2), the reticle design data is also divided into three (3) subsets. Thus, a first reticle design data subset may correspond to design data that is present at regions A1, A2, and A3of profile402. A second reticle design data subset may correspond to design data that is present at regions B1, B2, B3, and B4of profile402. The third reticle design data subset may accordingly correspond to design data that is present at regions C1and C2of profile402. Once the reticle design data is divided into three (3) subsets and assigned to their corresponding topographical regions, a focal plane may be determined for each of the topography regions A1-A3, B1-B4, C1-C2. Specifically, as depicted, focal plane404aprovides a best fit, and is utilized for, exposing the first reticle design data subset corresponding to regions A1-A3of profile402. Also, focal plane404bprovides a best fit, and is utilized for, exposing the second reticle design data subset corresponding to regions B1-B4of profile402. Focal plane404caccordingly provides a best fit, and is utilized for, exposing the third reticle design data subset corresponding to regions C1-C2of profile402. As depicted, each of the focal planes404a,404b,404care at different heights (h1-h3) relative to reference plane P and have different tilt angles (X1a, X1b), X1c). As described in relation toFIG. 1B, the focal planes may vary in 3D and, therefore, may also include another tilt angle X2(FIG. 1B).

FIG. 5refers to a flow diagram for a reticle data decomposition (RDD) process500, according to one embodiment. The process ofFIG. 5is described with the aid of the lithographic system block diagram600depicted inFIG. 6. At502, a mapping of the surface topography of a wafer surface prior to lithographic exposure is received for processing. The surface topography mapping (e.g., surface heights across reticle field) may be carried out using an interferometer tool following CMP or an atomic force microscope (SFM) scan tool. Generally, any modeling tool capable of mapping the surface topography of the wafer surface may be used. Referring toFIG. 6, for example, a topography mapping tool602such as an interferometer tool or an atomic force microscope (SFM) scan tool may generate the requisite surface topography mapping data for processing by the reticle data decomposition (RDD) processing unit604. The reticle data decomposition (RDD) processing unit604may be implemented as software, firmware, hardware, or any combination thereof.

At504, once the surface topography has been mapped (502), the mapped surface topography is divided into a plurality of regions that have a similar topography. For example, regions that have a similar topography may include those regions that include a height difference (Δh) within a predetermined range. One region (e.g., Region 1) may, for example, include heights (h) that vary between 134.0 μm and 134.5 μm. Thus, the height difference (Δh) is 0.5 μm (i.e., 134.5 μm-134.0 μm) over the predetermined range of about 134.0 μm to 134.5 μm. Another region (e.g., Region 2) may, for example, include heights (h) that vary between 134.0 μm and 133.5 μm. Thus, the height difference (Δh) is 0.5 μm (i.e., 134.0 μm-133.5 μm) over the predetermined range of about 133.5 μm to 134.0 μm. Also, another region (e.g., Region 3) may, for example, include heights (h) that vary between 133.5 μm and 133.0 μm. Thus, the height difference (Δh) is 0.5 μm (i.e., 133.5 μm-133.0 μm) over the predetermined range of about 133.0 μm to 133.5 μm.

At506, the reticle design data is decomposed or split into a number reticle data subsets corresponding to the number of plurality of regions determined at504. For example, if three regions (e.g., Regions 1, 2, and 3) are determined (504), the reticle design data is decomposed or split into a number of reticle data subsets (e.g., Reticle Data Subsets 1, 2, and 3), each allocated to a respective one of the three regions (e.g., Regions 1, 2, and 3). Particularly, Reticle Data Subset 1 may be allocated to Region 1, Reticle Data Subset 2 may be allocated to Region 2, and Reticle Data Subset 3 may accordingly be allocated to Region 3. Referring toFIG. 6, for example, once the requisite surface topography mapping data is received by the reticle data decomposition (RDD) processing unit604, the RDD processing unit604may divide the mapped surface topography into a plurality of regions having a similar topography such as Region 1, Region 2, and Region 3. The RDD processing unit604may then allocate the split reticle design data to each of the Region 1, Region 2, and Region 3.

Referring toFIG. 6, as depicted in the plan view of the wafer surface610, for example, a first portion of Reticle Data Subset 1 corresponding to wafer surface locations corresponding to Region 1 is allocated to area612. Also, a second portion of the Reticle Data Subset 1 corresponding to wafer surface locations corresponding to Region 1 is allocated to area614. A third portion of the Reticle Data Subset 1 corresponding to wafer surface locations corresponding to Region 1 is allocated to area616. Finally, a fourth portion of the Reticle Data Subset 1 corresponding to wafer surface locations corresponding to Region 1 is allocated to area618. Thus, since Region 1 includes areas612-618having a substantially similar topography, Reticle Data Subset 1 is accordingly allocated among the corresponding areas612-618of Region 1.

Further referring toFIG. 6, as depicted in the plan view of the wafer surface610, for example, a first portion of Reticle Data Subset 2 corresponding to wafer surface locations corresponding to Region 2 is allocated to area620. Also, a second portion of the Reticle Data Subset 2 corresponding to wafer surface locations corresponding to Region 2 is allocated to area622. A third portion of the Reticle Data Subset 2 corresponding to wafer surface locations corresponding to Region 2 is allocated to area624. A fourth portion of the Reticle Data Subset 2 corresponding to wafer surface locations corresponding to Region 2 is allocated to area626, while a fifth portion of the Reticle Data Subset 2 corresponding to wafer surface locations corresponding to Region 2 is allocated to area628. Finally, a sixth portion of the Reticle Data Subset 2 corresponding to wafer surface locations corresponding to Region 2 is allocated to area630. Thus, since Region 2 includes areas620-630having a substantially similar topography, Reticle Data Subset 2 is accordingly allocated among the corresponding areas620-630of Region 2.

Referring toFIG. 6, as further depicted in the plan view of the wafer surface610, for example, Reticle Data Subset 3 corresponding to wafer surface locations corresponding to Region 3 is allocated to areas640.

Referring back toFIG. 5, at508, a best fit focal plane is determined for each of topography Region 1, Region 2, and Region 3. As described and illustrated above in relation toFIGS. 3 and 4, the non-correctable focal plane errors (e.g.,FIG. 3: E′r) relative to the wafer topography are reduced by allocating the reticle design data to two or more predetermined regions on the wafer surface. Thus, Reticle Data Subset 1 includes a first focal plane, Reticle Data Subset 2 includes a second focal plane, and Reticle Data Subset 3 includes a third focal plane.

At510, for each Reticle Data Subset, a corresponding mask or reticle is created. For example, referring toFIG. 6, for Reticle Data Subset 1, a first mask or reticle that includes Region 1 is generated, whereby the mask or reticle would have mask shapes governed by areas612-618. Particularly, the regions of the first reticle not included by areas612-618may have a chrome surface. Also, for Reticle Data Subset 2, a second mask or reticle that includes Region 2 is generated, whereby the mask or reticle would have mask shapes governed by areas620-630. Particularly, the regions of the second reticle not included by areas620-630may include a chrome surface. Further, for Reticle Data Subset 3, a third mask or reticle that includes Region 3 is generated, whereby the mask or reticle would have mask shapes governed by areas640. Particularly, the regions of the third reticle not included by areas640may have a chrome surface.

At512, during a lithographic process, each reticle and its corresponding best fit focal plane are utilized. For example, referring toFIG. 6, a reticle or mask generation apparatus606may be utilized to create the first, second, and third reticles associated with Reticle Data Subsets 1, 2, and 3, respectively. Thus, in operation, the lithography tool150(FIGS. 1B,6) may expose each reticle with its corresponding average focal plane within each exposure plane. In operation, the lithography tool150(FIG. 1B) may expose each reticle with a completely different focusing scheme, such that for each of the several reticles, the focal plane is continuously varied during the exposure scan (i.e., rotated about axes X1, X2, and height H as depicted inFIG. 1B) in a manner unique from the other reticles. The focal plane motions during wafer field exposure with a particular reticle undergo the best average focus only for those areas which have design data on that particular reticle, and not for the chrome areas on that particular reticle. The lithography tool software may, for example, be accordingly programmed to ignore, during exposure with a particular reticle, the previously measured topography of the wafer field which corresponds to the chrome areas on that particular reticle. Particularly, the topography in those areas (i.e., chrome areas) will have no bearing on the focal plane movements for that particular reticle's exposure scan. Thus, the areas in the reticle field on any particular reticle which has design data (non-chrome areas) will have a better average focus (or smaller average focus error) than if those areas had been exposed with a single reticle scheme. Since each of the several reticles will produce a smaller average focus error for their respective field areas having design data (non-chrome areas), the overall average focus error for the entire field as exposed with the several different reticles will be smaller than if the entire field had been exposed with a single reticle scheme.

By determining more regions of the wafer surface having a similar topography, the reduction in the non-correctable errors associated with determining a best-fit focal plane may be further decreased. In the current embodiment, three (3) regions (i.e., Regions 1-3) are illustrated for exemplary non-limiting purposes. However, the surface topography may include any number of determined regions. The more regions having similar topographies included, the less the non-correctable errors. However, more reticle data splitting or decomposition processing may be required. Additionally, more reticle or masks may be used during lithography. Thus, if enhancement of focal plane accuracy is of importance, more reticle data subsets and reticles may be utilized. Alternatively, if reticle data processing overhead and lithography process times are of some concern, thus, less reticle data subsets and reticles may be implemented.

The above described reticle data split or decomposition may be accomplished in a 3D process. A CMP model may be used to predict the surface topography and the modeling output (i.e., prediction of wafer surface height above some reference plane) may then be used to predict the non-correctable focus error across the reticle field. As described a software program such as reticle data decomposition (RDD) process500(FIG. 5) may be employed to split the reticle data into reticle data subsets corresponding to two, three, or more, reticles, such that the overall average non-correctable focus error is minimized. The reticles may, therefore, be fabricated based on the split boundaries. For example, the data splitting can be done with a via level or with a line level. If a via falls on a split boundary, it may be determined to place the via on one reticle or another, and similarly with a small line segment. Thus, long lines which cross the split boundaries may be stitched.

FIG. 7shows a block diagram of the components of a data processing system800,900, such as reticle data decomposition unit604(FIG. 6) in accordance with an illustrative embodiment of the present invention. It should be appreciated thatFIG. 7provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environments may be made based on design and implementation requirements.

Reticle data decomposition unit604(FIG. 6) may include respective sets of internal components800a, b, c and external components900a, b, cillustrated inFIG. 4. Each of the sets of internal components800a, b, cincludes one or more processors820, one or more computer-readable RAMs822and one or more computer-readable ROMs824on one or more buses826, and one or more operating systems828and one or more computer-readable tangible storage devices830. The one or more operating systems828and programs such as the RDD program500(FIG. 5) corresponding to reticle data decomposition unit604(FIG. 6) is stored on one or more computer-readable tangible storage devices830for execution by one or more processors820via one or more RAMs822(which typically include cache memory). In the embodiment illustrated inFIG. 7, each of the computer-readable tangible storage devices830is a magnetic disk storage device of an internal hard drive. Alternatively, each of the computer-readable tangible storage devices830is a semiconductor storage device such as ROM824, EPROM, flash memory or any other computer-readable tangible storage device that can store a computer program and digital information.

Each set of internal components800a, b, calso includes a R/W drive or interface832to read from and write to one or more portable computer-readable tangible storage devices936such as a CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk or semiconductor storage device. The RDD program500(FIG. 5) associated with reticle data decomposition unit604(FIG. 6) can be stored on one or more of the respective portable computer-readable tangible storage devices936, read via the respective R/W drive or interface832and loaded into the respective hard drive830.

Each set of internal components800a, b, cmay also include network adapters (or switch port cards) or interfaces836such as a TCP/IP adapter cards, wireless wi-fi interface cards, or 3G or 4G wireless interface cards or other wired or wireless communication links. RDD program500(FIG. 5), in reticle data decomposition unit604(FIG. 6), can be downloaded to reticle data decomposition unit604(FIG. 6) from an external computer (e.g., server) via a network (for example, the Internet, a local area network or other, wide area network) and respective network adapters or interfaces836. From the network adapters (or switch port adaptors) or interfaces836, the RDD program500(FIG. 5) associated with reticle data decomposition unit604(FIG. 6) is loaded into the respective hard drive830. The network may comprise copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.

Each of the sets of external components900a, b, ccan include a computer display monitor920, a keyboard930, and a computer mouse934. External components900a, b, ccan also include touch screens, virtual keyboards, touch pads, pointing devices, and other human interface devices. Each of the sets of internal components800a, b, calso includes device drivers840to interface to computer display monitor920, keyboard930and computer mouse934. The device drivers840, R/W drive or interface832and network adapter or interface836comprise hardware and software (stored in storage device830and/or ROM824).

Aspects of the present invention have been described with respect to block diagrams and/or flowchart illustrations of methods, apparatus (system), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer instructions. These computer instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

The aforementioned programs can be written in any combination of one or more programming languages, including low-level, high-level, object-oriented or non object-oriented languages, such as Java, Smalltalk, C, and C++. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). Alternatively, the functions of the aforementioned programs can be implemented in whole or in part by computer circuits and other hardware (not shown).